Excel一覧 Excel操作・関数 OFFSET関数・範囲参照系 関数の使い方

【Excel】OFFSET関数をわかりやすく解説|位置をずらして参照する便利な関数

Excelを使っていて、「あるセルを基準にして、下や右にずらした位置の値を取得したい」と感じたことはありませんか?
たとえば「商品名の2行下の数量を自動で参照したい」「グラフを追加データに合わせて自動更新したい」など、表の形が毎回変わるケースです。

そんなときに役立つのが OFFSET関数(オフセット関数) です。
OFFSET関数を使うと、セルの位置を“ずらして参照”できるため、動的で柔軟なExcel操作が可能になります。

この記事では、OFFSET関数の基本から実務で使える応用例までを、初心者にもわかりやすく丁寧に解説します。

✅ OFFSET関数の基本構文と意味を理解しよう

・OFFSET関数の書式

まずはOFFSET関数の基本形を確認しましょう。

=OFFSET(参照, 行数, 列数, [高さ], [幅])

この中で特に重要なのは最初の3つの引数です。

引数名意味
参照基準となるセルや範囲A1
行数何行下に移動するか(上に行くならマイナス)2
列数何列右に移動するか(左ならマイナス)1

・基本の使い方の例

=OFFSET(A1,2,1)

この式は「A1セルを基準に、2行下・1列右にあるセル」を参照します。
つまり、B3セルの値が表示されます。

このようにOFFSET関数は「基準をずらして値を取得する」ための関数で、
位置を相対的に指定できるのが特徴です。

参考:【Excel】OFFSET関数とは


✅ OFFSET関数を使うメリットとは?

・動的にセルを参照できる

普通の数式では、参照範囲は固定です。
たとえば「=A1」と書いた場合、A1以外を参照することはできません。
しかしOFFSET関数を使えば、「A1を基準にして2行下」などと指定できるため、
入力行が増えても自動で最新の値を参照できるようになります。

参考:【Excel】OFFSET関数とは?動的な参照を可能にする強力な関数

・SUM関数などと組み合わせて自動集計

OFFSET関数の強みは、他の関数と組み合わせるとさらに発揮されます。
例えば、A列のデータを自動的に合計したい場合には、次のように書きます。

=SUM(OFFSET(A1,0,0,COUNTA(A:A),1))

この数式の動作は次の通りです:

  1. COUNTA(A:A) がA列のデータ数を数える
  2. OFFSETでA1を基準に、データ数分の範囲を取得
  3. SUM関数でその範囲を合計

新しいデータを追加しても、範囲が自動的に広がります。
つまり、「更新しても式を修正する必要がない」という利点があります。

参考:【Excel】引き算とSUM関数を組み合わせて使う方法|計算式と実例を徹底解説!


✅ OFFSET関数の使い方をわかりやすく解説

・1. 位置をずらして値を取得する基本

たとえば以下のような表を想定します。

A列B列
商品名数量
りんご30
みかん25
バナナ40

ここで「A1」を基準にして「りんごの数量(B2)」を取得する場合、次の式を使います。

=OFFSET(A1,1,1)

結果は 30 です。
1行下(行数=1)、1列右(列数=1)のセルを参照しているためです。

・2. データ範囲をずらして合計する

複数の値をまとめて扱うこともできます。
たとえば「A1から右に1列、下に2行分の範囲」を合計するなら:

=SUM(OFFSET(A1,1,1,2,1))

この場合、B2:B3の範囲が対象になります。
高さ(行数)を「2」に設定しているため、2行分が自動で指定されるのです。


✅ OFFSET関数の実務活用例

・1. グラフを自動更新する

毎月の売上データが増えるたびにグラフを更新するのは面倒ですよね。
OFFSET関数を使えば、グラフ範囲を自動的に調整できます。

