Excel関数 逆引き集 | 文字列に連番付与 → TEXT+ROW

Excel
スポンサーリンク

概要

「USER-0001」「USER-0002」みたいに、
文字列にキレイな連番をくっつけたい場面、よくあります。

  • ID-0001ID-0100 を一気に作りたい
  • 商品_001 商品_002 のように、桁数そろえで番号を振りたい
  • 行番号をそのまま使ってもいいけど、途中行を挿入してもズレないようにしたい

こういうときの王道パターンが、
TEXT 関数で「0埋め」+ ROW 関数で「連番」
という組み合わせです。

ここでは、プログラミング初心者でも「型」として丸暗記しやすいように、
代表的なパターンを噛み砕いて説明していきます。


基本の考え方(ROWで番号、TEXTで桁そろえ)

ROW 関数で「行に紐づいた数」を取る

ROW 関数は「そのセルの行番号」を返します。

例えば、

A2 のセルに

=ROW()

と書くと、結果は「2」になります。
A10 なら「10」が返ります。

これをそのまま連番として使うのが基本です。

ただし、行番号そのままだと「2,3,4,5…」のように、
「スタートが1じゃない」「桁数がそろわない」などの問題が出てきます。

そこで次に、これを「整形」する役として TEXT が登場します。


TEXT で「0001」みたいに桁数をそろえる

TEXT 関数は、

=TEXT(値,"表示形式")

という形で使います。

例えば、行番号を4桁ゼロ埋めするなら、

=TEXT(ROW(A1),"0000")

A1 にこの式 → 0001
A2 にこの式 → 0002
A10 にこの式 → 0010

のように、「行番号 → 0で埋められた番号」に変換できます。

「連番(数字)」を
「桁数をそろえた文字列」にするのが TEXT の役割です。


パターン1:シンプルに「接頭辞+連番」を作る

USER-0001、USER-0002… のように作る

A2 に次の式を入れて、下にコピーするイメージで考えます。

="USER-" & TEXT(ROW(A1),"0000")

ポイントは 2つです。

  1. 連番部分:ROW(A1)
    A2 に式を書くと、ROW(A1) は 1 を返します(基準セルをずらすテクニック)。
  2. 桁そろえ:TEXT(ROW(A1),"0000")
    1 → 0001、2 → 0002 のような 4桁に。

これを A2 に入れて下へコピーすると、

A2:USER-0001
A3:USER-0002
A4:USER-0003

というように、自動で連番付きのIDを量産できます。


行の位置に関係なく「1から始める」書き方

さっきは ROW(A1) を使いましたが、

「どの行に置いても“1”から始めたい」

ときは、こう書くこともできます。

例えば、A2 から始めるとして、

="USER-" & TEXT(ROW(A2)-1,"0000")

A2:ROW(A2) は 2 → 2-1 = 1 → USER-0001
A3:ROW(A3) は 3 → 3-1 = 2 → USER-0002

という仕組みです。

「開始行が何行か」-「何を引くか」で、スタート番号をコントロールできます。


パターン2:任意のプレフィックス(接頭辞)+連番

接頭辞をセルから指定して柔軟に

例えば、

B1 に接頭辞(例:EMP-)を入れておき、
A列に ID を生成したいとします。

A2 に次のように書きます。

=$B$1 & TEXT(ROW(A1),"0000")

B1 に EMP- と入れておけば、

A2:EMP-0001
A3:EMP-0002

B1 を USER- に変えれば、

USER-0001、USER-0002… に即座に変わります。

接頭辞をセルで管理しておくと、

「途中で仕様が変わっても式をいじらずに済む」
というメリットがあります。


パターン3:文字列+シートの行番号を組み合わせる(行数が増減してもOK)

商品名+連番のラベルを作る

例えば、B2 に商品名、
C列に「商品名+連番」のラベルを作りたいとします。

B2:りんご
B3:みかん
B4:バナナ

C2 に次の式を書き、下にコピーします。

=B2 & "_" & TEXT(ROW(A1),"000")

C2:りんご_001
C3:みかん_002
C4:バナナ_003

ROW を使っているので、行を挿入・削除したときも、
その行に応じた連番が自動的に再計算されます。


パターン4:開始番号を好きな値からにする

1001 から始めて、1002,1003… にしたい

「1 からではなく、例えば 1001 からスタートしたい」という場合は、
ROW の値に “開始番号 − 1” を足すイメージです。

例えば、A2 から始めるとして、

="ID-" & TEXT(ROW(A1)+1000,"0000")

A2:ROW(A1) は 1 → 1+1000 = 1001 → ID-1001
A3:ROW(A2) は 2 → 2+1000 = 1002 → ID-1002

という形で、1001 スタートの連番を作れます。

「ROW(A1) に何を足すか/引くか」を調整することで、
開始番号を自由にコントロールできます。


パターン5:連番だけを作って、あとで文字列と結合する

TEXT+ROW の部分を「連番専用列」として持ち、
別列で文字列と結合するやり方もあります。

例えば、

A列:連番(0001,0002,…)だけ
B列:接頭辞(自由に変更)
C列:最終ID(接頭辞+連番)

という構成にしておけば、
連番の桁数だけを変えたり、接頭辞だけ変えたり、あとからいじりやすくなります。

A2 に

=TEXT(ROW(A1),"0000")

B2 に USER- を入れ、
C2 に

=B2 & A2

とすれば、

C2:USER-0001
C3:USER-0002

のように組み合わせて使えます。


問題1

A2 に式を書き、下にコピーして
USER-0001,USER-0002,USER-0003
のようなIDを作りたいです(4桁ゼロ埋め)。
TEXT+ROW を使った式を書いてください。

="USER-" & TEXT(ROW(A1),"0000")

問題2

開始行が A5 のとき、A5 に式を書いて下にコピーし、
EMP-0001,EMP-0002… と 1 から始まる連番を作りたいです。
ROW(A5) を使って補正する形で、TEXT+ROW の式を書いてください。

="EMP-" & TEXT(ROW(A5)-4,"0000")

※ A5 の行番号は 5 なので、5−4=1 からスタートします。


問題3

B1 に接頭辞(例:ORD-)が入っています。
A2 に式を書き、下にコピーして ORD-001,ORD-002…(3桁ゼロ埋め)の連番を作りたいです。
B1 を参照しつつ、TEXT+ROW を使った式を書いてください。

=$B$1 & TEXT(ROW(A1),"000")

問題4

A2 から連番を作りたいのですが、番号は「1001」から始めたいです。
形式は ID-1001,ID-1002… のように 4桁で表示します。
TEXT+ROW を使って、A2 に書く式を書いてください。

="ID-" & TEXT(ROW(A1)+1000,"0000")

問題5

B列に商品名があり、
C列に「商品名+アンダースコア+3桁連番」(例:りんご_001)を作りたいです。
B2 を商品名として、C2 に書く式を書いてください(3桁ゼロ埋めの連番は ROW を使ってください)。

=B2 & "_" & TEXT(ROW(A1),"000")

TEXT+ROW の“型”は、とてもシンプルです。

=TEXT(ROW(基準セル),"0000")     ' 行番号 → 0埋め文字列
="PREFIX-" & TEXT(ROW(基準),"0000")

ここに「どの行を基準にするか」「何桁にしたいか」「開始番号をいくつにするか」を足していくだけで、
かなり柔軟に「文字列+連番」を設計できるようになります。

Excel
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました