Excel。分類ごとに連番を簡単に設定するにはどうしたらいいの
<TEXT+COUNTIF関数>
連番を設定したい時には、オートフィルの連続データをつかうことで、簡単に連番を振ることができます。
ただ、次のように、分類別の連番を設定するには、どのようにしたら、簡単に設定することができるのでしょうか?
やりたいことは、B列の地域コードを頭文字としたD列の新コードを作りたいわけです。
新コードは、地域コードごとに連番を設定しています。
地域コードごとにオートフィルターなどで抽出して、オートフィルターをつかい作成するという方法も悪くありませんが、地域コードのような抽出したい件数が多い場合は、単純作業の繰り返しが発生し、面倒な処理になってしまいます。
まして、Excel VBAでプログラム文をつくるような内容でもありません。
考え方として、「地域コードの中で、その地域コードは何回目の登場なのか」を算出することができれば、あとは、頭文字を表示させればいいわけです。
このような場合、登場するのが「COUNTIF関数」です。
まずは、COUNTIF関数をつかって、何回目の登場かを算出します。
E2に設定した数式は、
=COUNTIF($B$2:B2,B2)
最初の引数を、「$B$2:B2」と、始点を絶対参照にします。
終点を相対参照にすることで、オートフィルで数式をコピーすると、自動的に範囲選択を拡張することができます。
累計を算出する方法を応用した形ですね。
こうすることで、そこまでの範囲で、検索条件の「地域コード」が何回登場したのかを算出することができます。
あとは、文字結合の「&(アンパサンド)」とTEXT関数を組み合わせれば、完成ですね。
今回は、説明のためにE列に一度算出した値をしようしていますが、次のように数式をD2に設定することで、複数に分けず、一発で算出することもできます。
=B2&"-"&TEXT(COUNTIF($B$2:B2,B2),"000")
可読性も悪くないので、TEXT関数とCOUNTIF関数のネストで算出するほうが、よりいいかもしれませんね。