前回、「SUMPRODUCT関数の使い道」の中でOFFSET関数についてさらっと書いたので、今回はOFFSET関数の使い道と題してお届けしようと思います。
まず、含蓄あるこのツイートから・・・。
なんと示唆に富んだツイートでしょう(自分で言うなww
示唆に富んでるかどうかは置いとくとして、OFFSET関数はこのように言い表すことができます。
まずはOFFSET関数の基本的な使い方と、その使い道を見ていきましょう。
OFFSET関数の概要
OFFSET関数の挙動を図にするとこんな感じです。
参照セル(起点)から、縦に3つ横に2つ移動し、高さ4幅2の範囲を選択、その選択範囲を合計する、それがこの一連の数式の意味するところです。
まとめるとこうです。
以上がOFFSET関数の概要でした。
OFFSET関数が移動と範囲選択のための関数であることから、他の関数と組み合わせて使うことが多いです。
が、今回は単独で使ってみた例をお届けします。
この場合、上の図にもあるように範囲選択の引数は省略できるので、その点もあわせて見てください。
運賃計算にOFFSET関数を使ってみた例
例えば、どこからどこまでがいくら、みたいな料金表がある場合、OFFSET関数で出発駅・到着駅から料金を返すことができます。
前提条件
例えばこんな表があった場合、出発駅と到着駅を選ぶと運賃を返す、というツールを作ってみます。
今回の場合、梅田=1、淀屋橋=2と駅名に番号を付番しています。
これを起点からの移動数と定義し、参照セル(起点)はA7とします。
では次にOFFSET関数を使った運賃の算出方法を見てみましょう。
出発駅・到着駅情報から運賃を返す方法
インプット情報(出発駅・到着駅)と料金を返すセルの関係はこのとおりです。
例えば淀屋橋から本町の料金を求める場合は、出発駅2、到着駅3とします。
そして出発駅番号・到着駅番号を参照して、料金表から料金を参照するようにOFFSET関数を組むとこのような数式になります。
今回のケースでは特定の単独セルを参照するため範囲選択の引数は省略できます。
ちなみに、厳密にOFFSET関数を書くと、「=OFFSET(A7,B1,B2,1,1)」 となり、範囲選択の「1,1」が省略されています。
これを料金表と当てはめるとこうなります。
このようにOFFSET関数を使って、料金表から運賃を算定することができました。
まとめ
ここまでで、OFFSET関数の使い方【簡単編】でした。
今回はOFFSET関数単独の使い道しか紹介しませんでしたが、次の記事ではちょっとだけ応用編「ほかの関数と組み合わせると何ができるのか」というテーマでお届けします。
最後までお読み頂き、ありがとうございました。