Excelで複数シート間の検索方法とは?

このQ&Aのポイント
  • Excelで複数のシート間での検索方法について教えてください。
  • シート1とシート2のデータを比較して、該当する商品コードの単価を取得する方法を教えてください。
  • 商品コードをキーにしてシート2からシート1のデータを検索し、単価を引っ張ってくる方法を教えてください。
回答を見る
  • ベストアンサー

Excelでの複数シート間での検索

2つのシートがあり、 シート1 商品コード 商品名  単価 100    A    50 200    B    70 300    C    80 シート2 商品コード 倉庫  在庫数 100   東京   10 200   東京    5 300   東京    2 200   大阪  100 300   大阪   70 となっています。 目的は、シート2の商品コードをキーとし、シート1の商品コードを検索し、単価を引っぱってきたいのです。 シート1に該当する商品コードがなかった場合は単価は0としたいです。 どのようにしたらよいか、アドバイスいただきたいのですが、よろしくお願いいたします。

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 単価をD列に表示するとします。 D2に、 =IF(COUNTIF(Sheet1!$A$2:$A$4,A2)=0,0,VLOOKUP(A2,Sheet1!$A$2:$C$4,3,FALSE)) と入力して下の行へコピーします。 なお、Sheet1のデータ範囲は2~4行なので、実際の行数に合わせて下さい。

takazou
質問者

お礼

さっそく回答をいただきありがとうございます。 実行してみましたら、求めたかった値が表示されました。 こういう例題の載っているような本ってあるのでしょうか? ほんとうにありがとうございました。

その他の回答 (4)

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.5

あ、失礼。 私の確認ミスでした。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.4

tanktさんへ >なお、#1の人のだと シート1にない商品コードが >シート2にあった場合、0 とならないようです。 なりますよ。COUNTIFで条件分岐してますから。

takazou
質問者

お礼

試してみましたが、0になりました。ありがとうございます。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.3

あ、A7は 300   大阪   70 の一番下の例でした。 100   東京   10 でしたら A2としてください。 なお、#1の人のだと シート1にない商品コードが シート2にあった場合、0 とならないようです。

takazou
質問者

お礼

たびたびすみません。実行してみたのですが、0になってしまいます。どうしてでしょうか?

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.2

シート1のほうは 順に A B C と入れて シート2も A B C と入れたとします。 一行目は、見出しとして二行目からデータとします。 それで 単価を 在庫数の隣に入れるとして =IF(ISERR(VLOOKUP(Sheet2!A7,Sheet1!$A$2:$C$4,3,FALSE)),VLOOKUP(Sheet2!A7,Sheet1!$A$2:$C$4,3,FALSE),0) というのを入れてあげればいいです。 で、これをセルに入れてから、そのセルをコピーして 一番下まで もってくればいいでしょう。

takazou
質問者

お礼

さっそく回答をいただき、ありがとうございました。 試してみたのですが、ご回答の中のA7というのはどこを示すのでしょうか? 教えていただけるとありがたいのですが。

