1行目を含む列内のすべてのセルに同じ数式を指定して連番を振る方法を紹介します。並べ替えをしても、新たな並びで連番が振り直されるようになります。
N関数を併用した連番
「上のセル+1」の数式にN
関数を加えるだけで、1行目(上のセルが見出し文字列)にも対応できるようになります。
=N(INDIRECT("R[-1]C",FALSE))+1
または=N(OFFSET(B3, -1, 0))+1
ここでのN
関数は、値が数値の場合はその数値を返し、文字列の場合は 0
を返します。1行目の上に見出しがあってもなくても、1行目は「0+1
」になる仕組みです。
INDIRECT("R[-1]C",FALSE)
については、以下のトピックを参照してください。
本来のN
関数はどの値の型でも数値にして返す関数で、他システムとの互換用に用意されたものです。
数値 | そのままの数値 |
日付・時刻 | シリアル値 |
TRUE/FALSE | TRUE は1 、 FALSE は0 |
エラー値([#N/A]など) | エラーコード値 |
その他(文字列など) | 0 |
ROW 関数を使った連番
行番号から割り出す方法です。自セルの行番号から見出しの行番号と差から求められます。
例1 : B2が見出しセルでB3以降に連番を振る場合
=ROW()-ROW(B$2)
例2 : テーブル内の列に連番を振る場合
=ROW()-ROW(テーブル1[#見出し])
N
関数を使う方法より記述をシンプルにできますが、この方法は汎用性が完全ではないので使い方に注意してください。
例1の場合、絶対参照を使用するため、見出し行の行番号が変わらないことが前提となります。
例2の場合、テーブルの見出しが表示されていることが前提となります。非表示にすると参照エラーになり、再表示すればエラーは解消されます。