Excel関数 逆引き集 | 重複しないID生成 → TEXT

Excel
スポンサーリンク

概要

「一度使ったIDは二度とかぶらせたくない」
「USER-0001, USER-0002… のように、表の行ごとに“重複しないID”を自動で振りたい」
「日付+連番で、毎回ユニークな管理番号を作りたい」

こういうときに Excel だけでできる、シンプルな “重複しないID生成”の定番パターン
TEXT 関数 + 行番号(ROW)や件数カウントの組み合わせです。

ここでは、

  • 一番カンタンな「行番号ベース」の方法
  • 行の挿入・削除にも強い「件数カウントベース」
  • 日付+連番で“ほぼユニーク”なIDを作る方法

を、初心者向けにかみ砕いて解説します。


基本の考え方(IDは「文字列」として設計する)

IDは、Excelから見れば 「ただの文字列」 です。

たとえば、

USER-0001
EMP-20260105-0003

といった見た目のIDは、実体としては

「決めたルールで組み立てた文字列」

にすぎません。

なので、

接頭辞(固定の文字)

日付や分類コード(意味のある情報)

重複しないための“通し番号”

という 3 要素をどう組み合わせるか、という発想にするとスッキリします。

ここで TEXT 関数は、

「通し番号を 0001 のように桁そろえする」
「日付を 20260105 などの形に整える」

“見た目整形係”として使います。


パターン1:行番号ベースのシンプルなユニークID

行ごとに必ず違うIDを振る(一番簡単な方法)

同じシート内で、「1行に1件のレコード」 という前提なら、
そのシートの行番号は必ずユニークです。

行番号をそのまま、桁そろえした「通し番号」として使う方法が一番シンプルです。

A2 に次の式を書いて下へコピーするとします。

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

A2:ROW(A1) は 1 → ID-0001
A3:ROW(A2) は 2 → ID-0002
A4:ROW(A3) は 3 → ID-0003

という具合に、このシート上では 二度と同じ値にならない ID が自動で振られます。

  • “ID-” 部分は接頭辞(好きに変更可能)
  • TEXT(ROW(A1),”0000″) は「行番号 → 4桁ゼロ埋め」の通し番号

として働きます。

この方法のポイントは「行番号が変わらない限り重複しない」こと。
同じ行に別レコードを上書きしない限り、IDの重複は起きません。


パターン2:何行目からでも“1番”から始めるユニークID

途中の行から始めたいときの補正

たとえば、ヘッダーがあって データは 5 行目から始まる とします。

5行目を「0001」、6行目を「0002」… のようにしたいなら、
ROW から“開始行-1”を引くのが定番です。

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

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

A5:ROW(A5)=5 → 5-4 = 1 → ID-0001
A6:ROW(A6)=6 → 6-4 = 2 → ID-0002

このように、「何行目からでも 1 番スタート」が実現できます。

シート内で「行+補正」の組み合わせは一意なので、やはり重複しません。


パターン3:日付+連番で“ほぼユニーク”なIDを作る

「20260105-0001」のような日付付きID

同じシート内だけでなく、
「日をまたいでも絶対にかぶりにくいID」が欲しいとき、
日付+その日の通し番号 がよく使われます。

たとえば、

2026年1月5日に登録した1件目 → 20260105-0001
2026年1月5日の2件目 → 20260105-0002

といったIDです。

シンプルな例として、「行番号を通し番号として使う」パターンだと、A2 にこう書けます。

=TEXT(TODAY(),"yyyymmdd") & "-" & TEXT(ROW(A1),"0000")

意味は、

  • TEXT(TODAY(),”yyyymmdd”)
    → 今日の日付を 20260105 のように 8 桁に整形
  • TEXT(ROW(A1),”0000″)
    → 行番号を 4 桁ゼロ埋め

これを足して、

20260105-0001
20260105-0002

という ID になります。

TODAY() の部分を「登録日が入ったセル」に変えれば、
行ごとに日付+通し番号 の組み合わせで、ほぼユニークなIDを作れます。

(※「同じ日・同じ行に別レコードを上書きしない限り」は重複しません)


パターン4:件数カウントベースの連番(途中に空白行があってもOK)

COUNTA で「今までの件数+1」を使う

