• ベストアンサー

エクセル関数について!いそぎです

3000もの事業者の名簿aから、別シートにあるb名簿に100程のっている事業者リストのなかから、aにある業者のみをすべてピックアップし、別のシートに添付したいのですが、どうしたらいいのかさっぱりわからなくて、、

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.5

>フィルターかけるとしたら、ひとつひとつフィルターかけていくしかやはりないのですかね?? >実はbのほかに、1000くらいの名簿もあり、同じように3000の中からさがしださないといけないのです。  そういう事情なのでしたら次のような方法は如何でしょうか。  名簿aやb名簿がそれぞれ何というシート名のシートに入力されていて、名簿aのシートやb名簿のシートのそれぞれ何列に業者名が入力されているのかという情報が無いため、仮の話として、名簿aがあるシートのシート名がSheet1、b名簿があるシートのシート名がSheet2であるものとし、名簿aのシートではC列、b名簿のシートではB列に業者名が入力されているものとします。  その場合、まずSheet2においてb名簿の表に隣接している使用していない列(ここでは仮の話としてG列とします)の1行目のセル(G1セル)に次の様な関数を入力して下さい。 =COUNTIF(Sheet1!$C:$C,$B1)>0  次に、Sheet2のG1セルをコピーして、G2以下に貼り付けて下さい。  その上で、フィルターを用いてG列がTRUEとなっている行だけを表示させ、その状態でデータをコピーして、別のシートに貼り付けると良いと思います。  尚、G列を使用するのはあくまで一時的なものに過ぎず、作業が済んだ後はG列の関数を消去してしまっても構いません。  只、もしも後で同様の作業があるのでG列の関数を残しておきたいという事であれば、文字色を白に設定しておかれると良いと思います。(表示を非表示としてしまったのではフィルターが使えません)  それと、名簿aのセルに対して切り取りや挿入等のセルの配置をずらしてしまう操作が行われますと、G列に入力した関数と、参照先であるB列のセルとの位置関係が狂ってしまい、フィルターの掛かり方が狂ってしまう恐れがあります。  ですからもし関数を残したまま使用する様な場合には、G列に入力する関数を次の様なものとしておいた方が良いと思います。 =COUNTIF(Sheet1!$C:$C,"="&INDEX($B:$B,ROW()))>0

aki500064
質問者

お礼

すごい分かり易かったです ありがとうございます

その他の回答 (4)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.4

>フィルターかけるとしたら、ひとつひとつフィルターかけていくしかやはりないのですかね?? OR条件なら項目名の下に連続した範囲を抽出条件にすればできますよ。 AND条件の場合は、別の列に追加で設定できます。

aki500064
質問者

お礼

ありがとうございます

  • 52heaven
  • ベストアンサー率45% (65/143)
回答No.3

ANo.2で回答したものです。 countif関数を推奨したのですが、フィルタオプションの方が楽かもしれません。 ただどちらを使うにしても気を付けていただきたいことがあります。 Excelでは全角と半角を別の文字として認識されることがあるので、それらが統一されていないと別の文字として認識される可能性があります。 いったん入力された文字の全角/半角の整合性がとれているかは、確認してみてください。

aki500064
質問者

お礼

ありがとうございます(^o^)

  • 52heaven
  • ベストアンサー率45% (65/143)
回答No.2

countif関数を使うといいと思います。 =countif(A:B,C) と入力すると、 A~Bの間に、Cと同一のものが何個あるかが表示されます。 実際のエクセルのファイルを見ないと説明が難しいですが... 例えばb名簿の業者名が、業者1、業者2、業者3・・・と並んでいると仮定します。 業者1の業者名の横にある空白セルに、 =counitf(A名簿の全事業者名のセル,B名簿の業者1の事業者名のセル) という風に設定します。 もし業者1がA名簿に載っていれば「1」、載っていなければ「0」と表示されます。 あとは、業者2、業者3…と、全ての事業者名の横の空白セルに、同じ関数を入力していきます。 気を付けてほしいのは、関数を下にコピーする前に「A名簿の全事業者名のセル」は絶対参照にして、下の方にコピーしても範囲が変わらないようにしてください。 反対に、「B名簿の事業者名のセル」は相対参照にしておくと、業者2、業者3…と複写するに従い、関数内の事業者名のセル指定も対応したものに変わります。 その後、この「0」と「1」の並ぶ列にフィルタをかけ、「1」のセルだけ表示します。 すると、a名簿にもb名簿にも載っている事業者名だけが表示されます。 あとはこれを全てコピーし、別のシートに貼り付ければ完成です。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

フィルタオプションの設定を使ってみては? やり方は下記を参照 http://kokodane.com/2013_waza_053.htm

aki500064
質問者

お礼

フィルターかけるとしたら、ひとつひとつフィルターかけていくしかやはりないのですかね?? 実はbのほかに、1000くらいの名簿もあり、同じように3000の中からさがしださないといけないのです。 やはり、ひとつずつしていくしかないのでしょうか??あす、仕事でしなくてはいけなくて、、、すもません

関連するQ&A

専門家に質問してみよう