|
こんにちは。
考え方が思いつかなかったので教えてください。
下記のようなデータがあるとします。
BまたはC列のどちらかで一致し、A列・E列が一致するもG列以降を抜き出し、数をカウントします。
Dim Cell_A As String
ReDim SNAry(0 To 50, 0 To 80)
j = 0
l = 0
For i = 1 To 5000
If Range("A" & i) = "" Then
Exit For
Else
Cell_A = Range("C" & i)
For n = i + 1 To 5000
If Range("A" & n) = "" Then
Exit For
Else
If Cell_A = Range("C" & n) Or Cell_A = Range("B" & n) Then
If Range("A" & i) = Range("A" & n) And Range("E" & i) = Range("E" & n) Then
'☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
'SNAry(j, k) = Cells(i, l)
k = k + 1
l = l + 1
End If
End If
End If
Next n
End If
'初期化
l = 6
j = j + 1
k = 0
Next i
コメントで☆になっている箇所がわかりませんでした。
配列にすべて代入してしまうと同一の数値も格納されてしまいます。
配列内でLOOPさせたりしたほうがよいのでしょうか?
A B C D E F G H I J K
**********************************************************************************
1 AA R1 a 0.5 0.1 0.2 0.3 0.4
1 AA R1 b 0.5 0.1 0.2 0.5
1 AA R1 a 0.5 0.1 0.2 0.6
3 AA R1 a 0.5 0.1 0.2 10
1 AA R1 a 0.5 0.1 0.2 0.7
1 R1 C1 a 0.5 0.1 0.2 0.8
1 R1 C1 a 0.5 0.1 0.2 0.9
↓
A B C D E F G H I J K
**********************************************************************************
R1 1 0.5 0.1 6
R1 1 0.5 0.2 6
R1 1 0.5 0.3 1
R1 1 0.5 0.4 1
R1 1 0.5 0.5 1
R1 1 0.5 0.6 1
R1 1 0.5 0.7 1
R1 1 0.5 0.8 1
R1 1 0.5 0.9 1
R1 3 0.5 10 1
C1 1 0.5 0.8 1
C1 1 0.5 0.9 1
|
|