OFFSETで1行まるごと取り出す方法|高さ・幅の指定

OFFSETで1行まるごと取り出す方法|高さ・幅の指定

前回の記事では、OFFSET関数が基準セルから指定した数だけ移動した「単一のセル」の値を取得する方法を解説しました。しかし、OFFSET関数の真価は、省略可能な引数である[高さ]と[幅]を指定することで、「特定の範囲(複数のセル)」を丸ごと取得できる点にあります。

今回は、この応用テクニックを使って、指定した支店の売上データを1行分ごっそり取り出す方法をマスターしましょう。

目次

今回のゴール:指定した行数に該当する支店のデータを一行丸ごと抽出する

以下の「支店別四半期別売上表」の中から、C2セルで指定した行数(今回は「2」=千葉支店)に該当するデータを、A4セルからE4セルにかけて一行分すべて表示させることが目標です。

解決策:OFFSET関数の応用(高さと幅の指定)

手順:A4 に OFFSET の式を入れて Enter

C2 に書いた行数(2)に当たる支店の 1 行を、売上表からまるごと取り出します。Microsoft 365 の Excel なら、A4 に式を入れるだけで右の E4 まで広がります。 A4 に次の式を入力して、Enter キーを押します❶。

A4 に入れる式
=OFFSET(A7,C2,0,1,5)
A7 参照(基準)C2 行数(下へ)0 列数(右へ)1 高さ5 幅
ひとことでA7からC2 の行数(2)だけ下へずらした 9 行目を、高さ 1・幅 5でまるごと取り出す
式を分けて読むと(色は画像の枠と同じ)
参照A7
どこから数える?
→ 見出しの「支店」(A7)
行数C2
下へいくつ?
→ C2 の 2(千葉の行)
列数0
右へいくつ?
→ 0(ずらさない)
高さ1
何行分?
→ 1 行
幅5
何列分?
→ 5 列(支店〜第4四半期)
自分の表で使うときは
青に「見出しの左端のセル」、オレンジに「何行下か」、幅に「取り出したい列の数」を入れます。例:H1 の番号の行を、A1 から 7 列分取り出す=OFFSET(A1,H1,0,1,7)
  • 結果は右のセルへ広がります(スピル)。右のセルに何か入っていると #SPILL! になります。
エクセルのOFFSET関数で指定した行を1行まるごと取り出す式と、参照・行数・列数・高さ・幅を色分けした画面
エクセルのOFFSET関数で指定した行を1行まるごと取り出す式と、参照・行数・列数・高さ・幅を色分けした画面

確認:A7 から 2 行下の「千葉」の 1 行が取り出された

エクセルのOFFSET関数で、A7から2行下の千葉の行を高さ1・幅5で取り出したことを色で示した画面
エクセルのOFFSET関数で、A7から2行下の千葉の行を高さ1・幅5で取り出したことを色で示した画面

答えは 千葉の 1 行(千葉・7,094,890・9,173,321・9,233,890・9,380,930) になりました❷。式は、次の順に計算しています。

  1. A7から、C2 の 2 行だけ下へずらす
    ⇒ 9 行目の「千葉」
  2. そこから高さ 1 行・幅 5 列の範囲を取り出す
    ⇒ A4:E4 に千葉の 1 行
ヒント:Excel 2019 以前のとき
先に A4:E4 を選んでから式を入力し、Ctrl+Shift+Enter キーで確定します(配列数式)。式が { } で囲まれれば成功です。

まず動かしてみよう|この記事のサンプルをその場で試せます

練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。

サンプルデータ

以下は、上記画像のExcelデータですので、ダウンロードして練習として使用ください。

練習用Excelファイル(無料ダウンロード)
この記事の解説で使うExcelデータです。数式と練習データが入っているので、本文の式を同じ表で試せます。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り

まずは、以下のサンプルデータをExcelシートにコピーして、操作の準備をしてください。

ABCDE
1位置検索
2行(支店)2
3検索結果
4(ここに数式を入力)
5
6支店別四半期別売上表
7支店第1四半期第2四半期第3四半期第4四半期
8福岡9,015,9199,771,4347,977,78210,667,848
9千葉7,094,8909,173,3219,233,8909,380,930
10埼玉6,591,9107,999,0646,851,5748,813,211

数式の解説

基本のOFFSET関数に、[高さ]と[幅]の引数を追加した形です。

OFFSET(基準,行数,列数,高さ,幅)

  1. 基準 (reference): A7
    • スタート地点となるセルです 3。
  2. 行数 (rows): C2
    • 基準セルから下にどれだけ移動するかを指定します 4。C2セルの値「2」が使われるので、A7から2行下のA9の位置まで移動します。
  3. 列数 (cols): 0
    • 基準セルから右にどれだけ移動するかを指定します 5。今回は「0」なので、列の移動はありません。
  4. 高さ (height): 1
    • 【応用ポイント①】 取得したい範囲の行数を指定します。今回は1行分のデータが欲しいので、「1」を指定します 6。
  5. 幅 (width): 5
    • 【応用ポイント②】 取得したい範囲の列数を指定します。「支店」から「第4四半期」まで5列分のデータが欲しいので、「5」を指定します 7。

この数式は、「

A7セルを基準に、下に2行移動し、列は移動せず(0)、そこから高さ1行、幅5列の範囲を取得してください」という命令になります。結果として、A9:E9の範囲(千葉支店のデータ)が丸ごと返されるわけです 8。

まとめ

OFFSET関数の[高さ]と[幅]を使いこなすことで、単一のセルの値だけでなく、特定の範囲を動的に取得することが可能になります。これにより、合計範囲が自動で変わる集計表や、ドロップダウンリストと連動して内容が変わる表など、より高度でインタラクティブなシートを作成できます。

ぜひこの強力なテクニックを覚えて、Excelスキルをさらにレベルアップさせてください。

VLOOKUP関数と関連する検索関数の使い分けは、こちらのまとめで整理しています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次