0
A - B - A - A - B - C - B
E - E - E - D - D - E - F
G - G - H - H - H - I - H
J - K - K - K - K - L - L
ようなデータのテーブルを持っている私は、最初の行のAとBを選び出すための方法、E &がありますDは基本的に各行の複製であり、同じ行に2つの差分複製があります。
A - B - A - A - B - C - B
E - E - E - D - D - E - F
G - G - H - H - H - I - H
J - K - K - K - K - L - L
ようなデータのテーブルを持っている私は、最初の行のAとBを選び出すための方法、E &がありますDは基本的に各行の複製であり、同じ行に2つの差分複製があります。
はい、これを達成するために辞書を使用できます。 VBエディタ、ツール、参照、「Microsoft Scripting Runtime」にチェックを入れ、辞書機能をインポートします(この方法はIntellisenseを容易にします)。
このコードは、ワークシート機能の形式でその機能を提供するために書かれています。
お客様のニーズに合わせて修正することができます。サポートを必要とする場合は、ご返信ください。あなたのデータがどのようにフォーマットされているのかわからないので、ハイフンとスペースを取り除くための行です。
Public Function ShowDuplicates(rngSource As Range) As String
Dim dctUnique As Dictionary
Dim dctDups Dictionary
Dim intCounter As Integer
Dim strSource As String
Dim strCurrent As String
Set dctUnique = New Dictionary
Set dctDups = New Dictionary
' Remove hyphen and space
strSource = Replace(Replace(rngSource.Value, "-", ""), " ", "")
For intCounter = 1 To Len(strSource)
strCurrent = Mid$(strSource, intCounter, 1)
If dctUnique.Exists(strCurrent) Then
If Not dctDups.Exists(strCurrent) Then
' Only add it to the dups dict if required
dctDups.Add strCurrent, strCurrent
End If
Else
dctUnique.Add strCurrent, strCurrent
End If
Next
If dctDups.Count > 0 Then
ShowDuplicates = Join(dctDups.Keys(), ",")
Else
ShowDuplicates = ""
End If
End Function
グループ別にお答えします。 – nicomp
必要な出力も与えることができますか? – Vityata
重複をチェックするときは、辞書またはコレクションを使用します。このビデオはあなたにどのように表示されます。 [Excel VBAの紹介パート39 - 辞書](https://www.youtube.com/watch?v=dND4coLI_B8&list=PLNIs-AWhQzckr8Dgmgb3akx_gFMnpxTN5&index=42)。あなたが問題に遭遇した場合は、コードを投稿してください。 –