もし、あなたがそれなりのイケメン君だとして…、
(あ、失礼しました。仮説ではなく、あなたはイケメン君でしたね!)
お付き合いしている女性から、「運転免許証を見せて」と言われたら、どう思いますか?
「なぜだろう?」と首をかしげているようでは、まだワキが甘いですぞ!
今どき女子は、免許証の写真ばかりでなく、12ケタの免許番号からも、「自分が”本命彼女”か、”遊び相手”か」を見きわめようとしているらしいです( 参考;Oggi.jp ) こわっ!!
それはさておき、12ケタの免許番号には、出身地(免許初回取得地)や紛失・再発行履歴まで、さまざまな情報がふくまれます。だから、免許番号をひかえると、個人が完全に特定できてしまうのです。
仕事でも、新しいデータベースをくむ時など、このような「意味をもつ数列」(コード/ID)をあつかうことがありませんか?
商品コード/社員コード/取引先コード/営業拠点コード etc.
なぜなら、数字に意味をもたせることで、分類(仕分け)のキー(鍵)とすることができるからです。
とはいえ、Excelのオートフィルに、このような「数字の意味」を考えた自動複製はむずかしいでしょう。そのような時には、ぜひROW関数を使ってみてください。
ROW関数とCOLUMN関数は、引数ナシでも使用できます
ROW関数とCOLUMN関数の基本構文は以下の通りです(いずれも、Microsoft supportページの情報を転載)。
ROW([範囲])
COLUMN([範囲])
引数の[範囲]は省略可能で、省略した場合には、関数式が入力されているセル番地(ROWの場合は行番号、COLUMNの場合は列番号)が結果として返されます。
セルD5に、=ROW(D5)という関数式を入れると、返り値は5(5行目)となります。
引数ナシでOKですから、=ROW()としても同じ結果が得られます。
だから何? と思うかもしれません。
しかし、じつはROWやCOLUMNは、引数ナシで使って、セル位置やデータの個数を数えるのに大活躍する、とても便利な関数なのです。
次に、ROW関数を使って、ダミーの社員コードを、Excelで自動生成してみましょう。
文字列中間の連続データを自動生成するには、オートフィルではなく、引数ナシROW関数を使ってみましょう
たとえば、とある会社の社員コードが、以下のように決められているとしましょう。
A230011
最初のアルファベット1文字が、無期雇用正社員か、期間限定契約社員か、など契約形態を分類する記号。
次に、入社年の下2ケタ(2023なら23)が続き、その年に入社した社員の順番を、通し番号3ケタであらわします。
最後に、数字入力ミスなどを確認するためのチェックデジット(ここでは、2ケタ目から6ケタ目までの5つの数字を足して5でわり、小数点以下を切り捨てたものを、確認用チェックデジットとします)を足して完成とします。
この社員コードを、2023年入社の延べ999人分、Excelで自動生成するには、どうしますか?
一番最初に思いつくのが、フィルハンドルをつかんで、一気に下へ999行分ひっぱって連続データを作る方法ではないでしょうか。 しかし、検算チェック用デジットが末尾にあるレコードでは、この手は使えません。
オートフィルでは、セル内にあるレコードの一番右の数字のみを加算していきますので、このケースでは、あやまった社員コードが大量に生成されてしまいました。
連続データとしたいのは、4ケタ目から6ケタ目までの3ケタ数値だけなのですが、この場合には、どう処理したらよいでしょうか?
ここで、引数ナシROW関数の出番です。
“何行目”の値をかえす引数ナシROW関数の計算結果を、”何人目”におきかえればよいのです。上の例では、1行目を見出し行として、2行目に1人目のレコードをおきました。
セルB2へ、
=TEXT(ROW()-1,”000”)
という関数式をいれると、3ケタ表記テキストとして、「001人目」という結果がかえってきます。あとは、オートフィルで必要な人数分だけ、連続データを生成すればよいのです。
最後に、セルA2へ、
=CONCAT("A23",B2,C2)
※セルC2は確認用チェックデジット
と入力し、オートフィルで下行へ関数式を複製すれば、正しい続き番号の社員コードが、必要人数分だけカンタンに生成できます。 同様の文字列操作で、ハイフンなど記号付きコードでも、ラクに連続データを生成することができますので、ぜひ試してみてください。
まとめ
オートフィルで対応できない連続データの作成には、「何行目」「何列目」などの情報をうまく使いましょう
オートフィルで連続データをつくること自体は、カンタンで、よく利用される手段です。
しかし、Excelはその連続データの意味を考慮しませんので、いそがしさにかまけて、無意識に作業をしてしまうと、とんだまちがいデータをゲットすることもあるのです。
笑い話に、「金沢21世紀美術館の書類をオートフィルで複製してしまい、金沢118世紀美術館を作ってしまった」なんていう”事件”も、過去にありました。
ミスがゆるされない業務用書類でこのような事態とならないよう、まずはセルの1丁目1番地から、人間がキッチリ数字の意味を把握して、正しいコード生成式をつくりましょう。
そして、現在地や必要なレコード数を計算するには、引数ナシのROW関数やCOLUMN関数を使うのが、カンタン便利です。
羅列されている数値の意味を正確に把握して取り回すことが、今後ますます必要になりそうです。
そのスキルをみがいておかないと、オチオチ恋におちることもむずかしくなるかもしれませんね…!?