構文
構文は以下の通りです。
解説
OFFSET関数は、基準セルから指定した実行数・列数だけ離れたセルや範囲を動的に取得できる便利な関数です。
引数 | 内容 |
基準セル | 開始地点となるセルを指定します。 |
行のオフセット | 基準セルから何行離れた割り当てを指定します。正の数値で下方向、負の数値で上方向へ移動します。 |
列のオフセット | 基準セルから何列離れた位置を指定します。正の数値で右方向、負の数値で左方向へ移動します。 |
高さ | オプションの引数で、返される範囲の高さ(行数)を指定します。省略した場合は 1 行が返されます。 |
幅 | オプションの引数で、返される範囲の幅(列数)を指定します。省略した場合は 1 列が返されます。 |
使用例
(例1)基本的な使用例
・基準セル: A1(セルA1がスタート地点になります)
・行のオフセット: 2(基準セルから2行下に移動)
・列のオフセット: 3(基準セルから3列右に移動)
この場合、A1から2行下に行くと「A3」、さらに3列右に移動すると「D3」になります。A1には「100」という値があり、D3には「200」という値があります。この関数を実行すると、D3の値「200」が返されます。単純に1つのセルを指定しますしたい場合に便利です。
(例2)高さと幅を指定する例
・基準セル: A1
・行のオフセット: 1(基準セルから1行下に移動 → B2)
・列のオフセット: 1(基準セルから1列右に移動 → B2)
・高さ: 2(2行分の範囲を取得 → B2から下に2行分)
・幅: 2(2列の範囲を取得 → B2から右に2列分)
この場合、B2を基準として、B2からC3までの2行×2列の範囲が返されます。
例えば、次のようなデータがあります。
100 | 110 | 120 | 130 |
200 | 210 | 220 | 230 |
300 | 310 | 320 | 330 |
400 | 410 | 420 | 430 |
A1に「100」、A2に「200」、B2に「210」、C2に「220」...というデータがある場合、このOFFSET(A1, 1, 1, 2, 2)は、セル範囲B2:C3である次の値を返します。
210 | 220 |
310 | 320 |
このように、範囲を指定してデータを動的に取得できるので、特定の部分データを抽出したい場合に便利です。グラフのデータ範囲を動的に設定する際にこの方法を使うことができます。
(例3)グラフに活用する例
例えば、次のようなデータがあります。
月 | 売上 |
1月 | 110 |
2月 | 120 |
3月 | 130 |
4月 | 140 |
5月 | 150 |
表示する範囲を毎月増やしていくには、OFFSET関数を使って範囲を動的に指定します。
・基準セル:B1(「売上」というヘッダーセル)
・行のオフセット: 1(B1から1行下、詰B2からスタート)
・列のオフセット: 0(そのままB列を指定)
・高さ: COUNTA(B:B)-1(B列のデータ数からヘッダー分を着た数)
・幅:1(1列のデータを取得)
これにより、B列のデータが自動的にカウントされ、売上データに基づいてグラフ範囲が動的に更新されます。
まとめ
OFFSET関数は、オプションで高さや幅を指定することで、複数セルの範囲を取得することも可能です。応用例として、データの一部を動的に参照したり、グラフのデータ範囲を自動更新する場合に利用されます。