エクセルマクロでマッチング処理(比較処理)
セルの値を取得する方法
Cells(2, 4)
Range("[列]" & "[行]").Value → 例 Range("D" & 1).Value
Sub マッチング処理()
'1つ下のセルと値を比較、マッチしたらデータをコピーして、1つ下のセルの値を削除
最下行 = Range("A" & Rows.Count).End(xlUp).Row '最下行の取得
For 行 = 2 To 最下行 '最下行まで反復する
'特定文字列 = Cells(2, 4) '特定の文字列を取り出す
上文字列1 = Range("D" & 行).Value '文字列を取り出す
下文字列1 = Range("D" & 行 + 1).Value '文字列を取り出す
上文字列2 = Range("B" & 行).Value '文字列を取り出す
下文字列2 = Range("B" & 行 + 1).Value '文字列を取り出す
If 文字列上1 = 文字列下1 Then '比較
If 文字列上2 = 文字列下2 Then '比較
If Range("F" & 行).Value = 0 Then 'F列のセルが0なら1つ下のセルをコピー
Range("E" & 行).Value = Range("E" & 行 + 1).Value
Range("F" & 行).Value = Range("F" & 行 + 1).Value
Range("F" & 行 + 1).EntireRow.Delete
End If
Else
Range("I" & 行).Value = 1
End If
Else
Range("I" & 行).Value = 0
End If
Next
End Sub
memo
A2がFにあるか検索、マッチしたらGを返す、無ければZを返す
=IF(ISNA(VLOOKUP(A2,F:G,2,FALSE)),"Z",VLOOKUP(A2,F:G,2,FALSE))