関連するQ&A

  • エクセルの複数シート集計について

    エクセルの集計について、困っています。 内容は、1枚目のシートに現在庫の集計結果を表示させ、 2枚目には、「出荷数」3枚目には、「入庫数」を入力するだけで、 1枚目に現在庫を表示するには、どのような方法がありますか? 入庫数や出庫数はどんどん増えていきます。 教えてください。よろしくお願いします。 シート1      現在庫  商品A 200  商品B 100  商品C 200 シート2(出庫)       4/5  4/8  4/15  商品A  50   15   20  商品B  20       15  商品C  10   10 シート3(入庫)      4/15  4/8  4/15  商品A  100  200  100  商品B  200      150  商品C  100   100

  • エクセルシート間の照合で別の表を作成するには

    エクセルシート間の表を照合して、別のシートに反映させ表を完成させたいと思っています。 倉庫1 と倉庫2 の在庫照合なのですが、品番の記載形式が違います。  どちらもシステムの都合で、変更ができず困っています。 シート1(倉庫1)  A   B    C  品番  色番  在庫数    100   C   2 101   B   8 103   Y   3 シート2(倉庫2)  A     B  品番   在庫数 103Y   0 100C   3 101B   5 シート1 とシート2 の表をシート3へ  A     B      C          品番   在庫数(倉庫1) 在庫数(倉庫2)   100C   2       3 101B   8       5 103Y   3       0 また、結果から、条件付き書式を設定したいと思っていますが。。 たとえば、Cの値が0で、Bの値が5以下の時、行を黄色にする、とかです。 シート1と、シート2の数字が毎日変わります。 今までは品数が少なかったので、それほど支障は無かったのですが、 今後品数が増えることになり、アナログな確認では かなり大変な作業になるのが予想されます・・。 どなたかアドバイスをいただけないでしょうか。 どうぞ宜しくお願いいたします。

  • Excelの別シートへの加算

    仕入シートには 日付,商品No.,タイプA,タイプB,タイプC とそれぞれの項目があり、キーは商品No.で、タイプには数量が入っています。 同じ商品No.は複数存在します。 在庫シートには 日付を除いて同じ項目があるのですが、商品No.の重複はありません。 仕入シートを商品No.順にソートしたのですが、その後、在庫シートへの加算がうまくいきません。 仕入シートの一番上からデータが空になるまでの、タイプ別の数量を在庫シートに加算するには、どうしたらいいでしょうか? できれば、在庫シートに該当商品No.がない時に、仕入シートの空いている列に、「該当商品なし」と表示させたいので、そちらも合わせて教えてください。お願いします。

  • エクセル、VBA、抽出複数検索について

    エクセル、VBA、VLOOKUP、MATCH関数等について出来る方法があれば教えてください。 インチごとに分けてあるシートがあり、(在庫表です) これを参照して、別ブックへVLOOKUP等を使って、サンプルデータのシート4のように表示させたいのですが、 何か方法を使って出来ることは可能でしょうか? 問題点が複数あります 1、VLOOKUPの範囲について、B列が結合されていて、C列は複数行あるため、商品名が入ってきません。 C列については、何千件とデータがあるため、結合することは不可能です。 一致している条件としては商品コードが必ずあり、商品名には「/」が入っております。 =CONCATENATEとVLOOKUPは一緒に使うことは可能ですか? もしくはINDEX関数やIF、SUMPRODUCT等を使うのでしょうか? シート4のような形に出来る方法があれば、教えてほしいです。 VBAは詳しくはないのですが、VBAで出来るのであれば、教えてほしいです。 在庫表はとても作り方が悪いのですが、これを作り直すと言うことは、不可能です。 グループ会社で使っているため、なんとかこの在庫表を使いたいです。 VBAでA列をA5からA100にコードのみ入れた場合、B列に商品名が入るようにVBAで作ることは可能でしょうか? もしくは、検索条件を2つ使って、一つは商品コード完全一致+あいまい検索で【/】で商品名を入れることは可能でしょうか? 関数は調べたのですが、関数では難しいのかなと思います。 宜しくお願い致します。

  • エクセル初心者です

    エクセル初心者です 在庫管理しているのですが   (1)田中さん 日報シート   店舗名 商品A 商品B 商品C 1日 東京   2   3   5 2日 名古屋  1   1   1 (2)鈴木さん 日報シート    店舗名 商品A 商品B 商品C 1日 東京   1   1   2 2日 東京   1   1   0 (1)と(2)の日報のシートへ 店舗名 商品のセルに「店舗(東京か大阪)」と「数」の入力をしたら (3)と(4)の店舗名のシートに自動的に計算せさせるようなことはできるのでしょうか? (3)東京店 在庫シート        商品A 商品B 商品C     1日      2   3   5 2日      2   2   1  (4)名古屋店在庫シート        商品A 商品B 商品C     1日      0   0   0 2日      1   1   1  説明がかなり稚拙かと思ういますが どなたかわかる方がいらっしゃいましたらよろしくお願い致します

  • 複数の検索値から任意のデータを抽出する方法

    Excelの質問です。 Sheet1には、1行1件のコード、地域、金額の表があります。 A列のコードは、同じコードはひとかたまりになっていますが、 同じコードが2行ある場合や、1行またはそれ以上ある場合と決まっていません(最大6行)。 また、コードの順も昇順・降順になっていません。 Sheet2には、A列にコードだけが入力してあり、コードをキーにして、 Sheet1から地域と金額を自動表示したいのですが、 MATCHやINDEX関数を組み合わせたりしたのですが、うまくいきません。 関数式をお教えください。 <Sheet1> A B C →列番号です。 コード 地域 金額 56789 東京 100 56789 大阪 50 12345 大阪 400 12345 神奈川 200 12345 東京 1000 22222 大阪 300 22222 神奈川 400 22222 東京 100 ・・・・・つづく <Sheet2> A B C 12345 大阪 400 →B列とC列を数式で自動表示したい 神奈川 200 東京 1000 56789 東京 100 大阪 50 22222 ・・・・・つづく

  • エクセル データベースからの検索について

    エクセル データベースからの検索について 商品名・商品番号・在庫といったデータベースがあります。 検索する別の場所を設けそこで商品番号をたたくと商品名と在庫が表示できるようにVLOOKUPでしました。 商品番号がわからない場合があるので商品名から検索できるようにしたいのですが 商品番号からの検索と同じ関数では「#N/A」となってしまいました。 文字での検索の場合はどのような関数になるのでしょうか?         B2商品番号入力   C2検索結果表示(商品名) D2検索結果表示(在庫数)         B3商品名入力    C3検索結果表示(商品番号)D3検索結果表示(在庫数)  A10商品番号  B10商品名     C10在庫数   :       :         : としてC2には =VLOOKUP(B2,A10:C100,2,FALSE) とし正しい結果が表示されます。 商品名から検索したいC3にも同様のものをいれましたが表示されません。 よろしくお願いします。     

  • Excel関数

    Excelで適切な関数を探しています。 在庫の管理で複数ある在庫の指定した商品の過不足がわかるような在庫表を作成しようとしてます。 会社の基幹システムからExcelに落とした在庫表が下記のようにあります。 A列    B列     C列     品番    倉庫名  保有在庫数 111111   東京     10 111111   大阪     20 222222   東京     50 333333   大阪     10 333333   札幌     10 444444   札幌     30 続く・・・ 他に各倉庫各品番の必要在庫の別シートのマスターがあります。 A列    B列   C列 品番   在庫名  必要在庫数 1111111  東京    50 1111111  大阪    10 2222222  東京    100 2222222  大阪    20 最初の在庫表にD列を設け、そこに上記のマスターの必要在庫数を表示させて下記のようにしたいのですが・・・ A列    B列     C列    D列    E 品番    倉庫名  保有在庫数  必要在庫数 過不足数 111111   東京     10      50    -40 111111   大阪     20      10    10 222222   東京     50      100   -50 ・・・・・ がIFやVLOOKUPの関数で組み合わせで適切なものができませんでした。 他の関数で適切なものはありますでしょうか。 

  • エクセル縦横検索

    エクセルの縦横検索で関数がわからず何日も悩んでいます。。 <Sheet1> は商品コード・ランクごとの単価表です。   A列    B列     C列   D列    E列  F列 1  商品コード 商品名  Sランク Aランク BランクCランク  2  00010001 AA-1111 10.00 11.00  13.00 14.00 3  00100022 AB-222  11.00 12.00  15.00 16.00 4  00200033 BDB-123 20.00 21.00  22.00 23.00 5  00300033 CA-111  9.00 10.00   11.00 12.00 …  ・・・ 10  01000033 OP-100   30.00 31.00  32.00 33.00 11  02000123 TD-358  10.00 11.00  12.00 13.00   以下5000行ほど続きます。 <Sheet2>は得意先ごとのランク表です。 商品群は商品コードの頭2桁目と3桁目(00、01等)でランクが決まっている為、1行目に2桁の数字を入れています。   A列        B列             C列   D列   E列 … 1                            00   01    02    10  20  2  得意先コード 得意先名/商品群  AA  AB   BDB   OP TD  3  11111    あああ            S    A     C    B  C 4  11222    いいい            A   C     B    S  A 5  12333    ううう              C    S      S    A   B 6  12444    えええ            A   A      B    C   C 7  12555    おおお            B   B     C    S  B …  ・・・   横に50列ほど続きます。 <Sheet3>は入力画面です。    A列       B列      C列   D列 1   得意先コード 商品コード   ランク  単価 2   11222     01000033    得意先コードと商品コードを打ち込むとC2にランク(例だとS)が出るようにしたいのですが、 VLOOKUP($A$2,Sheet2!,A1:Z100,MATCH(C2,Sheet1!A1:A5000,C1:F1)) とすると、アルファベットは出るのですが、ランク表どおりに出ません。01と10が同じ数字として認識されてしまいますし、2桁目と3桁目を認識する関数がわからないので、ここで止まっています。 ランクが出たら、隣の単価を求める関数もついでに教えていただけたらさいわいです。 よろしくお願い致します!

  • エクセルについてご質問させていただきます

    現在は、シート1に『商品コード』『商品名』『分類』『在庫』が一覧で存在しており検索機能を使用して商品コードで検索し『在庫』に○を記載しているのが現状です 約500件のデータが存在しており、同一の商品コードは1つしか存在しません そこで、シート2のあるセルに商品コードを入力するとシート1から商品名、分類を引っ張ってきて表示し、正しければ何か1クッション(ボタンを押すなど)すればシート1の該当商品の在庫に○が記載されるようにしたいのです シート2に商品コードを入力して商品名、分類を表示させるのは関数で出来ました =INDEX(商品一覧!A3:C1000,MATCH(B14,商品一覧!A3:A1000,0),3) が、クッション(ボタンを押すなど)すればシート1の在庫に○が記載されるようにする事がどうしても出来ません 何か良い知恵がありましたらご教示をお願いいたします

専門家に質問してみよう