列や行を可変にして参照するには?
Excelでデータを参照する際、列や行の位置を可変にしたいケースがあります。例えば、ユーザーが選択した列のデータを取得したり、変動する行番号を使って特定のセルを参照したりする場合です。INDIRECT
関数を活用すると、柔軟な範囲指定が可能になります。本記事では、INDIRECT
を使った可変範囲の指定方法を解説します。
INDIRECT関数とは?
INDIRECT(参照文字列)
は、文字列として指定されたセル参照を実際のセルとして認識し、そのセルの値を取得する関数です。
- セル番地を文字列として指定することで、可変なセル参照を実現できます。
- シート名や範囲を変数のように扱うことで、動的なデータ取得が可能になります。
行番号を可変にする方法
例えば、ユーザーが行番号を指定し、その行のデータを取得する場合を考えます。
A | B | C | |
---|---|---|---|
1 | 札幌 | 選択行のデータ | |
2 | 仙台 | =INDIRECT(“A” & B4) | |
3 | 東京 | 行番号 | |
4 | 大阪 | 3 | |
5 | 名古屋 |
手順
- B4セルに取得したい行番号(例:3)を入力。
- B2セルに =INDIRECT(“A” & B4) を入力。
- A列の該当行のデータ(例:「東京」)がB2に表示されます。
列番号を可変にする方法
列の指定を可変にすることで、特定の行における動的な列参照が可能になります。
A | B | C | |
---|---|---|---|
1 | 列番号 | データ | |
2 | 2 | =INDIRECT(ADDRESS(3, A2)) | |
3 | 東京 | 100 | 200 |
4 | 大阪 | 150 | 250 |
手順
- A2セルに取得したい列番号(例:2)を入力。
- B2セルに =INDIRECT(ADDRESS(3, A2)) を入力。
- 3行目のA2列目の値(例:100)が表示されます。
可変範囲を指定する方法
範囲を可変にすることで、ユーザーが選択したデータ範囲の合計や平均を求めることができます。
A | B | |
---|---|---|
1 | 40 | 合計 |
2 | 50 | =SUM(INDIRECT(B4)) |
3 | 10 | 範囲 |
4 | 20 | A3:A5 |
5 | 30 |
手順
- A2セルに「A3:A5」と入力。
- B2セルに =SUM(INDIRECT(B)) を入力。
- A3:A5の合計(10+20+30=60)がB2に表示されます。
注意点
INDIRECT
関数は、参照先が正しくないと#REF!
エラーを返します。- セル参照を文字列で入力する必要があります。
- 外部ブックのセル参照には使用できません。
まとめ
INDIRECT
関数を使用すると、行や列を動的に変更しながらデータを取得できます。可変な範囲を指定することで、柔軟なデータ操作が可能になります。
使用した関数について

INDIRECT関数で数値かどうかを判定する方法についてわかりやすく解説
INDIRECT関数についてINDIRECTの概要文字列で指定された参照を返すExcel関数=INDIRECT( 参照 )概要 INDIRECT関数は、指定された文字列をセル参照に変換し、そのセルの値を返します。間接的にセルや範囲を参照するため、動的な範囲指定に便利です。 INDIRECT関数は、セル参照を動的に扱いた...

ADDRESS関数でセル番号を文字として取得する方法や参照の種類や形式についてわかりやすく解説
ADDRESS関数についてADDRESSの概要セル参照を文字列で取得Excel関数=ADDRESS(行番号, 列番号, , , )概要 ADDRESS関数は、指定した行番号と列番号に基づいてセルの参照を文字列として返します。 参照の種類には絶対参照、相対参照、混合参照を指定できます。 参照形式にはA1形式とR1C1形式...

SUM関数で数値の合計を求める方法とショートカットや条件を付ける方法、引き算関数についてわかりやすく解説
SUM関数についてSUMの概要数値の合計を求めるExcel関数/数学=SUM( 数値1 , 数値2 , 数値3 )概要 数値の合計数を求める 数値が文字や空白の場合は無視(0になる)されますが、単純な足し算式(A1+A2)では無視されずエラーとなりますので、後の事(更新やメンテナンス)を考えSUM関数を用いることを推奨...