Excelで、特定の番号を選ぶと別シートの指定セル範囲がSheet1に自動反映されるようにしたい場合があります。この記事では、VLOOKUP以外の方法も含め、複数シートのデータを選択に応じて表示させる仕組みを解説します。
INDIRECT関数を使った動的参照
ExcelのINDIRECT関数を使うと、セルに入力された文字列を参照として扱うことができます。これを応用すると、番号選択に応じて参照するシートやセルを切り替えられます。
例えば、Sheet1のA1セルに
=INDIRECT(IF($Z$1=1,"Sheet2!A1",IF($Z$1=2,"Sheet2!D1",IF($Z$1=3,"Sheet3!A1",""))))
のように入力すると、Z1セルで選択した番号に応じて参照先を切り替えられます。
オートフィルで範囲コピー
1行ずつINDIRECTで参照する場合、オートフィルを使えば連続する行も自動で参照できます。
例えばA2には
=INDIRECT(IF($Z$1=1,"Sheet2!A2",IF($Z$1=2,"Sheet2!D2",IF($Z$1=3,"Sheet3!A2",""))))
のように入力し、B1やB2も同様に列を指定すれば、範囲全体を反映させることが可能です。
別シートを経由する方法
複雑な条件の場合、中間のシートを作って参照元を整理すると管理が楽になります。
中間シートにIF関数やCHOOSE関数で番号に応じたシートのデータをまとめ、Sheet1ではその中間シートを参照するだけにする方法です。
CHOOSE関数を使った簡単切替
CHOOSE関数は指定した番号に応じて値や参照を切り替えることができます。
例えば、
=CHOOSE($Z$1,Sheet2!A1,Sheet2!D1,Sheet3!A1)
のようにすると、Z1セルの値が1ならSheet2!A1、2ならSheet2!D1、3ならSheet3!A1を返します。オートフィルで範囲に適用することも可能です。
まとめ
Excelで番号選択に応じて別シートのデータをSheet1に反映させるには、INDIRECT関数やCHOOSE関数を組み合わせる方法が便利です。さらに中間シートを活用すれば、複数の条件でも管理しやすくなります。オートフィルを併用して範囲を自動反映させることで、効率的なデータ管理が可能です。

コメント