2/11/2019

Excel。日付+連番の管理番号を作りたいけど、注意が必要です。【Serial number】

Excel。日付+連番の管理番号を作りたいけど、注意が必要です。

<TEXT関数&COUNTIF関数>

日付+連番という形で管理番号を作る表があります。

A列の管理番号を作りたいのですが、ちょっと注意しないと、難しく考えてしまう恐れがあります。

例えば、日付から月を抽出するならば、MONTH関数。

日を抽出するならば、DAY関数を使ってと考えると思います。
確かに、これらの関数を使うのもいいのですが、数式が煩雑になりがちです。

考え方として、日付のところは、0付数値の年月が抽出できれば、いいわけですよね。

MONTH関数などをつかっても、結局0付数値にすることができませんので、さらに+αをしないといけません。

そこで、0付数値で年月を抽出場合には、TEXT関数を使うといいわけですね。

TEXT関数は、表示形式を指定したい形にすることができる関数ですね。

なので、今回は、TEXT関数とCOUNTIF関数だけを使って、日付連番の管理番号をつくっていきます。

一発で数式を作れるのですが、説明を兼ねて、まずは、E列以降を使って確認していきましょう。

E2をクリックして、TEXT関数ダイアログボックスを表示しましょう。

値には、B2。
表示形式を”mmdd”。

これで月日のデータを抽出することができます。
MONTH関数とか使うよりも簡単でわかりやすいですね。

しかも、”0”をつけた形で対応しています。

それでは、OKボタンをクリックして、オートフィルで数式をコピーしましょう。

E2の数式は、
=TEXT(B2,"mmdd")
となっていますね。

【連番はCOUNTIF関数】

同じ日の場合は、01~という連番を設定したいわけですね。
日付が変わるまで連番を設定する場合には、COUNTIF関数を使っていきます。

F2をクリックして、COUNTIF関数ダイアログボックを表示しましょう。

範囲には、$B$2:B2。

起点となるB2を絶対参照にしておいて、オートフィルで数式をコピーすると、起点のB2からの範囲が自動的に延長されて、その範囲内の対象データを数える動きをします。

検索条件は、B2。
OKボタンをクリックして、オートフィルで数式をコピーしましょう。

F2の数式は、
=COUNTIF($B$2:B2,B2)

あとは、0付数値に変える必要がありますので、TEXT関数を使って、数式を修正していきます。

=TEXT(COUNTIF($B$2:B2,B2),"00")
こうすることで、0付数値に変えることができましたね。

E列とF列で作成した数式を結合した形の数式をA列に作ればいいわけですね。

A2の数式は、
=TEXT(B2,"mmdd")&TEXT(COUNTIF($B$2:B2,B2),"00")
と設定してあげることで、日付+連番の管理番号を作ることができましたね。

TEXT関数は意外と使い勝手がいい関数なので、表示形式を使えればと思える場合には、TEXT関数を使うことで、比較的容易に解決できることもありますので、覚えておくといい関数の一つですね。