手順:

  1. 「数式」タブ → 「名前の定義」をクリック
  2. 名前に「売上範囲」と入力
  3. 参照範囲を次のように指定:
    =OFFSET(Sheet1!$B$2,0,0,COUNTA(Sheet1!$B:$B)-1,1)
  4. グラフのデータ範囲に「=Sheet1!売上範囲」を指定

これで、新しい月のデータを追加しても、グラフが自動的に拡張されます。
Excelダッシュボードやレポートを自動化したい人には特に便利です。


・2. MATCH関数と組み合わせて動的に参照

OFFSETはMATCH関数と相性が抜群です。
「特定の文字を含む行を探して、その右の値を取得したい」場合に使えます。

=OFFSET(A1,MATCH("みかん",A2:A10,0),1)

この式は、「A列で“みかん”を探し、その1列右のセル(B列)」の値を返します。
商品管理や顧客データの検索など、実務で多用できるテクニックです。

参考:【Excel】IFNA関数で複数条件を処理する方法|VLOOKUP・INDEX/MATCH・IFとの組み合わせでExcel作業を効率化


・3. 期間別の自動集計

OFFSETを使えば、過去○日分や○件分だけを自動的に集計することもできます。

例:最新の5件分の売上を合計する場合

=SUM(OFFSET(A1,COUNTA(A:A)-5,0,5,1))

これは、A列の最後から5件分を範囲として自動合計する式です。
毎日の売上やアクセスデータを動的に分析したいときに重宝します。


✅ OFFSET関数の注意点と落とし穴

・1. 揮発性関数のため再計算が多い

OFFSETは「揮発性関数」と呼ばれ、ブック内で何かを変更するたびに再計算されます。
大量に使うとExcel全体の動作が重くなる可能性があるため、使用数は最小限に抑えるのがコツです。

・2. 範囲外を指定するとエラーになる

OFFSETで指定した行数や列数がシートの範囲外になると「#REF!」エラーが発生します。
特に「COUNTA」などで動的範囲を作るときは、条件を見直して安全な指定を心がけましょう。

・3. 読みやすさに注意

OFFSETを多用した数式は見た目が複雑になりやすいです。
チームで共有するファイルでは、名前の定義を活用して可読性を上げることをおすすめします。


✅ OFFSET関数と他の関数の違いを整理

関数名主な特徴向いている用途
OFFSET位置をずらして参照するグラフ更新、動的範囲設定
INDIRECT文字列でセルを参照するセル番地を可変にしたいとき
INDEX範囲内の行・列番号で参照安定した高速な参照

OFFSETは動的で便利ですが、パフォーマンス面ではINDEXの方が軽量です。
「参照位置が頻繁に変わる」場合はOFFSET、「固定範囲を高速参照したい」場合はINDEXを使い分けると良いでしょう。


✅ OFFSET関数の応用練習|初心者でも試せる例題

  1. A1セルに「基準」、B3セルに「100」と入力
  2. 任意のセルに次の式を入力
    =OFFSET(A1,2,1)
    → 結果は「100」になります。

さらに、
=OFFSET(A1,1,1,2,1)
とすると、2行分の範囲を取得し、SUM関数と組み合わせれば連続合計もできます。

OFFSETは慣れるまでは少し抽象的に感じますが、実際に動かしてみると仕組みがすぐに理解できます。


✅ まとめ:OFFSET関数をわかりやすく理解して実務に活かそう

  • OFFSET関数は「基準セルからのずれ」で参照先を指定する関数。
  • 構文:=OFFSET(参照, 行数, 列数, [高さ], [幅])
  • SUMやMATCH関数と組み合わせることで、範囲の自動化・集計・検索が可能。
  • グラフ範囲の自動更新やレポートの効率化に役立つ。
  • ただし、揮発性関数のため使いすぎは注意。

OFFSET関数を理解すれば、Excelの「動的なデータ管理」が一気にレベルアップします。
参照範囲を自動で変化させることで、更新の手間を減らし、正確でスピーディな分析が可能になるでしょう。

-Excel一覧, Excel操作・関数, OFFSET関数・範囲参照系, 関数の使い方