dポイントプレゼントキャンペーン実施中!

機械部品の名前のリストが2つあります。
A~Z順に1000個ほどあります。

例:Ajuh
Ajug

  ・
  ・
  Zane・・

ほとんど同じ内容のリストBがありますがBにはAにない部品の名前が混じっています。
二つを照らし合わせて、Aにない部品名だけを抽出する事は可能でしょうか?

言い換えればBだけにある部品名を抽出したいと考えています。

一つ一つ確認するにはかなり時間がかかってしまいます。

どなたか操作方法ご存じの方、どうぞご教示願います。

A 回答 (4件)

オートフィルタで抽出する方法は如何でしょうか。


仮に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等)を明示して
下さい。
    • good
    • 0

[フィルタ オプションの設定]による方法(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
“重複するレコードは無視する”にチェック入れ

結果を添付図の右下に示す
ただし、結果が出るまでに時間がかかるかも知れないので、その間、珈琲でも飲んでいてください。
「エクセルでリストA、B、Aのリストにない」の回答画像4
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/01/14 04:11

エクセル関数で文字列を探すのは、普通のケースでは、VLOOKUP、MATCH、COUNTIF関数しかない。


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

例えば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)))
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/01/14 04:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!