列と行の位置が異なる2つの表を比較する方法をご紹介します。
たとえば以下の画像のように、「価格」という列の位置がC列とD列で異なっており、商品コードの位置も7行目と5行目でことなっています。この場合はExcelVBAでループ処理することで解決ができます。

値を比較するコード
Sub test()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
' 比較するシートを変数に格納
Set sh1 = ThisWorkbook.Worksheets("比較1")
Set sh2 = ThisWorkbook.Worksheets("比較2")
' 背景色を初期化
sh1.Cells.Interior.Color = xlNone
sh2.Cells.Interior.Color = xlNone
Dim i As Long
Dim j As Long
Dim k As Long
Dim l As Long
' 比較1シートの列数
For j = 1 To 4
' 比較2シートの列数
For k = 1 To 6
' ヘッダーの比較
If sh1.Cells(1, j) = sh2.Cells(1, k) Then
' 比較1シートの行数
For i = 2 To 10
' 比較2シートの行数
For l = 2 To 10
' キー項目の比較
If sh1.Cells(i, 1) = sh2.Cells(l, 1) Then
' 値を比較する
If sh1.Cells(i, j) <> sh2.Cells(l, k) Then
' 値が異なる場合、色を変更する
sh1.Cells(i, j).Interior.Color = RGB(255, 0, 0)
sh2.Cells(l, k).Interior.Color = RGB(255, 0, 0)
End If
GoTo row_continue
End If
Next
row_continue:
Next
End If
Next
Next
End Sub
実行結果
列方向と縦方向の位置が同じでなくても比較することができました!
ぜひご活用ください。
ではまた。
コメント