一覧表に「連番」を表示したい。

細かい一覧表では「連番」は必要不可欠です。
例えば、会議の資料として配付するようなことを想像して下さい。 配布された一覧表(印刷物)の「ある行」の内容が話題になった時に、参加者に「どの行」かを伝えるのに、 「ページ番号」「連番」があればどの参加者にも一目瞭然で、おろおろと探し回るようなことも発生しないはずです。
画面上であれば行列番号がありますが、印刷した場合にはこのような配慮が必要です。行列番号を印刷させることもできますが、見出し行にも番号が振られるので見にくくなってしまいます。
実現させるには「計算式」も勉強してもらいますが、覚える関数も1つか2つだけです。書き方もワンパターンなので、これを機に勉強してみて下さい。
では、どうやって「連番」を登録(入力)しますか?

1行ずつ、手入力しますか?


少ない行数なら、これでも良いでしょう。でも大きな表だったら大変です。入力間違いも起きるでしょう。

「オートフィル」の機能もよく知られています。


最初の数行を入力したら、その範囲(ここでは「1」から「3」)を選択し直し、セルの右下にマウスカーソルを持っていくと、カーソル形状が「+」に変わります。 この状態で一番下の行までドラッグ(マウスの左ボタンを押さえたまま移動させる)します。

必要な最後の行までドラッグさせて、左ボタンを離すと、


一連番号が自動入力できます。
ここまでは、初心者でも皆さんが行なっていることだと思います。

でも、固定値の「連番」は、行の挿入/削除に対応できません。

作ったまま以後に一切変更がない一覧表なら、上記の方法(固定値)の「連番」でも良いのですが、


このように行の挿入や削除を行なうと、「連番」は以前の値のままなのでズレてしまいます。

ここで計算式を応用すると、ズレない「連番」を作ることができます。


ここで使っている「ROW関数」は、実際の絶対行番号を取得する関数なので、行挿入/削除があっても自動的にシフトします。 この「ROW関数」で得た値から見出しの行数を差し引けば、ちょうど「連番」になります。
あとは、この計算式を入力したセルを最終行までコピーさせます。

このように行の挿入や削除を行なっても、


以降の行番号はズレない値に変異するので問題ないわけです。

もっと欲張って、オートフィルタで抽出しても「連番」を維持させてみます。

「基本操作」のペ-ジですが、もうちょっと欲張ってみましょう。


まず、見出し部分を選択してオートフィルタを設置させます。

このオートフィルタを操作して絞り込み表示させます。


ここでは、小分類の「分類B」を抽出させています。

これが抽出した結果です。


「連番」は固定値であっても、この上の「ROW関数」の方法でも、全ての行が表示されている時の「連番」のままなので、 抽出結果の表示状態では番号が飛んでしまいます。

では、ここで非表示行を対象としない集計関数であるSUBTOTAL関数」を利用してみます。


「基本操作」のペ-ジなので、難しい話は避けますが、これは「オートフィルタで抽出された分だけの合計」で説明しているSUBTOTAL関数」の応用になります。 ここでの要は、「2行目から現在行までの表示行の行数を求める」ということです。
関数の右のカッコ内の引数のうち、最初の引数は「区分」であり「3」は「入力がある個数」という指定になります。この他に値によって「合計」「平均」「最大値」「最小値」などが指定できる関数です。 この関数を「連番」として機能させるために必要なことは、算出対象が「全て入力されている列」であることです。途中に「抜け行」がある列を指定すると正しい「連番」にはなりません。

もうひとつ、式の参照(計算)範囲の行の指定方法に注意が必要です。


参照(計算)範囲は、明細の先頭行(ここでは2行目)から式を入力する行までです。 この式を最終行までコピーさせるので、コピー時に式の中のセル参照がズレることを考慮する必要があります。 つまり、明細の先頭行(ここでは2行目)は「絶対参照」(「$」をつける)、式を入力する行は「相対参照」(「$」をつけない)とするのです。
こうすればコピーしても明細の先頭行(ここでは2行目)の方はズレないので問題ありません。

「計算式」のページでは、R1C1参照形式」の利用を勧めています。


このR1C1参照形式」ではコピーしても式が変異しないという特徴があります。 どの行を見ても式が変わりないことが判ると思います。

では結果を見ましょう。この式は明細先頭行から式のある自身の行までの表示行の値の個数をカウントします。


この方法により、このようにオートフィルタで条件抽出しても、「連番」が維持されます。