質問: エクセルでhlookup関数の選択範囲について エクセルでhlookup関数を使って、検索したいのですが、 シートは、一覧表のシートと データが入っているa101、b203、c305、...シートは300シートくらいあります。 一覧表のシートには、下のような表になっていて、 a列 b列 c列 d列 ... 1003、1004、1005、1006、... 2行目 a101 3行目 b203 4行目 c305 . . . データのはいっているシート、a101は下の表になっています。 b列 c列 d列、・・・、z列 2行目 1004、1005、1006、... 3行目 100、 200、 150、... 一覧表のb列の2行目には hlookup(b2、シートa2のb2:z3、2行目、false) という感じで、シート名をセルa2のものを参照にして 探して表示させ、b列、c列、d列の2行目から下の行も 表示させたいのですが、うめくできませんでした。 indirect関数を使ってみましたが、セル範囲が無効という エラーがでてしまいます。↓こんな感じで入力してみたのですが... sumproduct((indirect($a2&"!$b$2:$z$3"))=$b$1,(indirect($a2&"!$b$2:$z$3"))) 1つづつデータを見て手打ちはデータが多く、 どんどんデータが増えていくので できれば関数を使って表示させたいと思っています。 詳しい方いらっしゃいましたら、どうか教えてください よろしくお願いします。
回答: 一覧表シートのb2セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。 =if($a2="","",if(countif(indirect($a2&"!b2:z2"),b$1)=0,"",hlookup(b$1,indirect($a2&"!b2:z3"),2,false)))