LoginSignup
1
2

More than 1 year has passed since last update.

REGEXEXTRACT関数を活用して、ユーザ名を作成

Last updated at Posted at 2022-10-29

前提

弊社では、新たにGoogleアカウントを発行する際、
たとえば「ヤマダ タロウ」さんの場合、tarou.yamada@xxxxx.co.jpというアドレスを発行します。すでに「ヤマダ タロウ」さんがいて今回が2人目の場合、末尾に数字をつけ、tarou.yamada2@xxxxx.co.jpとなります。

課題

毎回、アカウント作成の前に、

ユーザ名に被りがないかを検索 → 被りがあれば数字をつける

という作業を手作業でしていました。ちょっとした作業ですが、毎月10〜20人超が入社するため、意外と手間がかかっていました。この作業を今回、省力化します。

完成形

ということで、完成形がこちら。

①メアド発行

image.png

②純粋なlast+first

image.png

仕組み

  1. B3にtarou.yamadaの形式で入力
  2. B3の値が、②純粋なlast+firstに記載された一覧を含めて何個目なのかをカウント
    =if(countif('②純粋なlast+first'!$A$2:$A$12,B3)+1=1,"",countif('②純粋なlast+first'!$A$2:$A$12,B3)+1)
    
  3. B3の値と2で数えた数を合体
    =B3&C3
    
  4. ユーザ名ができあがり

何が難しかったの?

お気づきの通り、ここまではとても簡単なものです。
問題は、「②純粋なlast+first」の一覧を作成することにありました。

現在、弊社では上記のルールでメールアドレスを作成しているため、純粋に姓名をくっつけただけの値はもってなかったのです。だから、その一覧を作成する必要がありました。

目指したい状態

image.png

実現方法

以下の関数を組むことで、実現しました。

=iferror(SUBSTITUTE(A2,REGEXEXTRACT(A2,"[0-9]+"),""),A2)
  • 大枠の構成としては、SUBSTITUTE関数で文字を置き換える。
    =SUBSTITUTE(文字列, 検索文字列, 置換文字列, 置換対象)

  • 今回は数字を検索して、数字を取り除きたいので、置換文字列をREGEXEXTRACT関数で指定する。
    =REGEXEXTRACT(テキスト, 正規表現)

  • "[0-9]+"の部分で、0〜9の値を指定。

REGEXEXTRACT関数はスプレッドシート専用で、Excelでは使用できないので要注意。

感想・課題

完成形だけを見ると、シンプルな構成で簡単なものですが、REGEXEXTRACT関数がキーになります。この関数の存在しり、使い方を理解するまでに時間を要しました。

というか、そもそもこのアドレスの命名規則がイケてない。

僕がヤマダタロウさんだったら、ただ入社のタイミングが遅かっただけなのに、「9番目」っていう数字がついて、まるで自分が9番煎じかのように受け取ってしまう。

なので、この命名規則そのものを変えていきたい。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2