2016-03-24 2 views
0

Excelで2枚、10列でデータが異なります。両方のシートを比較し、4つの特定の列の値に基づいて違いを強調したいと思います。例えば、シート間の複数列の参照

シート1:

id name address pincode 
1 AA XXX  123 

シート2:

id name address pincode 
2 BB YYY  345 
1 AA XXX  123 

上記データを比較することで、私は色で強調表示されるように両シートに共通の行をしたいです。

どのように私はこれをExcelで行うことができますか?

乾杯

+0

COUNTIFS、配列式、どのようにシート3に、それをしたいですか?あなたはより多くの情報を提供できますか?だから、あなたはコードを必要とせずに、おそらくハイライトするためにCountifs()でCFを使うことができますか? (countifs(Sheet2!A:A、Sheet1!A1、Sheet2!B:B、Sheet1!B1、Sheet2!C:C、Sheet1!C1)> 0 ....... –

+0

https: /support.office.com/en-us/article/Use-a-formula-to-apply-conditional-formatting-fed60dfa-1d3f-4e13-9ecb-f1951ff89d7f –

答えて

0

2行が等しいかどうかを確認するには、使用することができます:

あなたのシート名を「シート1」と「Sheet2の」を交換し、行を調整する必要が
If Join(Application.Transpose(Application.Transpose(Sheets("sheet1").Rows(3).Value)), Chr(0)) = _ 
    Join(Application.Transpose(Application.Transpose(Sheets("sheet2").Rows(4).Value)), Chr(0)) Then 

    Sheets("sheet1").Rows(3).Interior.ColorIndex = 3 
    Sheets("sheet2").Rows(4).Interior.ColorIndex = 3 
End If 

。行が互いに等しい場合、それらは赤でハイライト表示されます。

これを使用している場合は、非常に遅い

例であるかもしれない、第二シートの各行の最初のシートの各列を比較しなければならない:

Dim usedRange1 As Integer 
Dim usedRange2 As Integer 

usedRange1 = Sheets("sheet1").UsedRange.SpecialCells(xlCellTypeLastCell).Row 
usedRange2 = Sheets("sheet2").UsedRange.SpecialCells(xlCellTypeLastCell).Row 

Dim i As Integer, j As Integer 

Application.ScreenUpdating = False 

For i = 1 To usedRange1 Step 1 

    'Check if row in sheet1 is not empty 
    If Application.CountA(Sheets("sheet1").Rows(i)) <> 0 Then 

     For j = 1 To usedRange2 Step 1 

      'check if row in sheet2 is not empty 
      If Application.CountA(Sheets("sheet2").Rows(j)) <> 0 Then 

       If Join(Application.Transpose(Application.Transpose(Sheets("sheet1").Rows(i).Value)), Chr(0)) = _ 
        Join(Application.Transpose(Application.Transpose(Sheets("sheet2").Rows(j).Value)), Chr(0)) Then 

        Sheets("sheet1").Rows(i).Interior.ColorIndex = 3 
        Sheets("sheet2").Rows(j).Interior.ColorIndex = 3 
       End If 
      End If 
     Next j 
    End If 
Next i 

Application.ScreenUpdating = True 
+0

これは、2つの行が完全に等しい場合にのみ機能します列が空であれば、列は手動で比較する必要がありますが、ループを維持してif条件を変更するだけです – gizlmo

関連する問題