• 締切済み

エクセルデータ検索方法を教えてください!

エクセルで下記のような検索をしたいと思っています。 VBAの知識がないので、関数で行いたいです。 Sheet1   G     H    I     J 1 商品番号 カラー  サイズ  コード 123    白    M     Sheet2   A     B    C     D 1 商品番号 カラー  サイズ  コード   123    白    M     aaa 上記のようにシートが分かれています。 Sheet1の「商品番号」「カラー」「サイズ」と、Sheet2の「商品番号」「カラー」「サイズ」 が対応しており、3つの条件すべてに合致するSheet2の「コード」を、Sheet1の「コード」に 表示させたいです。 データが膨大にあるのですが、大変急ぎの作業のため、どうぞよろしくお願いします。

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

>膨大にある 具体的に何行ぐらいあるのですか。 たとえば2000行ぐらいなら シート1のJ2に =IF(G2&H2&I2="","",INDEX(Sheet2!D:D,MIN(IF((Sheet2!$A$1:$A$2000=G2)*(Sheet2!$B$1:$B$2000=H2)*(Sheet2!$C$1:$C$2000=I2),ROW(Sheet2!$D$1:$D$2000),9999))))&"" と記入し,必ずコントロールキーとシフトキーを押しながらEnterで入力し,リスト下端までコピー貼り付けておけば出来ます。 3000行よりも沢山沢山あるなら シート2のA列に空列を一行挿入し A2に =B2&"="&C2&"-"&D2 を記入してリスト下端までコピー シート1のJ2に =IF(COUNTIF(Sheet2!A:A,G2&"-"&H2&"-"&I2),VLOOKUP(G2&"-"&H2&"-"&I2,Sheet2!A:E,5,FALSE),"") と記入し,リスト下端までふつーにコピー貼り付けます。 #ご利用のエクセルのバージョンに応じて,もっと簡単な関数になる場合もあります。 ご相談投稿では,普段あなたが使うソフトのバージョンまでしっかり明記することも憶えてください。

naraosaka12
質問者

お礼

ありがとうございました!大変助かりました><

すると、全ての回答が全文表示されます。
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

データが多くなる場合には配列数式などを使うよりも作業列を使って対応することが計算に負担を掛けない方法としてお勧めです。 シート2のE2セルには次の式を入力して下方にドラッグコピーします。 =A2&B2&C2 お求めのシート1のC2セルには次の式を入力して下方にドラッグコピーします。 =IF(G2="","",IF(COUNTIF(Sheet2!E:E,G2&H2&I2)>0,INDIRECT("Sheet2!D"&MATCH(G2&H2&I2,Sheet2!E:E,0)),""))

すると、全ての回答が全文表示されます。

関連するQ&A