エクセルINDIRECT関数とは?別シートを参照し、VLOOKUPと組合せる使い方【コピペ用テンプレートあり】

はじめに
エクセルの INDIRECT
関数は、 参照するセルを文字列で指定する関数 です。 VLOOKUP
関数と組合せることで、
ここでは、以下の内容を取り扱っています。
INDIRECT
関数による別シートの参照方法INDIRECT
関数とVLOOKUP
関数の組合せによる、参照先を切り替えてデータ値を抽出する方法
下にテンプレート・サンプルのセルデータがあるので、
INDIRECT関数とは
INDIRECT
関数は 文字列 を受け渡すことで、参照先を指定できる関数です。
INDIRECT("A1")
A1
セルの値を参照
他の関数はセル参照で指定する
似た機能を持つ他の関数(
OFFSET
関数、INDEX
関数)は、
セル参照 と数値を受け渡して、参照先を指定します。
OFFSET(A1, 0, 0)
A1
セルの値を参照INDEX(A1, 1, 1)
A1
セルの値を参照
ダブルコーテーションで囲うと文字列として扱われる
数式の中で、ダブルコーテーション(
"
)で囲われた文字は、文字列(テキスト)として扱われます。たとえば、以下のように形式が変化します。
A1
: セル参照(参照)"A1"
: 文字列(テキスト)0
: 数値"0"
: 文字列(テキスト)
いつ使うのか?
INDIRECT
関数は、 参照するセルを動的に変更したいときに使用します。
特に、参照するシートを切り替える場合に有効です。 INDIRECT
関数のみが、
エクセルでの算出方法
INDIRECT
とVLOOKUP
関数を組み合わせることで、
Sheet1
, Sheet2
, Sheet3
, Sheet4
という名称の4つのシートを用意し、 全セルをコピー
ボタンをクリックし、エクセルの A1
セルに貼り付け) Sheet1
の D
列 セルに、他のシートのデータ値が表示されます。
A | B | C | D | E | |
1 | 検索先 | 検索値 | 検索結果 | ||
2 | シート名 | ラベル | X | ||
3 | Sheet2 | b | =VLOOKUP(B3,INDIRECT(A3&"!A2:B5"),2) | ||
4 | Sheet3 | b | =VLOOKUP(B4,INDIRECT(A4&"!A2:B5"),2) | ||
5 | Sheet4 | b | =VLOOKUP(B5,INDIRECT(A5&"!A2:B5"),2) |
A | B | |
1 | データ | |
2 | ラベル | X |
3 | a | 21 |
4 | b | 22 |
5 | c | 23 |
6 | d | 24 |
A | B | |
1 | データ | |
2 | ラベル | X |
3 | a | 31 |
4 | b | 32 |
5 | c | 33 |
6 | 3 | 34 |
A | B | |
1 | データ | |
2 | ラベル | X |
3 | a | 41 |
4 | b | 42 |
5 | c | 43 |
6 | d | 44 |
計算手順
上記のINDIRECT
とVLOOKUP
関数を組み合わせた処理について、
- 1.文字列の結合
- 2.関数に入力
- 3.VLOOKUPで使用
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | |
1 | 検索先 | 検索値 | 数式: | =A3 | ="!A2:B3" | → | =A3&"A2:B5" | → | =INDIRECT(A3&"!A2:B5") | → | =VLOOKUP(B3,INDIRECT(A3&&"!A2:B5"),2) | ||||
2 | シート名 | ラベル | |||||||||||||
3 | Sheet2 | b | 結果: | Sheet2 | !A2:B3 | Sheet2!A2:B5 | ラベル | X | 22 | ||||||
4 | Sheet3 | b | a | 21 | |||||||||||
5 | Sheet4 | b | b | 22 | |||||||||||
6 | c | 23 | |||||||||||||
7 | |||||||||||||||
8 | |||||||||||||||
9 | |||||||||||||||
10 |
1. 文字列の結合
2つの文字列 (Sheet2
, !A2:B3
) を結合し、 シート名を含むセル参照の文字列 (Sheet2!A2:B5
) を作成します。 Sheet2
は、セルの入力値から取得しており、 Sheet3
や Sheet4
に変更した文字列も同様に作成しています。
※ シート名を含むセル参照は、シート名
+ !
+ セル
の形式です。
文字列の結合
数式中で、文字列を結合するには、
&
演算子を使用します。
2. 関数に入力
INDIRECT
関数に、1.で作成した文字列を渡します。
3. VLOOKUPで使用
VLOOKUP
関数に、2.で得られた配列値を渡します。
VLOOKUP関数
指定した値を配列の中で検索し、ヒットした行の中の(指定列の)値を返します。
例:
=VLOOKUP(B2,A2:B5,2)
A2:B5
範囲でB2
を検索し、ヒットした行の2
列目の値を返す。
- 第1引数 (
B2
): 検索する値(必須)- 第2引数 (
A2:B5
): 検索範囲(必須)- 第3引数 (
2
): 取得する列番号(必須)- 第4引数 : 近似一致検索するか (
TRUE
/FALSE
)(オプション)