【INDEX × MATCH × INDIRECT】関数コンボ、シートを超える柔軟参照!

関数コンボ道場

💥使うシーンと目的

タスク
タスク

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

ジッピー(ChatGPT)
ジッピー(ChatGPT)

まるでワープ装置やな!シートを飛び越えてピンポイント回収や!


🔍 今回の関数:INDEX関数 × MATCH関数 × INDIRECT関数

ジッピー(ChatGPT)
ジッピー(ChatGPT)

INDEXは“取り出し職人”、MATCHは“場所特定の探偵”、INDIRECTは“ワープポータル”や!

INDEX関数

👉 指定行・列の交差するセルの値を返す。

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)
ジッピー(ChatGPT)

まるでワープ航路やな。『あの星からバナナを1本!』って言ったら、すぐ届く感じやで!


⚠️よくあるミスや落とし穴

  • INDIRECTは文字列なので、シート名や範囲のスペルミスで即エラー
  • シート名にスペースがある場合、'(シングルクォーテーション)で囲むのを忘れる
  • MATCHの検索範囲とINDEXの参照範囲がズレている
  • INDIRECTは揮発性関数なので、大量データだと処理が遅くなる

🌟応用コンボ(別の機会)

  • INDEX × MATCH × INDIRECT × MATCH(2次元シート切り替え)
  • INDIRECT × OFFSET × MATCH(可変範囲の動的検索)
  • INDEX × MATCH × INDIRECT × IFERROR(エラー回避付き動的参照)

🎯まとめ

ジッピー(ChatGPT)
ジッピー(ChatGPT)

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

コメント

タイトルとURLをコピーしました