前回の記事では、OFFSET
関数が基準セルから指定した数だけ移動した「単一のセル」の値を取得する方法を解説しました。しかし、OFFSET
関数の真価は、省略可能な引数である[高さ]
と[幅]
を指定することで、「特定の範囲(複数のセル)」を丸ごと取得できる点にあります。
今回は、この応用テクニックを使って、指定した支店の売上データを1行分ごっそり取り出す方法をマスターしましょう。
今回のゴール:指定した行数に該当する支店のデータを一行丸ごと抽出する
以下の「支店別四半期別売上表」の中から、C2セルで指定した行数(今回は「2」=千葉支店)に該当するデータを、A4セルからE4セルにかけて一行分すべて表示させることが目標です。
サンプルデータ

以下は、上記画像のExcelデータですので、ダウンロードして練習として使用ください。
Excel-g725-1.xlsx (ダウンロード)
まずは、以下のサンプルデータをExcelシートにコピーして、操作の準備をしてください。
A | B | C | D | E | |
1 | 位置検索 | ||||
2 | 行(支店) | 2 | |||
3 | 検索結果 | ||||
4 | (ここに数式を入力) | ||||
5 | |||||
6 | 支店別四半期別売上表 | ||||
7 | 支店 | 第1四半期 | 第2四半期 | 第3四半期 | 第4四半期 |
8 | 福岡 | 9,015,919 | 9,771,434 | 7,977,782 | 10,667,848 |
9 | 千葉 | 7,094,890 | 9,173,321 | 9,233,890 | 9,380,930 |
10 | 埼玉 | 6,591,910 | 7,999,064 | 6,851,574 | 8,813,211 |
解決策:OFFSET関数の応用(高さと幅の指定)
この操作は、お使いのExcelのバージョンによって入力方法が少し異なります。
【Excel 2019以前のバージョン】
- まず、数式の結果を表示させたい範囲(
A4
セルからE4
セルまで)をあらかじめ選択します 1。 - その状態で、以下の数式を入力します。
- 最後に、
Ctrl
+Shift
+Enter
キーを同時に押して数式を確定します 2。数式が{ }
で囲まれれば成功です。
【Microsoft 365版 Excel】
A4
セルのみを選択します。- 以下の数式を入力して、普通に
Enter
キーを押します。 - これだけで、結果が自動的に右側のセル(B4~E4)に展開(スピル)されます。
Excel
=OFFSET(A7, C2, 0, 1, 5)
数式の解説
基本のOFFSET
関数に、[高さ]
と[幅]
の引数を追加した形です。
OFFSET(基準,行数,列数,高さ,幅)
- 基準 (reference):
A7
- スタート地点となるセルです 3。
- 行数 (rows):
C2
- 基準セルから下にどれだけ移動するかを指定します 4。
C2
セルの値「2」が使われるので、A7
から2行下のA9
の位置まで移動します。
- 基準セルから下にどれだけ移動するかを指定します 4。
- 列数 (cols):
0
- 基準セルから右にどれだけ移動するかを指定します 5。今回は「0」なので、列の移動はありません。
- 高さ (height):
1
- 【応用ポイント①】 取得したい範囲の行数を指定します。今回は1行分のデータが欲しいので、「1」を指定します 6。
- 幅 (width):
5
- 【応用ポイント②】 取得したい範囲の列数を指定します。「支店」から「第4四半期」まで5列分のデータが欲しいので、「5」を指定します 7。
この数式は、「
A7
セルを基準に、下に2
行移動し、列は移動せず(0
)、そこから高さ1
行、幅5
列の範囲を取得してください」という命令になります。結果として、A9:E9
の範囲(千葉支店のデータ)が丸ごと返されるわけです 8。
まとめ
OFFSET
関数の[高さ]
と[幅]
を使いこなすことで、単一のセルの値だけでなく、特定の範囲を動的に取得することが可能になります。これにより、合計範囲が自動で変わる集計表や、ドロップダウンリストと連動して内容が変わる表など、より高度でインタラクティブなシートを作成できます。
ぜひこの強力なテクニックを覚えて、Excelスキルをさらにレベルアップさせてください。
コメント