Excel スプレッドシートでデータをループ処理できません。
列 A の FOR EACH 値は、列 B のすべての値の値を検索します。IF Trueは、 「重複」を挿入します。
これまでのところ、次の複数のバリエーションを試しました。=IF(A2=$B$2:$B$14,"duplicate",)
私は試してみましVLOOKUPたがMATCH、これを理解することはできませんでした。INDEXMATCH
vba スクリプトの方がかなり効率的だと思いますが、どうもうまくいきません。
Excel スプレッドシートでデータをループ処理できません。
列 A の FOR EACH 値は、列 B のすべての値の値を検索します。IF Trueは、 「重複」を挿入します。
これまでのところ、次の複数のバリエーションを試しました。=IF(A2=$B$2:$B$14,"duplicate",)
私は試してみましVLOOKUPたがMATCH、これを理解することはできませんでした。INDEXMATCH
vba スクリプトの方がかなり効率的だと思いますが、どうもうまくいきません。
あなたの投稿があなたが使用しようとしたことを示唆しているように、数式でそれを行うには
=IF(ISNA(MATCH(A2,B:B,0)),"","duplicate")
VBAソリューションについては、これを試してください
Sub CheckForDups()
Dim rSource As Range
Dim rCompare As Range
Dim rResult As Range
Dim vSource As Variant
Dim vComapre As Variant
Dim vResult As Variant
Dim sh As Worksheet
Dim i As Long
Set sh = ActiveSheet
Set rSource = Application.Intersect(sh.UsedRange, sh.Columns(1))
Set rCompare = Application.Intersect(sh.UsedRange, sh.Columns(2))
Set rResult = Application.Intersect(sh.UsedRange, sh.Columns(3))
vSource = rSource
vComapre = rCompare
rResult.Clear
vResult = rResult
For i = 2 To UBound(vSource, 1)
If Not IsError(Application.Match(vSource(i, 1), rCompare, 0)) Then
vResult(i, 1) = "duplicate"
End If
Next
rResult = vResult
End Sub