Excelを使っていると、複数のシートからデータを引っ張ってきたい場面がよくありますよね。特に、シート名や範囲が動的に変わる場合、どうやって効率よく検索するかが悩みどころです。そんなときに役立つのが、INDIRECT関数とXLOOKUP関数の組み合わせです。
INDIRECT関数とは?
INDIRECT関数は、文字列で指定したセル参照を実際のセル参照として扱う関数です。例えば、セルに「Sheet2!B2」と入力されているとき、=INDIRECT()と書くと、実際にSheet2のB2セルの値を参照することができます。
この特性を活かすと、シート名やセル範囲を動的に指定できるため、柔軟なデータ参照が可能になります。
XLOOKUP関数とは?
XLOOKUP関数は、指定した範囲から検索値を探し、対応する値を返す関数です。従来のVLOOKUP関数やHLOOKUP関数と比べて、より柔軟で使いやすいのが特徴です。
例えば、=XLOOKUP(“りんご”, \:, B2\:B10)と書くと、\:の範囲から「りんご」を探し、対応するB列の値を返します。
INDIRECTとXLOOKUPを組み合わせるとどうなる?
これらの関数を組み合わせることで、シート名や範囲をセルで指定し、それに基づいてXLOOKUPでデータを検索することができます。
例えば、セルに「Sheet2」、セルB1に「B2\:B10」、セルC1に「C2\:C10」と入力されているとき、=XLOOKUP(“りんご”, INDIRECT(& “!” & B1), INDIRECT(& “!” & C1))と書くと、Sheet2のB2\:B10から「りんご」を探し、対応するC列の値を返します。
実際の活用例
例えば、複数の店舗の売上データがそれぞれのシートに分かれている場合、INDIRECTとXLOOKUPを組み合わせることで、店舗名や売上範囲をセルで指定し、簡単にデータを取得することができます。
注意点とポイント
- INDIRECT関数は文字列で指定された参照を扱うため、シート名や範囲が正確であることを確認してください。
- 大量のデータを扱う場合、INDIRECT関数の使用は計算負荷が高くなる可能性があるため、注意が必要です。
よくある質問や疑問
Q1: INDIRECT関数はどんなときに使うと便利ですか?
セルに「Sheet2」と入力し、=INDIRECT(& “!B2”)と書くと、Sheet2のB2セルの値を参照できます。シート名やセル範囲を動的に指定したいときに便利です。
Q2: XLOOKUP関数とVLOOKUP関数の違いは何ですか?
XLOOKUP関数は、検索範囲と戻り範囲を自由に指定でき、列の位置に依存しません。VLOOKUP関数は、検索範囲の最左列から検索を開始し、戻り範囲は検索範囲の右側に限定されます。
Q3: シート名をセルで指定する方法はありますか?
はい、セルにシート名を入力し、=INDIRECT(& “!B2”)と書くことで、指定したシートのB2セルを参照できます。
まとめ
INDIRECT関数とXLOOKUP関数を組み合わせることで、シート名や範囲を動的に指定し、柔軟なデータ検索が可能になります。これらの関数を活用して、Excelでの作業効率をアップさせましょう。
INDIRECT関数の使い方と#REF!エラーが出る原因については、ExcelのINDIRECT関数の使い方とエラー対処もあわせてご覧ください。



コメント