Excelの関数について第8回目です。
今回は、OFFSET関数というこれまた便利な関数についてです。OFFSET関数は他の関数と組み合わせることでとても強力な力を発揮してくれる関数ですので、知らないよという方は是非見てみてください。
OFFSET関数は基準セルから指定した行数、列数の分だけ移動した位置にあるセルの値を取り出す関数です。
それでは、OFFSET関数を見ていきましょう。
OFFSET関数
はじめにOFFSET関数の書式を見ていきましょう。
OFFSET関数の書式
基準
基準となるセルまたは範囲を指定します。
行数
基準のセルからどれだけの行(距離)をシフトするかを指定します。正の数を指定すると上方向に、負の数を指定すると下方向にシフトします。例えば、3を指定すると基準のセルから下の方向に3行シフトします。-3を指定すると基準のセルから上の方向に3行シフトします。基準に範囲を指定した場合、左上の隅のセルが基準となります。
列数
基準のセルからどれだけの列(距離)をシフトするかを指定します。正の数を指定すると右方向に、負の数を指定すると左方向にシフトします。例えば、3を指定すると基準のセルから右の方向に3列シフトします。-3を指定すると基準のセルから左の方向に3列シフトします。基準に範囲を指定した場合、左上の隅のセルが基準となります。
高さ
基準セルのシフト後の範囲の大きさ(高さ)を正の数で指定します。省略をすると基準で指定した範囲と同じ高さになります。
幅
基準セルのシフト後の範囲の大きさ(幅)を正の数で指定します。省略をすると基準で指定した範囲と同じ幅になります。
OFFSET関数の使用例
書式を読んでいただいても、イメージがわかないと思います。
ということで、いつもどおり、OFFSET関数の使用例を見てみましょう。
図1をご覧ください。数字が羅列された表があります。この表を使って、OFFSET関数を試してみましょう。
図1:OFFSET関数(例1)
例1)B3セルを基準として、下に3行、右に2列移動したセルの値を求める。
OFFSET関数の書式は次の通りでしたね。
基準はB3セルなので、B3になります。
行数は、下に3行なので3を入力して、列数は右に2列なので2を入力します。
高さと幅は移動後のセル範囲の大きさになりますが、今回は移動した後のセルの値を求めるので、それぞれ1を入力します。
以上をまとめると次のようになりますね。
結果はどうでしょうか。B3を基準として、下に3行、右に2列シフトしたD6セルの値である「3」が取り出せていることがわかります。
例2)B3セルを基準として、下に3行、右に2列移動したのち、移動後のセルを左上隅とする2×2の範囲の和を求める
図2:OFFSET関数(例2)
基準はB3セルなので、B3になります。
行数は、下に3行なので3を入力して、列数は右に2列なので2を入力します。
ここまでは、例1と同じですね。さて、今回は、移動後のセルを左上隅とする2×2の範囲の和を求めるので、高さと幅の引数をそれぞれ2とします。
つまり、OFFSET(B3,3,2,2,2)となります。この結果は、D6:E7という結果になります。D6:E7はD6を左上隅とする2×2の範囲ですね。
今回の問題は、D6を左上隅とする2×2の範囲の和ですから、最終的な式は次のようになります。
出力結果を確認すると「21」となり、確かにD6:E7の範囲の和(3+9+8+1=21)となっていることが確認できます。
ちなみに、下記の式は次のように考えるとわかりやすいとおもいます。
OFFSET(B3,3,2,2,2)はD6:E7なで、=SUM(OFFSET(B3,3,2,2,2))は、
=SUM(D6:E7)
ということになります。