Home » Excel(エクセル)の関数・数式の使い方 » 検索・行列 » OFFSET関数を使って合計範囲を可変に

OFFSET関数を使って合計範囲を可変に

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

文字列をセル参照にしてくれるINDIRECT関数とSUM関数を組み合わせた計算式で、C1セルに入力された行までの合計を計算できることをご紹介しました。

同じようなことはOFFSET関数でも可能です。

OFFSET関数を使って合計範囲を可変に

[スポンサードリンク]

OFFSETはVBAのRange.OffsetとRange.Resizeが組み合わさったような関数

OFFSET関数は、便利ですが難易度もちょっと高い、ワークシート関数です。

なぜ難易度が高いかというと、二つの機能が混在した関数だからです。

Excel VBAの、Range.OffsetプロパティとRange.Resizeプロパティを理解できている方なら、OFFSET関数の二つの機能を理解しやすいはずです。

RangeオブジェクトのOffsetプロパティに該当する機能を、OFFSET関数の第2・第3引数が担い、

OFFSET関数を使って合計範囲を可変に

RangeオブジェクトのResizeプロパティに該当する機能を、OFFSET関数の第4・第5引数が担っています。

OFFSET関数を使って合計範囲を可変に

OFFSET関数を使って合計範囲を可変にする数式のサンプル

そんなOFFSET関数の、Range.Resizeプロパティ的な機能を使うと、INDIRECT関数で行ったような、SUM関数で合計する範囲を可変にすることができます。
▼操作概要:合計する行数をセル参照で指定する
※A1セルから、C1セルで指定された行までの合計をD1セルに計算する例
D1セルに
  =SUM(OFFSET(A1, , , C1, 1))
という数式を入力する

上記のような数式を作成すると、A1セルから、C1セルに入力された行までの合計をD1セルに計算できます。

OFFSET関数を使って合計範囲を可変に

C1セルに、「10」を入力したときはA1:A10セルの合計が、「5」を入力したときはA1:A5セルの合計がD1セルに計算されます。

OFFSET関数の第4・5引数

OFFSET関数の、第4引数と第5引数を使うと、第1引数に指定されたセルを基準にした、行数・列数のセル参照が取得できます。

例えば、
  =OFFSET(A1, , , 10, 1)
という数式は、A1セルを基準にして、第4セルに指定された「10」行・第5セルに指定された「1」列の参照となるので、A1:A10セルへの参照になります。

例えば、
  =OFFSET(A1, , , 5, 1)
という数式は、A1セルを基準にして、第4セルに指定された「5」行・第5セルに指定された「1」列の参照となるので、A1:A5セルへの参照になります。

このOFFSET関数の第4セルをC1セルへの参照にしたのが、上記の数式、
  =SUM(OFFSET(A1, , , C1, 1))
のSUM関数に指定している引数、
  OFFSET(A1, , , C1, 1)
です。

最終更新日時:2018-11-11 04:13

[スポンサードリンク]

Home » Excel(エクセル)の関数・数式の使い方 » 検索・行列 » OFFSET関数を使って合計範囲を可変に

「検索・行列」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.