フィルターをかけた後に、連番を自動的に採番する方法 SUBTOTAL関数
フィルターをかけても番号がとびとびにならず、手入力しなくてもちゃんと連番が保たれる方法をご紹介します。

こんな表を作って、月ごとの請求をまとめたりすることがあります。

たとえば、10月度を指定してフィルターをかけると、

こんなふうに、請求書の連番がとびとびになってしまいます。かといって、その都度、手入力で連番を振るのは大変です。
そこで、B列にSUBTOTAL関数を入れることによって、フィルターをかけた後に連番が自動的に採番される
ようにしてみましょう。
式は次の通りです。
=SUBTOTAL(2, 個数を数える対象になる範囲)
最初の引数 2 はCOUNT すなわち、対象範囲のデータの個数を数えるという意味です。
二番目の引数個数を数える対象になる範囲 には、データの個数を数える範囲を指定します。
上の例では、A列の通し番号をその範囲に指定しています。
具体的に言うと、B2には次の式が入ります。
=SUBTOTAL(2, $A$2:$A:2)
この式の意味は、A2からA2に入ってるデータの個数を数えるということです。そうするとデータの個数は必ず1になります。
範囲の最終行数を示す「2」以外は絶対参照($)にしておいて下さい。他の行にこの式を貼り付ける際に影響します。
続いてB3に次の式をいれるとどうなるでしょうか。
=SUBTOTAL(2, $A$2:$A:3)
今度は、A2からA3に入ってるデータの個数を数えるということになるので、データの個数は必ず2になります。
これを行の数だけ繰り返し続けると、1から始まる連番が振られることに気づきます。

B5に入っている式を例にとると、A2から始まって、自分(B5) が存在する行(6)まで、A列に入っているデータの個数を数えるということになります。
フィルターによって除外され、表示されていない行はSUBTOTALの計算の対象外になる というところがポイントです。つまり、フィルター後に残された行の数だけ個数を数えるわけです。