小学館IDをお持ちの方はこちらから
ログイン
初めてご利用の方
小学館IDにご登録いただくと限定イベントへの参加や読者プレゼントにお申し込み頂くことができます。また、定期にメールマガジンでお気に入りジャンルの最新情報をお届け致します。
新規登録
人気のタグ
おすすめのサイト
企業ニュース

覚えておくと便利!Excelで指定される文字列への参照を返す「INDIRECT関数」の使い方

2025.05.12

INDIRECT関数とは、指定される文字列への参照を返す関数である。たとえば、A1を指定することでA1の値を出力できる。MATCH関数やVLOOKUP関数と組み合わせて使うことが多いので覚えておこう。

INDIRECT関数とは何なのか分からないという方もいるのではないだろうか。INDIRECT関数は単体で使うのではなく、MATCH関数やVLOOKUP関数などと組み合わせて使う場合が多い。

本記事ではINDIRECT関数とは何かについて解説する。MATCH関数やVLOOKUP関数と組み合わせて使う方法についてもまとめた。

INDIRECT関数とは?

INDIRECT関数とは、指定される文字列への参照を返す関数である。たとえば、A1に「5」が入力されている場合、INDIRECT関数でA1を指定すると「5」が出力される。

INDIRECT関数を使わなくても「=A1」と入力すれば、A1の値を取得することは可能である。INDIRECT関数は単体で使うことは少ない。MATCH関数やVLOOKUP関数と組み合わせて使うことがほとんどである。

■INDIRECT関数の構文

INDIRECT関数の構文は次のとおりである。

  • INDIRECT(参照文字列, [参照形式])

1つ目の引数には参照文字列を指定する。2つ目の引数には参照形式を指定する。ただし、2つ目の引数は省略することが多い。2つ目の引数に「FALSE」を指定すると、R1C1形式に対応できる。ただ、そもそもR1C1形式があまり使われない。

以下のように「=INDIRECT(“A1”)」と入力してみる。

NDIRECT関数の構文

実行すると「test」と表示された。「A1」にはダブルクォーテーションが必要である。

NDIRECT関数を使った結果

ダブルクォーテーションがないと、下記のようにエラーが出てしまう。

エラー事例

INDIRECT関数とMATCH関数を組み合わせる方法

続いて、INDIRECT関数とMATCH関数を組み合わせる方法について解説する。

次の3つの手順で説明していこう。

  1. 表を準備する
  2. MATCH関数を使う
  3. INDIRECT関数を使う

■1.表を準備する

まず、プランごとの料金がまとめられた以下の表を準備しよう。

A列にはプラン名、B列には料金を記入する。

プラン表の作成

■2.MATCH関数を使う

まずはMATCH関数単体で使ってみよう。MATCH関数は指定した範囲内から、指定した文字列がどこにあるのか、取得してくれる関数だ。

たとえば、「=MATCH(“ライトプラン”,A2:A5,0)」とすることで、「ライトプラン」がA2〜A5のどこにあるのかを、MATCH関数が返してくれる。

MATCH関数を使用

実行すると「2」と返された。「ライトプラン」は2番目に書かれているので合っていることになる。

MATCH関数の結果

■3.INDIRECT関数を使う

それではINDIRECT関数とMATCH関数を組み合わせる方法を紹介しよう。

以下の画像では「=INDIRECT(“B”&MATCH(“ライトプラン”,A2:A5,0)+1)」としている。

まず、MATCH関数を使って、「ライトプラン」がどこにあるかを取得している。「ライトプラン」は2番目にあるので「2」が返される。

つまり、MATCH関数が『ライトプラン』が2番目にあることを返すので、2+1=3となり、”B”&3で”B3″という参照文字列ができる。つまり、INDIRECT関数はB3を参照することになる。

INDIRECT関数の使用

B3を参照しているので、実行すると「500」と表示された。

