プロが教えるわが家の防犯対策術!

エクセルのHLOOKUP関数の検索範囲指定で、複数のシートにわたる範囲指定は出来ないのでしょうか。
例えば、シート1からシート5まであり、各シートのA1:D10を指定するとか。

A 回答 (2件)

VLOOKUP関数では別シートの範囲を指定することはできませんので、以下のようなIF関数を使用した式で表示させることになります。



=IF(ISNA(VLOOKUP(A2,Sheet1!A:D,2,0)),"",VLOOKUP(A2,Sheet1!A:D,2,0))&IF(ISNA(VLOOKUP(A2,Sheet2!A:D,2,0)),"",VLOOKUP(A2,Sheet1!A:D,2,0))&・・・・・

エクセル2007ならISERROE関数が使えますので、かなり簡潔な数式で対応することができます。

数式が長くなり制限を超える場合は、検索範囲を名前定義するとよいと思います(もちろんIF関数の入れ子の数式にしたほうが短い数式になります)。
    • good
    • 0
この回答へのお礼

ありがとうございます。IS関数はいまひとつ分らないんですが、やってみます。

お礼日時:2010/02/05 23:05

こんばんは!


解釈が違っていたらごめんなさい。
関数の範囲指定が条件によってSheet1~Sheet5に変わってくるという意味でしょうか?
(仮に常にSheet1~Sheet5のA1:D10を範囲指定したいのであれば同一Sheetにまとめれば解決すると思いますので・・・)

一応そういうことだとしての方法です。
一例ですが、それぞれのSheetの範囲を「名前定義」しておくやり方です。
当方使用のExcel2003の場合ですが、

Sheet1のA1:D10を範囲指定 → メニュー → 挿入 → 名前 →
定義 → 仮に _1 と名前定義します
範囲指定後、直接名前ボックスに入力しても構いません。
(ここでアンダーバーを付けておくのは数値だけでは名前定義できなかった記憶がありますので敢えて、Sheet番号の前にアンダーバーを付けておきます)

同様にSheet2は _2  Sheet3は _3 ・・・という具合に _5 まで同じ操作を行います。

そして、条件によってSheetを選ばなければならないので、そのSheet番号を決定させるセルを設けます。
仮にそのセルをA1とした場合は
HLOOKUP関数の範囲の欄に

INDIRECT("_"&A1)  として普通に関数を完成すればOKかと思います。

これでA1セルに 1~5 を入力すればそのSheetナンバーのA1:D10が関数の範囲になります。

以上、長々と書きましたが参考になれば幸いです。
的外れなら読み流してくださいね。m(__)m
    • good
    • 0
この回答へのお礼

ありがとうございます。詳しくありがとうございます。試してみます。

お礼日時:2010/02/05 23:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!