リストから最終位置データ位置を取得したい場合があります。
たとえば、データを入力規則のリストとして利用する場合、
リストの末尾に空白行があると、リストが無駄に長くなり、
データが少ないと
空白行が目立つことになります。
かといって、手動で最少範囲を指定すると、追加や削除時の
メンテナンスが大変です。
リストデータが上に詰まっている場合、これは処理が簡単。
COUNTA関数でデータの数を調べ、OFFSET関数で最少の行(データ個数)を指定するだけで済みます。
サンプル:
数式による名前の動的定義
ところが、データリストに空白行がある場合は少々面倒。
VBAを使ってプログラムを作成する場合は、リストの末尾から空白で無い行を検索していく方法で簡単に求められますが、
数式だけで実現しようとすると、工夫が要ります。
ここでは、下図のように、空白で無い最終データの位置に合わせたリストを作成します。
入力規則では配列数式は使用できないと思っていたら、すんなり使用できました。
しかも、
CTRL+SHIFT+ENTERを
押さなくでも自動で認識するようです。
(前後の
{ } は表示されない。)
セル上で
=MAX(IF(LIST="",0,ROW(LIST)-CELL("row",LIST)+1))
を単純に計算すると、1が返る(配列数式では11)ので、
たしかに、入力規則の中では配列数式として認識されているようです。
どのようにして認識するのか不明ですが・・