ある列で別の列にないアイテムを検索する


回答:


91
  1. 列Aのリストを選択します
  2. 右クリックして、「名前を付ける...」を選択します
  3. 「ColumnToSearch」と入力します
  4. セルC1をクリックします
  5. 次の式を入力してください: =MATCH(B1,ColumnToSearch,0)
  6. Bのすべてのアイテムの数式を下にドラッグします

数式で一致が見つからない場合は#N / Aとマークされ、それ以外の場合は数字になります。

一致する場合にTRUE、一致しない場合にFALSEにする場合は、代わりに次の式を使用します。

=ISNUMBER(MATCH(B1,ColumnToSearch,0))

あなたは返すしたい場合はunfound値を、見つかった値に空の文字列を返します

=IF(ISNUMBER(MATCH(B1,ColumnToSearch,0)),"",B1)

6
次に...この式を両方のリストの条件付き書式に設定し、それを使用して、一致しないセル(または何でも)を強調表示します
Kije 09

4
「Name a Range」が表示されませんか?Excel 2010および2016でテスト済み
。– KERR

@KERRやIのように、「範囲に名前を付ける...」がない場合は、式のA:A代わりにまたは範囲を使用しますColumnToSearch
マイケル

私のように、最初に「ColumnToSearch」を入力する場所がわからない場合(手順3)、作成する名前付き範囲の名前として入力します。
DaveL17

「Name a Range」と表示されるのはDefine Name...(Excel 2019)
oliver-clare

29

これは、手っ取り早い方法です。

Bを強調表示し、条件付き書式設定を開きます。

選んで強調表示するためにどのセルを決定するための式を使用します

次の式を入力して、好みの形式を設定します。

=countif(A:A,B1)=0

「= ISODD(COUNTIF(A:A、B1)= 0)」を使用して、「1」の場合はtrue、「0」の場合はfalseを印刷しました
Ramraj

15

2つの列を選択します。[条件付き書式]に移動し、[セルルールの強調表示]を選択します。[値を複製]を選択します。次のステップに進むと、一意の値に変更できます。私はちょうどそれをし、それは私のために働いた。


列Bの値が繰り返されている場合、これらは強調表示されません
-magodiez

1
確かにこれは最も単純で最も関連性の高い答えですか?数式は不要です。
KERR

これを行っても何も起こりません。
オーバーマインド

12

これを理解するために永遠に私を連れて行ったが、それは非常に簡単です。データがA2およびB2(ヘッダー用)で始まると仮定すると、C2に次の式を入力します。

=MATCH(B2,$A$2:$A$287,0)

次に、クリックして下にドラッグします。

のセルは#N/A、列Bのすぐ隣の値が列A全体のどこにも表示されないことを意味します。

列Aの検索配列全体に一致するように$ A $ 287を変更する必要があることに注意してください。たとえば、列Aのデータが1000エントリになった場合、$ A $ 1000になります。


3
=MATCH(B2,$A:$A,0)私のために働いた。
-nilgun

4

Bに見つからないリストAに対する配列式の答えは、次のとおりです。

= IFERROR(INDEX($ A $ 2:$ A $ 1999、MATCH(0、IFERROR(MATCH($ A $ 2:$ A $ 1999、$ B $ 2:$ B $ 399,0)、COUNTIF($ C $ 1:$ C1、$ A $ 2:$ A $ 1999))、0))、 "")

名前の2つの列を比較し、不足している名前を返す


このソリューションは適切ですが、ソース列がアルファベット順にソートされているか、そうでない場合は重複を取得します。
スティーブテイラー

3

私の要件は、強調表示することではなく、2つの列に重複する値を除くすべての値を表示することでした。@brentonのソリューションを活用し、値を表示するようにさらに改善して、データを直接使用できるようにしました。

=IF(ISNA(MATCH(B2,$A$2:$A$2642,0)), A2, "")

これを3列目の最初のセルにコピーし、列全体に数式を適用して、列Aにリストされていない列Bのすべての項目をリストします。


上記の式にエラーがあります= IF(ISNA(MATCH(B2、$ A $ 2:$ A $ 2642,0))、A2、 "")は= IF(ISNA(MATCH(B2、$ A $ 2:$ $ 2642,0))、B2、 "")

1

回答を共有してくれた人に感謝します。あなたの解決策により、私は自分の道を歩むことができました。

この質問の私のバージョンでは、比較する2つの列がありました。完全な卒業クラス(Col A)とその卒業クラスのサブセット(Col B)です。私は完全な卒業クラスで、サブセットのメンバーである学生を強調したかったです。

3番目の列に次の式を入力します。

=if(A2=LOOKUP(A2,$B$2:$B$91),1100,0)

これにより、ほとんどの学生がコード化されましたが、データの最初の数行でエラーが発生しました。


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