|
▼smasa さん:
>もともとは下のように数字が入力されています。
>(1番左は行番号です)
>
> 列
>>> F G H I J K ... M N
>>> 5 12 1
>>> 6 21 2 3
>>> 7 30 5
>>> 8 11 3 4
>>> 9 6 1 2
>>>10 2 5 6
>
>G5の1から、表の上から順番に、範囲内に同じ数字がないかどうか調べます。
>たとえば、G5の1という数字はG9にも入力されています。
>ですから、行5と行9は同じグループ。
>次に、G6の2という数字はH9にも入力されていますので、
>行5と行9と行6は同じグループ。
>次に、H6の3という数字はG8にもあります。
>行5、行9、行6、行8は同じグループ。
>次にH8の4は他に入力されていません。
>そこで、各グループの数字を取り出し、重複しないように
>N列に以下のように入力されるようにします。
↑
ここの説明がよくわかりません。
結局、
まだ、よく仕様がわかりませんが・・
G5から横に見ていって1か2か3か4の数字であれば、1,2,3,4のグループ
5か6であれば、5,6のグループということですか?
以下マクロで結果としては、提示されたようになってますが・・・
Sub test()
Dim r As Range
Dim myVal As String
For Each r In Range(Cells(5, 7), Cells(5, 7).End(xlDown))
For i = 0 To 4
If r.Offset(, i).Value <> "" Then
myVal = myVal & r.Offset(, i).Value
End If
Next
Select Case Right(myVal, 1)
Case Is <= 4
r.Offset(, 7).Value = "1,2,3,4"
Case Is <= 6
r.Offset(, 7).Value = "5,6"
End Select
myVal = ""
Next
End Sub
|
|