• 締切済み

INDIRECT関数とVLOOKUP関数について

ざっくりとしたものに作り直しておりますが、図のようなExcelのシートを作成しています。 「科目」の欄にはINDIRECT関数を利用したリストを作成しており、 E列のセルに、科目で選択したシート分のドロップダウンリストが表示されるようになっています。 今回、頭を悩ませているのは、B列のセルに「業者名」を入力するのですが、 INDIRECT関数を利用している各シートには担当業者が入力されているので、 E列にリストから商品を選択したら、担当業者が自動的に入力されるような関数ができないものか、 というものです。 ちなみに、 =IF($M$1="生活用品",VLOOKUP($E5,生活用品一覧!$B$2:$D$255,2,FALSE),"") という関数を試しに入れてみたら、当たり前ですが、「科目」が”生活用品”となっているときだけ 対応できるのですが、科目が変わってしまったら使えません。 検索の仕方が悪いのか、そもそもそんなことはできないのか。 どなたか教えて頂けたら大変助かります。 宜しくお願い申し上げます。

みんなの回答

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

VLOOKUPで探しに行く先も全く同じくINDIRECTで切り替わる・差し替わるように仕込んでおくだけです。 たとえば 生活用品ならVLOOKUP(E5,生活用品一覧!$B$2:$D$255,2,FALSE)だけど 事務用品ならVLOOKUP(E5,事務用品一覧!$B$2:$D$255,2,FALSE)となって欲しい そういう具合に仕込みをしておけば =IF($M$1="","",VLOOKUP(E5,INDIRECT($M$1&"一覧!$B$2:$D$255"),2,FALSE) といった具合です。 言わずもがなですが、生活用品の場合も事務用品の場合でも、「生活用品」「事務用品」という言葉だけが変わって他は一切変わりないで出来るように準備しておくのが、ポイントです。

husha-by
質問者

お礼

お礼を入れていないのに気づくのが(相当)遅れてしまい、申し訳ありません!<m(__)m> 本当にありがとうございました!!!

関連するQ&A