今日、私は次の問題を抱えています: Excel に x 行 (いくつでも構いません) の 2 つの列があり、それぞれに文字列があります。
A B
Apple Potato
Banana Potato
Apple Potato
Orange Apple
各文字列は両方の列に表示できます。
次の結果を得る必要があります。
Fruit Occurrencies
Apple 3
Banana 1
Potato 3
Orange 1
さて、私が考えていたよりもはるかに速い方法があることは確かです。あなたの助けに感謝します。私の解決策は、文字列を配列に 1 つずつ格納して、現在のスロットの前のスロットに既に含まれているかどうかを毎回チェックし、含まれていない場合は、その発生もカウントすることです。たとえば、すべての文字列を配列に格納した後 (これを と呼びますFruit()
):
Dim Str() As Variant
Dim Flag As Boolean
For i = LBound(Fruit)+1 to Ubound(Fruit)
Flag = True
For j = i to LBound(Fruit)
If Fruit(i) = Fruit(j) Then
Flag = False
Exit For
End If
Next
If Flag = True Then
Str(k,0) = Fruit(i)
For y = LBound(Fruit) to UBound(Fruit)
if Str(k,0) = Fruit(y) Then Str(k,1) = Str(k,1)+1
Next
k = k+1
End If
Next
これは完全にクレイジーで、もっと簡単な解決策があることを知っています...私はそれを見つけることができません。