2024年3月6日【ID:0】
【Excel】日付を用いた一意の番号を生成
以下の「管理No」の項目のように、日付を用いた一意の番号を数式のみで生成する方法について解説していきます。
このような番号は、請求書などの書類の管理番号として活用できます。
今回生成する管理番号は、以下のような法則があります。
YYYYMMDD-(今までに存在している同じ日付の数)
// YYYYMMDD:年4桁、月2桁、日2桁
まずは、「日付」の項目から「YYYYMMDD」の形式で日付を取り出す方法について解説していきます。
日付を好みの形式に変換して取り出すには、TEXT関数が便利です。
=TEXT(値, 表示形式)
// 値に指定した表示形式を適用して文字列として表示する
「YYYYMMDD」の形式を表示形式の書式記号で表現する場合は「yyyymmdd」になります。
実際に活用した例が以下になります。
=TEXT(C3,"yyyymmdd")
次は、先ほどの値に、今までに存在している同じ日付の数を追加していきます。
特定の値が入力されているセルの数を求めるには、COUNTIF関数が便利です。
=COUNTIF(範囲, 検索条件)
// 指定した範囲内で検索条件を満たすセルの数を表示する
実際に、今回の表に活用する場合は、範囲を自身のセルの行を含む、それよりも前の範囲として指定する必要があります。
数式のコピーのみで全体に入力する場合は、絶対参照と相対参照を意識する必要があります。
実際に、今までに存在している同じ日付の数を求めた例が以下になります。
=COUNTIF($C$3:C3,C3)
// 範囲の開始の位置に関しては、固定するため絶対参照にする
// この数式をセルB3に入力し、残りの範囲にコピーする
※数式の結果に「1900/1/1」などが表示される場合は、表示形式を「標準」に戻してください。
最後に、TEXT関数の内容とCOUNTIF関数の内容を組み合わせます。
2つの結果を結合するには、「&」を活用します。
=TEXT(C3,"yyyymmdd")&COUNTIF($C$3:C3,C3)
ただ、この状態ですと、数値が並んでいて若干見づらいため、日付と番号の間に「-」を加えます。
「-」を加える場合は、①「TEXT関数の表示形式にて加える」もしくは②「「-」を別で直接加える」という方法があります。
①
=TEXT(C3,"yyyymmdd-")&COUNTIF($C$3:C3,C3)
②
=TEXT(C3,"yyyymmdd")&"-"&COUNTIF($C$3:C3,C3)
ちなみに、TEXT関数の引数の「yyyymmdd」を「yymmdd」にすることで、以下のようにも表現できます。
=TEXT(C3,"yymmdd-")&COUNTIF($C$3:C3,C3)
一意の管理番号を割り当てる際に、今回のような数式が活用できるかと思います。