オートフィルだと連番が崩れる

名簿などの表で、左端の列に連番を振ったり、横方向に連番を振ったりするときに「オートフィル」を使う場面は多いですが、行や列の入れ替えや削除を行った際に連番が崩れてしまった経験はありませんか?

そのようなときは、行番号を取得する「ROW」(ロウ)関数や、列番号を取得する「COLUMN」(カラム)関数を使用しましょう。行や列の入れ替えや削除を行っても、連番を保つことができます。

まずは、構文を見てみましょう。

ROW参照

引数[参照]に、行番号を求めたいセルを指定します。省略した場合は、ROW関数を入力したセルの行番号が表示されます。

COLUMN参照

引数[参照]に、列番号を求めたいセルを指定します。省略した場合は、COLUMN関数を入力したセルの列番号が表示されます。

ROW関数で連番を振る

ROW関数は、行番号を取得するので、表の左端の列に連番を振る際などに使用されます。

例えば、以下のような表で、顧客ごとに連番を振ってみましょう。

1ROW関数を入力する

わかりにくいROW関数とCOLUMN関数の使い道

店舗の来店回数が入力してある表。A列に連番を振ります。A1セルに「=ROW()-1+100」と入力しましょう。「-1」でタイトル行を除外し、「+100」で3桁の連番にします。

2連番が入力された

わかりにくいROW関数とCOLUMN関数の使い道

オートフィルを使ってROW関数をコピーします。

COLUMN関数とVLOOKUP関数を組み合わせる

COLUMN関数は、VLOOKUP関数と組み合わせて使用することも可能です。

通常のVLOOKUP関数では、列番号は数値で指定します。しかし、別のセルに数式をコピーするときは、列番号を修正しなくてはなりません。列番号をCOLUMN関数で指定することで、別のセルに数式をコピーしても列番号を修正する必要がなくなります

先ほどのExcelのセルI2にVLOOKUP関数を入力してみましょう。COLUMN関数と組み合わせた数式は以下のとおりです。

    =VLOOKUP($H$2,$A$2:$F$21,COLUMN(B1),FALSE)
    

上記の数式は、セルA2~セルF21の範囲の中から、セルH2の値([No]が111)と一致する名前を取得するという意味です。名前を取得したいので、列番号は「COLUMN(B1)」となります。

1VLOOKUP関数と入力する

わかりにくいROW関数とCOLUMN関数の使い道

セルI2に「=VLOOKUP($H$2,$A$2:$F$21,COLUMN(B1),FALSE)」と入力します。

2対応する値を取得できた

わかりにくいROW関数とCOLUMN関数の使い道

[No]に対応する値を取得できました。

3数式をコピーする

わかりにくいROW関数とCOLUMN関数の使い道

セルI2の数式をM2までコピーします。列番号をCOLUMN関数で指定しているため、性別やメールアドレスも正しい内容で表示されました。

HINTROW関数とCOLUMN関数の覚え方

ROW関数とCOLUMN関数のどちらを使用すれば良いか悩んだ際は、漢字の「行」「列」になぞらえてみましょう。スペルの高さが揃った「row」が行、「l」の飛び出している「column」が列と覚えることができます。

  

わかりにくいROW関数とCOLUMN関数の使い道