Excelで表を作る機会が多くあると思う。
表には必ず行番号が付与されるべきだが、
けっこう**ROW()**を使っている人を見かける。
もちろん、数字を手入力、あるいはオートフィルを使うよりは使い勝手がいいのだが、
=ROW()-2のように行番号の表示をしている場合、表の上に行挿入すると
=ROW()-3への書き直しが発生する。
ありがちなのが、印刷する際に表タイトルや余白設定のために
1行目あたりに行を挿入し、そのままROW()の調整をせずに
上長に書類を提出して、
「これ、なんで2番から始まってんの?」
「ちゃんと確認したの?」
と指摘を受けるケース。
たかが行番号の間違いだけでドキュメントの信頼性が下がるのはもったいない。
回答
=IF(OR(ISNUMBER(INDIRECT(ADDRESS(ROW()-1,COLUMN()))),ISBLANK(INDIRECT(ADDRESS(ROW()-1,COLUMN())))),MAX($A$1:INDIRECT(ADDRESS(ROW()-1,COLUMN())))+1,1)
自分の上のセルが番号または空白の場合は、$A$1から自分の上のセルまでの最大値に1加算する。
自分のセルがA1または、表として1行目の場合、「1」を表示する。
メリット
・表の上に行挿入した場合でも番号は変わらない。
・どこかの行をコピーして表内に挿入すると、番号がちゃんと順番になる。
・表に空白行を入力した場合でも、ちゃんと考慮してくれる。
・表を作成する際にテーブルを使っている場合、対象列の関数がすべて同じとなるため、エラー表記を無くせる。
(気になる人は気になるはず)
デメリット
・関数が長い