Row ベースだと、「途中にタイトル行を入れた」「空白行がある」などで、
必ずしも「行番号 = 通し番号」にならないことがあります。

そういうときは、「同じ列で データが入っている件数+1」を通し番号にするパターンが便利です。

例えば、A列にIDを入れるとして、
A2 に次の式を書きます。

="ID-" & TEXT(COUNTA($A$1:A1)+1,"0000")

ここがポイントです。

  • COUNTA($A$1:A1)
    → 自分の1つ上までの範囲に「何件データが入っているか」を数える
  • +1
    → 「次の番号」にする
  • TEXT( … ,”0000″)
    → 4桁ゼロ埋め

A2 なら、$A$1:A1 にまだ何もない → COUNTA = 0 → +1 で 1 → ID-0001
A3 なら、$A$1:A2 に1件ある → COUNTA = 1 → +1 で 2 → ID-0002

途中に空白行を入れても、
ID が入っている行数を数えているだけなので、
「入力済み件数+1」から ID を生成できます。

これもまた、「同じ列内で二度と同じ番号にならない」という意味で“重複しない”IDです。


パターン5:フォーマットだけ TEXT に任せる“ID生成の型”

ここまでのパターンの共通点は、

ユニークさの元ネタ(行番号・件数・日付)
→ これは ROW や COUNTA、TODAY などが担当

見た目の整形(0001・20260105)
→ TEXT が担当

という役割分担になっていることです。

TEXT を使う“型”だけまとめると、次のようになります。

数値 → 4桁 0 埋め

=TEXT(数値,"0000")

日付 → yyyymmdd 形式

=TEXT(日付セル,"yyyymmdd")

この 2 パターンさえ押さえておけば、

接頭辞 & TEXT(日付,”yyyymmdd”) & “-” & TEXT(通し番号,”0000″)

のように組み立てるだけで、
かなり実用的な「重複しないID」のフォーマットを、自在に設計できるようになります。


問題1

A2 に式を書き、下にコピーして
ID-0001,ID-0002,ID-0003
のようなユニークIDを作りたいです。

TEXT と ROW を使い、A2 に書く式を書いてください。
(4桁ゼロ埋め、接頭辞は ID- とします)

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

問題2

データは 5 行目から始まります。
A5 に式を書き、下へコピーして、
ID-0001 から始まる連番IDを作りたいです。

ROW(A5) を基準に、行番号を補正して 1 から始めるようにした TEXT+ROW の式を書いてください。

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

問題3

A列にIDを入れたいです。
A2 に式を書き、下へコピーすると、
A列の「これまでに入力されている件数+1」を 4桁ゼロ埋めした ID
ID-0001,ID-0002…)が振られるようにしたいです。

COUNTA と TEXT を使った式を書いてください。
(カウント範囲は $A$1:A1 とし、接頭辞は ID- とします)

="ID-" & TEXT(COUNTA($A$1:A1)+1,"0000")

問題4

B列に「登録日」が日付で入っています(例:2026/1/5)。
C列に「日付+4桁連番」のIDを作りたいです。

C2 に式を書き、下へコピーすると、
20260105-0001,20260105-0002… のようなIDになるようにしてください。

日付は TEXT(B2,”yyyymmdd”)、連番は ROW(A1) を使うものとします。

=TEXT(B2,"yyyymmdd") & "-" & TEXT(ROW(A1),"0000")

問題5

A列に“すでに存在するID”が入っており、
B列に「新規の行にだけ新しいID」を振りたいです。

B2 に式を書き、下へコピーすると、
A列の上からの件数+1 を 4桁ゼロ埋めした NEW-0001,NEW-0002… が入るようにしたいです。
(ID の元ネタは COUNTA、整形は TEXT を使い、接頭辞は NEW- とします)

="NEW-" & TEXT(COUNTA($A$1:A1)+1,"0000")

重複しないID生成のキモは、

「ユニークな“元ネタ”(行番号・件数・日付+通し)を決める」

「その数字を TEXT で“見た目のルール通り”に整形する」

この 2 段階です。

TEXT の型さえつかめば、
あとは「何を ID の元ネタにするか」を決めるだけで、
実務で使える“かぶらないID”を Excel だけで量産できるようになります。

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