2つの列を比較してExcelで違いを見つける方法は?


45

Excelに2つの列があり、それらを比較して、それらの違いを見つけます。

仮定:

  • 列Aには50個の数字、つまり0511234567があります
  • 列Bには同じ形式の100個の数字があります

これは、Excelの組み込み関数と数式を使用して実行できると思います。トピックから外れているようだ。
マットハンディ

その方法を指定してください。

それでは、どの番号が列Aのみにあり、どの番号が列Bのみにあるかを知りたいですか?
トム・ショー

回答については、このSOの質問を参照してください。
パトリックオノレス

いや、最初に私はコルAではなく、コルBに含まれていないすべてのこれらの数字を知りたいし、私はコルAにあるすべてのそれらの数値を知りたいのではなく、コルB.中

回答:


55

条件付き書式の使用

Aを強調表示します。クリックして条件付き書式を > 新しいルールを作成 ]> [ フォーマットにどのセルを決定するために、この式を使用し、FFを入力します>。式:

=countif($B:$B, $A1)

[ 書式 ]ボタンをクリックし、フォントの色を好きな色に変更します。

この式を使用して別のフォントの色を試すことを除いて、列Bについても同じことを繰り返します。

=countif($A:$A, $B1)

別の列を使用する

Cに、ffを入力します。最初のセルに数式を入力し、それをコピーします。

=if(countif($B:$B, $A1)<>0, "-", "Not in B")

Dに、ffを入力します。最初のセルに数式を入力し、それをコピーします。

=if(countif($A:$A, $B1)<>0, "-", "Not in A")

これらの両方は、他の列から欠落しているアイテムを視覚化するのに役立ちます。


これはどのバージョンのExcelでテストされましたか?
ピーターモーテンセン

1
「条件付き書式設定」はどこにありますか?メニューで?コンテキストメニューで?
ピーターモーテンセン

リボン以前のExcel(結局はExcelのクローン)に対応するOpenOfficeの古いバージョンでは、メニューコマンドFormat- > Conditional Formattingがあります。
ピーターモーテンセン

1
これはExcelについてですが、OpenOffice / LibreOfficeでは$B:$B列全体を参照するのに使用Bできません。代わりに使用します$B$1:$B$1048576(1048576が最大番号の行です)。$数字の前に注意してください(いわゆる絶対参照)-これにより、Fill Down(ここでは「コピーダウン」と呼ばれます)やFill Upなどの操作で期待どおりに動作します。
ピーターモーテンセン

14

Microsoftには 2列で重複を見つける方法を詳しく説明した記事あります。各列で一意のアイテムを見つけるのに十分簡単に​​変更できます。

たとえば、列Cに列Aに一意のエントリを表示し、列Dに列Bに一意のエントリを表示する場合:

A   B   C                                          D
1   3   =IF(ISERROR(MATCH(A1,$B$1:$B$5,0)),A1,"")  =IF(ISERROR(MATCH(B1,$A$1:$A$5,0)),B1,"")
2   5   (fill down)                                (fill down)
3   8   ..                                         ..
4   2   ..                                         ..
5   0   ..                                         ..


4

colでそれらを見つけたいとします。colに一致しないB A. C2に入れる:

=COUNTIF($A$2:$A$26;B2)

一致する場合は1(またはそれ以上)、そうでない場合は0になります。

また、両方の列を個別に並べ替えてから、両方を選択し、[特別に移動]、[行の違い]を選択することもできます。ただし、最初の新しい項目の後に機能しなくなり、セルを挿入してからもう一度開始する必要があります。


4

あなたの質問をよく理解したら:

=if(Ax = Bx; True_directive ; False_directive)

True / falseディレクティブを関数または「等しい」や「異なる」などの文字列で置き換えます。


@pastaこれは、2つの列が同様にソートされていない場合は機能しません。質問はそれについてではないと思います。
シズラム

3

セルの形式と機能要件によって異なります。先頭に「0」を付けると、テキストとしてフォーマットできます。

次に、IF関数を使用してExcelのセルを比較できます。

=IF ( logical_test, value_if_true, value_if_false )

例:

=IF ( A1<>A2, "not equal", "equal" )

それらが数値としてフォーマットされている場合、違いを得るために他の列から最初の列を引くことができます:

=A1-A2

2

この式は、2つのセルを直接比較します。それらが同じである場合、印刷されますTrue、1つの違いが存在する場合、印刷されますFalse。この式は、違いを出力しません。

=IF(A1=B1,"True","False")

1

Excel 2010を使用して、比較する2つの値セットを持つ2つの列を強調表示し、Excelのホームページで[条件付き書式]ドロップダウンをクリックし、[セルの強調表示]ルールを選択し、次に差を選択します。次に、相違点または類似点のいずれかを強調表示するよう求められ、使用する色の強調表示を尋ねます...


0

比較は、Excel VBAコードを使用して実行できます。比較プロセスは、Excel VBA Worksheet.Countif関数を使用して実行できます。

このテンプレートでは、異なるワークシートの2つの列が比較されました。行全体が2番目のワークシートにコピーされたため、異なる結果が見つかりました。

コード:

Dim stk, msb As Worksheet
Set stk = Sheets("Page1")
Set msb = Sheets("Page2")

Application.ScreenUpdating = False
sat = (msb.Range("A" & Rows.Count).End(xlUp).Row) + 1
For i = 2 To stk.Range("A" & Rows.Count).End(xlUp).Row
    If WorksheetFunction.CountIf(msb.Range("A2:A" & msb.Range("A" & Rows.Count).End(xlUp).Row), stk.Cells(i, "A")) = 0 Then
        msb.Range("a" & sat).EntireRow.Value = stk.Range("a" & i).EntireRow.Value
        msb.Range("a" & sat).Interior.ColorIndex = 22
        sat = sat + 1
    End If
Next
...

チュートリアルのビデオ:https : //www.youtube.com/watch?v=Vt4_hEPsKt8

サンプルファイルはこちらからダウンロードできます


1
ブログとYouTubeチャンネルにリンクする場合は、所属を開示する必要があります。そうしないと、スパムで告発される可能性があります。
デビッドポスティル

0

これは別のツールを使用していますが、これは非常に簡単であることがわかりました。Notepad ++の使用:

Excelで、2つの列が同じ順序で並べ替えられていることを確認してから、列をコピーして2つの新しいテキストファイルに貼り付け、(プラグインメニューから)比較を実行します。


0

NOT MATCHの機能の組み合わせが適しています。以下も機能します:

= IFISERRORVLOOKUP(<< 大きいリストのアイテム >>、<< 小さいリスト >>、1FALSE))、<< 大きいリストのアイテム >>、 "")

注意:小さいリストは昇順でソートする必要があります-vlookupの要件

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.