【Excel・エクセル】INDIRECT関数の使い方!MATCH関数の組み合わせも

調べる,抽出,検索

もりの

INDIRECT関数ってのが便利って聞いたんだけど?

やまの

お目が高い!かなり可能性を秘めた関数なんよ。

今回のポイント
  • INDIRECT関数はセルを参照する関数
  • =INDIRECT(参照文字列,参照形式)
  • 参照形式は無視してOK
  • 別シートは「=INDIRECT(“シート名!セル番号")」で参照できる
  • ほかの関数と組み合わせて真価を発揮する

スポンサーリンク

 INDIRECT関数の練習ファイルダウンロード

もりの
 
 

一緒にやってみませんか?

【Excel・エクセル】セル参照できるINDIRECT関数の基本の使い方

INDIRECT関数は、セルや別シートを参照する関数です。

ちなみに読み方は、「インダイレクト関数」です。

もりの

どういうこと?

INDIRECT関数の書き方

=INDIRECT(参照文字列,参照形式)

INDIRECTこのセルの値を参照してね
参照文字列参照したいセル(文字列で指定)
参照形式A1形式かR1C1形式か(基本省略でOK)
もりの

参照形式が謎すぎるのですが。

やまの

基本はA1形式だから、ないものと思ってOKだよ。

A1形式とR1C1形式

A1形式はセル番号で指定する形式、R1C1形式は行番号と列番号で指定する形式です。

例えばセルB3を指定する場合

A1形式(TRUE)B3そのままセル番号でOK
R1C1形式(FALSE)R2C32行、3列目のセルってこと

となります。

省略するとA1形式になるので、基本は省略してOKなんです。

例えばセルA3を参照したいときは「=INDIRECT(“A3")」と書きます。

参照セルは文字列で指定するので「"」で囲みます。

INDIRECT関数でセルA3を参照した画像
セルA3を参照したいとき

ちなみに参照文字列は、セルで指定もできます。

INDIRECT関数をセルで指定した画像
セルで指定もできる
もりの

「=A3」って書くのと、何が違うんだろ?

INDIRECT関数で別シートを参照する

別シートを参照した場合「=シート名!セル番号」になりますよね。

別シートを参照した場合
別シートを参照した場合

INDIRECT関数でも同じように書けば、別シートを参照できます。

「=INDIRECT(“シート名!セル番号")」ですね。

INDIRECT関数で別シートを参照した画像
INDIRECT関数で別シートを参照
もりの

普通に=で書いた方が早くない?この関数、何が便利なの?

やまのののんびりした顔
やまの

まーまー、慌てなさんなって。

INDIRECT関数はほかの関数と組み合わせることで、真価を発揮するのです!

【Excel・エクセル】INDIRECT関数ほかの関数を組み合わせる

INDIRECT関数とCOUNTA関数で最後の値を取り出す

例えば、データの個数を数えるCOUNTA関数。

選択した範囲のデータの個数が分かる関数ですね。

COUNTA関数の使い方
COUNTA関数の使い方

上の図では、A列のデータは4つなので、答えは4になりました。

じゃあ、「=INDIRECT(“A"&COUNTA(A:A))」としたら、どうでしょう?

COUNTA(A:A)の答えは4なので、A4を参照して、そらのとなりました。

INDIRECT関数とCOUNTA関数の組み合わせ
INDIRECT関数とCOUNTA関数の組み合わせ
やまの

ちなみに関数の答えは文字列じゃなくて数値になるから、「"」はいらないよ。

A列に値を1つ追加してみました。

当然COUNTAの答えも1つ増えて5になります。

すると、INDIRECT関数はA5を参照するので、常にA列の最後の値が分かる、というわけなんです!

INDIRECTとCOUNTAで、A列の最後の値が分かるようにした画像
INDIRECTとCOUNTAで、A列の最後の値が分かる
もりの

あれ、可能性を感じるぞ……?

INDIRECT関数とMATCH関数で条件に合う値を取り出す

MATCH関数の書き方

=MATCH(検査値,検査範囲,照合の種類)

MATCHこの値は、この中の何番目にあるか教えて
検査値この値は
検査範囲この中の
照合の種類0:完全一致、-1:以上、1:以下

次はMATCH関数、条件に合うセルが何番目に位置するかが分かる関数です。

MATCH関数の使用例
MATCH関数の使用例

そらのはA列の上から数えて4番目になるので、答えは4になりました。

INDIRECT関数とMATCH関数を組み合わせると、VLOOKUP関数のように条件に合うセルの値を抽出できます!

「=INDIRECT(“B"&MATCH(D3,A1:A6,0))」とすると、MATCH関数の答えは4なので、セルB4を参照して、答えは85になりました。

INDIRECT関数とMATCH関数でVLOOKUP関数を再現
MATCH関数でVLOOKUP関数的に使える

ちなみに検査範囲が1行目にない場合は、その分足し算してあげればOKです。

ズレてる分足してる画像
ズレてる分足せばいい
もりのの笑った顔
もりの

おぉ、可能性しかない!!

INDIRECT関数は、関数の自由度がめちゃめちゃ高まります。
ぜひ、いろんなシーンでお役立てください!

それでは、お疲れさまでした!

今回のおさらい
  • INDIRECT関数はセルを参照する関数
  • =INDIRECT(参照文字列,参照形式)
  • 参照形式は無視してOK
  • 別シートは「=INDIRECT(“シート名!セル番号")」で参照できる
  • ほかの関数と組み合わせて真価を発揮する