INDIRECT関数とMATCH関数を組み合わせることで、指定したプランに対応する料金を取得することに、成功している。

INDIRECT関数の結果

INDIRECT関数とVLOOKUP関数を組み合わせる方法

続いて、INDIRECT関数とVLOOKUP関数を組み合わせる方法について解説する。

次の3つの手順で説明していこう。

  1. 表を準備する
  2. INDIRECT関数を使う
  3. VLOOKUP関数を使う

■1.表を準備する

まずは画像のように2種類の表を準備しよう。

2つの表を作成

2025年以前の表には「A」、2025年以降の表には「B」と名前をつけておく。

表の名前をAに

表の名前をBに

■2.INDIRECT関数を使う

先ほどは表に「A」「B」という名前を付けた。表に名前を付けることで、INDIRECT関数でその表を参照し、表の中身を出力することができる。

以下の画像では「=INDIRECT(E2)」としている。E2には「A」と書かれている。つまり、INDIRECT関数によって2025年以前(A)の表を取得しようとしている。

INDIRECT関数を使用

実行すると、2025年以前(A)の表が出力されたことが分かる。

INDIRECT関数の結果

■3.VLOOKUP関数を使う

INDIRECT関数とVLOOKUP関数を組み合わせることで、INDIRECT関数で取得した表の中から、特定のデータがどこにあるのかを取得することができる。

以下の画像ではE2には「A」、E3には「ライトプラン」と記入している。

そして、「=VLOOKUP(E3,INDIRECT(E2),2,0)」としている。まず、INDIRECT関数で「A」の表を取得している。つまり、「=VLOOKUP(E3,”A”,2,0)」ということになる。

続いて、VLOOKUP関数でE3(ライトプラン)が、Aの表のどこにあるかを探している。VLOOKUP関数の3つ目の引数には「2」が指定されている。「2」を指定することで、2番目のデータを出力することができる。

VLOOKUP関数を使用

実行すると「500」と表示された。2025年以前(A)の表から「ライトプラン」を探し、その2番目のデータである「500」を出力している。

このように、INDIRECT関数とVLOOKUP関数を組み合わせることで、指定した表から特定のデータを検索して、表示することが可能だ。

VLOOKUP関数の結果

まとめ

本記事ではINDIRECT関数について解説した。最後にINDIRECT関数の基本的な構文をおさらいしよう。

  • INDIRECT(参照文字列, [参照形式])

また、MATCH関数と組み合わせる例は次のとおり。

「=INDIRECT(“B”&MATCH(“ライトプラン”,A2:A5,0)+1)」

  1. MATCH関数で「ライトプラン」がA2〜A5のどこにあるか探す
  2. INDIRECT関数で「ライトプラン」がある場所のB列を参照する

VLOOKUP関数と組み合わせる例は次のとおり。

「=VLOOKUP(E3,INDIRECT(E2),2,0)」

  1. INDIRECT関数でE2の値(表)を参照する
  2. VLOOKUP関数でE3の値が参照した表のどこにあるか探し、2番目のデータを出力

INDIRECT関数はこのように、他の関数と組み合わせることで効果を発揮する。

関連記事:5分で理解できるExcelの「INDIRECT関数」の基本的な使い方

構成/編集部

@DIMEのSNSアカウントをフォローしよう!

DIME最新号

最新号
2025年4月16日(水) 発売

DIME最新号は、「名探偵コナン 熱狂の舞台裏」。長野県警全面協力!劇場版最新作の舞台の新聖地とは?長野県警トリオ〟をあしらったトリプルジッパーバッグの付録付!

人気のタグ

おすすめのサイト

ページトップへ

ABJマークは、この電子書店・電子書籍配信サービスが、著作権者からコンテンツ使用許諾を得た正規版配信サービスであることを示す登録商標(登録番号 第6091713号)です。詳しくは[ABJマーク]または[電子出版制作・流通協議会]で検索してください。