• ベストアンサー

Excel 関数の質問です

http://oshiete1.goo.ne.jp/qa2417271.html こちらを参考にさせていただきましたが、若干条件が違うので質問させていただきます。 商品表がありA1~D1に 品名 単価 仕入先 品番号 が書かれてあるとします でその下にA2からD10までそれぞれデータをいれます。 別ブックを抽出先としA~Cに条件として品名・単価・仕入先をいれるとDに品番号が抽出されるようにしたいのですが、 どのような関数を使えばよいのでしょうか。 なお、条件・結果が重複するものはありません。 よろしくおねがいします

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

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.3

No.1です。 DGETが使えないようなので、ちょっとややこしいですが以下の式で試していただけませんか? 抽出先の1行目がタイトル行だとして、D2に =INDEX('[Book1.xls]Sheet1'!$D$2:$D$100,SUMPRODUCT(('[Book1.xls]Sheet1'!$A$2:$A$100=$A2)*('[Book1.xls]Sheet1'!$B$2:$B$100=$B2)*('[Book1.xls]Sheet1'!$C$2:$C$100=$C2)*ROW($A$2:$A$100))-1) と入力して下にコピー。 ※[Book1.xls]Sheet1 というのが4箇所出てきますが、商品表のファイル名、シート名に置きかえてください。 ※$100というのが5箇所出てきますが、商品表のデータ数が100以上の場合は、実際のデータ数より大きな数字に置きかえてください。 ※抽出するものがない場合は#VALUE!と出てしまいますが、これを出さないようにするともっとややこしくなるのでご容赦ください。

nazonazo
質問者

お礼

そのまんまコピーさせていただきましたところ、ばっちし目的のものが表示されました。 すごい難解な式で私には理解ができませんが、とりあえず急ぐのでこのまま利用させていただきます。 関数は時間をおいて勉強させていただきます。 大変助かりました、ありがとうございました。

その他の回答 (3)

回答No.4

回答ではありませんが、 将来的に価格が揃うなど、重複行が出てきたら重複する行数分の 品番号が表示されるようにしておいた方が汎用性が高いようにも 思いますが、要らぬお世話かも。

nazonazo
質問者

お礼

とりあえず下記の方の方法で解決しました。ありがとうございます。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

「品名から品番号を検索するのが目的」で良いですか? 商品表の品名は重複なしでよいですね。 A1に検索したい品名があるとして =VLOOKUP(A1,商品表!A2:D11,4,0) で品番号が求められます。(単価、仕入れ先は使用しなくても検索可能です) もし表品表で品名が重複することがあるなら補足してください

nazonazo
質問者

補足

説明不足ですみません、重複ありです。 品名 単価 仕入先 を組み合わせパターンでの重複はありません。

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.1

抽出するのは1行だけでしょうか?もしそうならDGETでできそうです。 商品表がBook1.xlsという名前で100行データがあると仮定して、 抽出先のブックのA1~D1に同じく 品名 単価 仕入先 品番号 と入力し、 A2~C2に抽出条件を入力して、D2に =DGET([Book1.xls]Sheet1!$A$1:$D$100,4,$A1:$C2) と入力すれば、抽出できます。 Book1.xls、Sheet1 は実際のブック名、シート名に書き換えてください。

nazonazo
質問者

補足

ありがとうございます。 別ブックでは複数行抽出していきたいので、DGETが使えないと思いました。

関連するQ&A