スプレッドシートで参照元のシート名やセル範囲を自動で切り替えたいときは「INDIRECT関数」がおすすめです。
INDIRECT関数を使えば「参照元のシート名やセル範囲の自動切り替え」をすることができます。
当記事では、
- INDIRECT関数とは何か
- INDIRECT関数の構文・使い方
- シート名を動的に変更する2つの方法
- セル範囲を動的に変更する2つの方法
について解説します。
INDIRECT関数とは何か
INDIRECT関数は「文字列で指定したセル範囲の参照を返す関数」です。
文字列でセルの範囲を指定したい場合や、セル値によって参照するセル範囲を変化させたい場合には、INDIRECT関数を使いましょう。
INDIRECT関数の構文・使い方
INDIRECT関数は以下の構文で動作します。
INDIRECT関数では、参照するタブやセル範囲をすべて文字列データで指定する必要があるので注意しましょう。
タブ名を動的に変更する2つの方法
INDIRECT関数を使ってタブ名を動的に変更する方法を2つ紹介します。
プルダウンリストを使う
1つ目の方法は「プルダウンリスト」を使う方法です。
以下のように行ごとにシート別のデータを参照している場合に「E5セル」にプルダウンメニューを設定することで、あらかじめ設定しておいた表示パターンを簡単に取得することができます。
プルダウンメニューを変更する必要はありますが、半自動・半手動でタブ名を操作することができます。
VLOOKUPを使う
2つ目の方法は「VLOOKUP関数」を使う方法です。
以下のように別セルを参照値としてVLOOKUPを設定することで、対照表を介してタブ名を参照できるようになります。
プルダウンメニューよりも複雑な条件でタブを出し分けたい場合や、複数行に渡ってタブ名を出し分けたい場合には、VLOOKUP関数を使ったタブ名の出し分けがおすすめです。
セル範囲を動的に変更する2つの方法
INDIRECT関数を使ってセル範囲を動的に変更する方法を2つ紹介します。
ROW・COLUMN関数を使う
1つ目の方法は「ROW関数・COLUMN関数」を使う方法です。
以下のように、行ごとに数字が変わるにように設定することで、動的に参照するセル範囲を変化させることができます。
VLOOKUPを使う
2つ目の方法は「VLOOKUP関数」を使う方法です。
以下のように、VLOOKUP関数で動的に参照するセル範囲を変化させることで、より複雑なセル範囲の場出し分けが可能になります。
まとめ
今回は「INDIRECT関数とは何か」「INDIRECT関数の構文・使い方」「シート名を動的に変更する2つの方法」「セル範囲を動的に変更する2つの方法」について解説しました。
INDIRECT関数は他の関数と比較してテクニカルな関数と言えます。使いこなすまでは大変ですが、上手く使えばとても便利な使い方のできる関数です。
セル範囲を動的に変更したいときには、ぜひ一度INDIRECT関数を使ってみてください。
では、また。