Excel。区分と区分ごとの通し番号で構成されたコードを作りたい。
<COUNTIF関数とTEXT関数>
今回は、件数が多くなかったので、気にせずに管理していた表があるけど、
いよいよ、件数が多くなり、
ちょうどいい機会なので、
区分ごとに通し番号を振り直して管理したい表にしようと思ったのですが、
なんか面倒な上、うまくいかないので、どうにか、
いい方法はありませんか?というリクエストでした。
とりあえず、次の表を見てもらいましょう。
C列の新コードというのを、区分と、
その区分の通し番号をハイフンで結合したコードなのですが、面倒というのは、
ハイフン以降が0(ゼロ)がついている通し番号という点ですね。
手で入力するとなるとしたら、本当に面倒ですよね。
そこで、今回はまず、区分ごとの通し番号を作るところからやってみましょう。
数式が煩雑になりそうですので、とりあえず、E列を作業列として、算出してみましょう。
今回のように、そのデータが、範囲の中でいくつあるのか?というように数える場合には、COUNTIF関数がオススメなんですね。
それでは、E3にCOUNTIF関数ダイアログボックスを表示しましょう。
範囲には、$B$3:B3
範囲の始点を絶対参照にして、固定させておいて、
その始点からの範囲内ということが表現できます。
SUM関数をつかって累計を算出する時と同じ方法ですね。
検索条件には、B3
では、OKボタンをクリックして、オートフィルで数式をコピーします。
ちなみみ、E3の数式は、
=COUNTIF($B$3:B3,B3)
これで、区分ごとの通し番号を作成することが出来ました。
念のため確認してみましょう。
D3の佐々木さんの区分はTHKで、次にTHKで登場するのが、
D6の渋谷さんでE6に算出されている数値は2になっていますね。
その後、品川さん・田町さんとTHKに所属してそれぞれ数値が増加していっていますね。
あとは、これを結合させるのですが、単に=B3&”-“&E3と&を使って結合してしまうと、
THK-1というように0(ゼロ)がないわけです。
THK-001としなければいけませんので、0(ゼロ)を追加入力する必要がありますし、
当然通し番号が10のように二桁になったら、0は一つになるようにしなければいけません。
そこで、結合するE列にTEXT関数を使って、0(ゼロ)が表示されるようにしてあげます。
つまり、TEXT(E3,"000")と数式を作成してあげれば、桁数に左右されることなく、
0(ゼロ)付きの通し番号を作ることが出来ます。
では、C3をクリックして、次の数式を作っていくことにしましょう。
=B3&"-"&TEXT(E3,"000")
あとは、オートフィルで数式をコピーしてあげれば、完成ですね。頭から、0(ゼロ)でスタートするならば、
表示形式のユーザー定義を使えばいいのですが、
今回のように、データの途中に0(ゼロ)がある場合には、
TEXT関数を使って結合させるということを知っているといいかもしれませんね。