〇 ROW関数:Excelの表、並べ替えても連番が崩れないようにするには?
Q:フィルハンドルのドラッグで連番を振りました。でも、並べ替えると連番の並びが崩れます。並び順はそのままにしたいのですが、どうすればよいですか?
A:行番号を返すROW関数を使って連番を作ります。そうすれば並べ替えても連番の順は崩れません。
ROW関数は、引数を省略することで、その数式を入力したセルの行番号を返す関数です。この特徴を生かすと、ROW関数で並びが崩れない連番を作れます。

指定したセルの行番号を返す。
範囲 省略可能。セルやセルの範囲を指定する。省略するとその数式が入力されているセルの行番号を返す。
それでは、ROW関数で連番を作りたいと思いますが、その前に、フィルハンドルのドラッグで作った連番が崩れる様子を確認しておきましょう。
下図のA2:A7が、フィルハンドルで作った連番です。A2に「1」と入力したあと、セルの右下にあるフィルハンドル・ボタンをA7までドラッグして、「オートフィルオプション」ボタンから「連続データ」を選ぶと連番を作れます。
この表を「単価」を基準に「降順」で並べ替えます。C1を選んで「ホーム」タブの「並べ替えとフィルター」ボタンから「降順」を選びます。
フィルハンドルで作る連番は便利ですが、このように場合によっては並びが崩れてしまうことがあります。この崩れを回避しましょう。元の表に戻って、A2:A7の値をクリアします。続いてA2を選択したら、
=ROW()-1
と入力して[Enter]キーを押します。「1」が返りました。
数式を入力したセルはA2です。よって引数を省略した「=ROW()」により、その行番号である「2」が返ります。さらにそこから「1」を引きますから、結果、「1」が返ります。では、A2の数式をA7までオートフィルしましょう。
このようにそれぞれの行番号より「1」だけ少ない値が返り、結果、これが連番になったわけです。では、「単価」を基準に「降順」で並べ替えます。
並べ替えを実行しても、「項目No.」の連番の並びはそのままです。はい、これで問題解決ですね。