=Offset(C2,0,0,8,1)



このように入力すると、C2セルから0行0列移動した8行1列が範囲となります。

つまり、C2セルからC9セルを範囲指定することになります。

そうです、Offsetとは範囲を指定するための関数なのです!







それでは、C10セルも対象とする場合は、どうするのでしょうか。8を9にすれば範囲は広がります。でも、範囲を変える度に、指定を変えなけらばなりません。



そこで、8のところを COUNTA(C2:C15)とするわけです。そうすると、C2からC15に入力されたセルの数を計算してくれます。その数字が、8に置き換わるわけです。



そして、リスト入力を以下のように指定します。







そうするとリスト入力に表示される項目が、いつも過不足なく表示されるようになります。







COUNTA(C2:C15)の部分を

COUNTA($C:$C)―1のようにすると、

列全体を数えるようになるので、

リスト項目がいくら増えても対応できるようになります。

(2009/1/13追記)





Offset関数は、Pibotテーブルのデータエリア範囲指定にも非常に有効な関数です。



僕は、Vlookup,Pibotテーブルとならんで、Offsetはエクセルの秀逸機能の一つだと思っています。