• ベストアンサー

エクセルでリストA、B、Aのリストにない名前の抽出

機械部品の名前のリストが2つあります。 A~Z順に1000個ほどあります。 例:Ajuh Ajug ・   ・   ・   Zane・・ ほとんど同じ内容のリストBがありますがBにはAにない部品の名前が混じっています。 二つを照らし合わせて、Aにない部品名だけを抽出する事は可能でしょうか? 言い換えればBだけにある部品名を抽出したいと考えています。 一つ一つ確認するにはかなり時間がかかってしまいます。 どなたか操作方法ご存じの方、どうぞご教示願います。

質問者が選んだベストアンサー

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

オートフィルタで抽出する方法は如何でしょうか。 仮にAリストはSheet1、BリストはSheet2、データ列はA列で見出し行ありとします。 (1)Sheet2のB2に=COUNTIF(Sheet1!A:A,A2)>0を入力、A列の有効行までコピー    B列にはAリストと重複した場合はTRUE、無い場合はFALSEと表示されます    (2)Sheet2のA1を選択→オートフィルタを設定→B1のフィルタボタンでFALSEを選択で    Aリストにない部品名が抽出されます。     因みにエクセルのご質問の際には、エクセルのグレード名(エクセル2007等)を明示して 下さい。

その他の回答 (3)

noname#204879
noname#204879
回答No.4

[フィルタ オプションの設定]による方法(Excel 2002) 添付図参照 「リストB」を Sheet2 に示す。 ただし、最上行(セル A1)に項目名が入力 Sheet2 のセル A1 を Sheet3 のセル A1 にコピー&ペースト Sheet3 のせる C2 に式 =COUNTIF(Sheet1!A:A,Sheet2!A2)=0 を入力 ただし、その上のセル C1 はブランクのまま Sheet3 の範囲 A1:A2 を仮に選択した後に、 次の条件で[フィルタ オプションの設定]を実行 抽出先:   “指定した範囲” リスト範囲:  Sheet2!$A$1:$A$2000 検索条件範囲: Sheet3!$C$1:$C$2 抽出範囲:   Sheet3!$A$1 “重複するレコードは無視する”にチェック入れ 結果を添付図の右下に示す ただし、結果が出るまでに時間がかかるかも知れないので、その間、珈琲でも飲んでいてください。

nihirud15
質問者

お礼

図まで添付してくださりとても分かりやすかったです。ありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

エクセル関数で文字列を探すのは、普通のケースでは、VLOOKUP、MATCH、COUNTIF関数しかない。 一方(B)から他方(A)の列にその文字列がないか捜し、なければ#N/Aが変えるから、それで望みの文字列(見つからず、なし、NotFoundや0でも良いだろう)を表示すれば良い。 Aに同じもの(文字列)があっても、一番上の行のものを検索する。 こんなのは、しょっちゅうここである質問で、例えば、「VLOOKUP 見つからず」でGoogleででも照会すれば沢山事例が出るのだ。 http://okwave.jp/qa/q1224807.html 以下数万件の記事有り。 ーー VLOOKUP関数は、エクセルでは有名関数で、知らないのは、エクセルを系統立てて学ぶ(本でも読む)をしてないということ。 エクセルの関数の質問など、ほとんどのケースの質問・回答がWEBで見つかることを覚えておいて。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

例えばA列にリストAがありB列にリストBの部品名が2行目から下方に入力されていてA列には無い部品名を抽出するのでしたらC列のC2セルに次の式を入力して下方にオートフィルドラッグコピーします。その後にC列を重点にフィルタ操作をすればよいでしょう。 =IF(B1="","",IF(COUNTIF(A:A,B1)=0,1,"")) これでA列に無い部品名には1が表示されます。それをフィルタ操作で抽出すればよいでしょう。 あるいはB列に無い部品名を他のシートに関数で自動的に表示させるのでしたらC2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(B1="","",IF(COUNTIF(A:A,B1)=0,MAX(C$1:C1)+1,"")) これでA列には無い部品については1から番号が付けられます。例えばこの元の表がシート1に有って抽出のデータをシート2に表示させるのでしたらシート2のA2セルには次の式を入力して下方にオートフィルドラッグコピーすればシート1のA列には無い部品名が表示されます。 =IF(ROW(A1)>MAX(Sheet1!C:C),"",INDEX(Sheet1!B:B,MATCH(ROW(A1),Sheet1!C:C,0)))

nihirud15
質問者

お礼

ご回答誠にありがとうございました!

関連するQ&A