Excelのワークシート関数・OFFSETの第4引数・第5引数を使うと、合計範囲を可変にできることをご紹介しました。
この記事の中で、VBA(Visual Basic for Applications)の、Range.Offset的な機能とRange.Resize的な機能が混在していることが、OFFSET関数を難しくしている要因であることに言及しました。
OFFSET関数を難しくする要因について補足すると、第4・第5引数を使う、Range.Resize的な機能を、単独で確認し辛いことも上げられます。
ExcelのOFFSET関数は第4・第5引数の動きを確認し辛い
例えばA1:A5セルに、
あ
い
う
え
お
というデータが入力されているときに、C1セルに
=OFFSET(A1, , , 3, 1)
という数式を入力すると、基準セル「A1」から、「3」行、「1」列にサイズを変更したセルを参照することになります。
このとき、A1:A3セルに入力されている「あ」「い」「う」という文字列が簡単に確認できると、OFFSET関数の第4・第5引数の役割ついて理解しやすくなるはずなのですが、残念ながらそうではありません。
一つのセルに数式を入れただけでは、上図のように基準セルと同じ値しか表示されません。
これは、OFFSET関数の結果が配列の形で返されているためです。
実際には「あ, い, う」が取得できているにも関わらず、セルが一つしか選択されていないために、配列の先頭の値「あ」だけが表示された状態になっているのです。
配列が返される関数を確認するには配列数式にする必要がある
上記の例で「あ, い, う」という配列が返されていることを確認するには、C1:C3セルを選択した状態で「=OFFSET(A1, , , 3, 1)」という数式を入力して、
確定するときに[Enter]キーではなく、[Ctrl]キー+[Shift]キー+[Enter]キーを押す必要があります。そうすると下図のような形で、
A1セルを基準にした3行1列の値が返されていることを確認できます。
ですが、第4・第5引数に指定する数値と同じ行数・列数を事前に選択しておいてから、数式を入力して、確定を[Ctrl]+[Shift]+[Enter]で行うというのは、はっきり言って面倒です。
GoogleスプレッドシートではOFFSET関数の第4・第5引数の役割を簡単に確認できる
これに対してGoogleスプレッドシートのほうは、簡単にOFFSET関数の第4・第5引数の役割を確認できます。
C1セルに「=OFFSET(A1, , , 3, 1)」と入力して[Enter]キーを押すだけです。
この極めて普通の操作で、C2セルに「い」C3セルに「う」が表示されます。
例えば、OFFSET関数の第4引数を変更して、C1セルに入力する数式を「=OFFSET(A1, , , 4, 1)」にしてやれば、C4セルには「え」が表示されます。
Excelで同じことをしようと思った場合、事前にC1:C4セルを選択しておいてから、C1セルに「=OFFSET(A1, , , 4, 1)」と入力して、[Ctrl]キー+[Shift]キー+[Enter]キーで確定しなければなりません。
OFFSET関数の第4・第5引数の役割を確認するには、GoogleスプレッドシートのほうがExcelよりも、はるかにわかりやすいと感じます。
配列を返すワークシート関数の動きはGoogleスプレッドシートのほうが確認しやすい
この記事ではOFFSET関数の第4・第5引数について書きましたが、OFFSET以外でも配列の形で結果を返す関数の場合は、GoogleスプレッドシートのほうがExcelよりも動きを確認しやすくなっています。
実際にはExcelを利用するのであっても、数式の意味をしっかりと理解するためにGoogleスプレッッドシートを使うことは、とても有効に思えます。
Home » Googleスプレッドシートの使い方 » OFFSET関数の第4・第5引数はGoogleスプレッッドシートのほうがExcelよりも確認しやすい