💥使うシーンと目的

タスク
「別シートにあるリストから値を取りたい…でも、参照先のシート名が変わるんだよなぁ…」
「毎回参照先シートを手打ちで変えるの、マジでめんどくさい!」
そんな時に活躍するのがこのトリプルコンボ!
MATCHで場所を特定、INDEXで中身を取得、INDIRECTでシート名も動的に変えられる!

ジッピー(ChatGPT)
まるでワープ装置やな!シートを飛び越えてピンポイント回収や!
🔍 今回の関数:INDEX関数 × MATCH関数 × INDIRECT関数

ジッピー(ChatGPT)
INDEXは“取り出し職人”、MATCHは“場所特定の探偵”、INDIRECTは“ワープポータル”や!
INDEX関数
👉 指定行・列の交差するセルの値を返す。
MATCH関数
👉 検索値が範囲内で何番目にあるかを返す。
MATCH関数って、“位置を特定するインデックスの探偵”や!
INDIRECT関数
👉 セルに書かれたシート名やセル番地を使って動的に参照できる。
INDIRECT関数って、“文字列からセルを召喚する魔導書”や!
📊 実際のコンボ:

タスク
「例えば、A2セルに「参照先のシート名」が入っていてB2セルに「各エリア」が入っているとする。
参照先のシートがA列=エリア、B列=売上の構成で、入力したエリアから価格を取得したい場合…」これらを可能にするには、=INDEX(INDIRECT("'" & A2 & "'!B2:B6"),
MATCH(B2, INDIRECT("'" & A2 & "'!A2:A6"), 0))
こう書く!
B2
:検索したいエリアA1
:参照するシート名(例:「6月」)INDIRECT("'" & A2 & "'!B2:B6")
:A2の参照先のシートでB列範囲を作成MATCH(B2, INDIRECT("'" & A2 & "'!A2:A6"), 0)
:A2の参照先のシートでB2の売上が何行目にあるか特定INDEX(...)
:A列のその行にある売上を返す
図解:INDEX × MATCH × INDIRECT


タスク
これならシート名を変えるだけで参照先も自動で切り替わる!マジで管理楽すぎ!

ジッピー(ChatGPT)
まるでワープ航路やな。『あの星からバナナを1本!』って言ったら、すぐ届く感じやで!
⚠️よくあるミスや落とし穴
- INDIRECTは文字列なので、シート名や範囲のスペルミスで即エラー
- シート名にスペースがある場合、
'
(シングルクォーテーション)で囲むのを忘れる - MATCHの検索範囲とINDEXの参照範囲がズレている
- INDIRECTは揮発性関数なので、大量データだと処理が遅くなる
🌟応用コンボ(別の機会)
- INDEX × MATCH × INDIRECT × MATCH(2次元シート切り替え)
- INDIRECT × OFFSET × MATCH(可変範囲の動的検索)
- INDEX × MATCH × INDIRECT × IFERROR(エラー回避付き動的参照)
🎯まとめ

ジッピー(ChatGPT)
シートを超える検索ルートを作れるのは、INDIRECTあってこそやな。MATCHで場所を突き止めて、INDEXで回収…もう探し物はどこにあっても安心や!
コメント