メインコンテンツへスキップ
見出し画像

【Excel新関数紹介】TEXTBEFORE/TEXTAFTERで時短(FIND,LEFT,MIDの代替)【Excelノウハウ】

    前回TEXTSPLIT関数について説明しました。
    同じタイミングで次のような新関数が登場し、
    FINDの役割を補完または代替するようになっています
    (Microsoftのサイト365,Excel2021バージョン)

    • TEXTBEFORE:指定文字の前の部分を取得

    • TEXTAFTER :指定文字の後の部分を取得

    •   TEXTBEFORE or TEXTAFTER(対象,"検索文字)

    FIND関数からの進化:TEXTBEFORE/TEXTAFTER関数

    yamada@mail.com の@より前の文字を取り出すときは、どうすれば良いでしょうか?
    従来、文字列の中から特定の文字(例:@)の位置を見つけたいときは FIND 関数を使っていました。

    =FIND("@", A2)  
    これは「@が何文字目にあるか」を返してくれるだけです。
    そして、@より前の文字を出すときは、=LEFT(A1,FIND("@", A1)-1)

    (私は、一度に関数を書かずに式を小分けにすることが多いです)
     ワケ分からなくなる位なら「小分け!」
    小分けの例
     B2セル =FIND("@", A2) @の桁数を探す 7 
     C2セル =LEFT(A2,B2-1) @より前の文字 yamada
     D2セル =LEN(A2) 全体の文字数  15(yamada@mail.comで15文字)
     F2セル =MID(A2,B2+1,D2-B2)  mail.com

    「小分け」については 
    第1章:Excelの考え方を理解する  の
    「関数は“分けて”書いたほうが見やすい」  をご参照ください


    FIND関数は進化していません。
    機能としては今も昔も「特定の文字の位置を探す」だけです。
    FIND関数の進化の代わりとして使えるのが、TEXTBEFORE、TEXTAFTER関数です。
    FINDでは「小分け」にして段階を分けていたものが1つの関数でできるようになります。

    たとえば、メールアドレスの「名前の部分だけ」を取り出したいなら:=TEXTBEFORE(A1, "@")

    画像

    これだけで済みます。FINDとLEFTを組み合わせていた時代から比べて、圧倒的にシンプルです。


    ■ TEXTSPLIT、TEXTBEFORE,TEXTAFTER関数ではできないこともある

    TEXTSPLIT等は便利ですが、使える場面には限りがあります。
    「明確な区切り文字がある場合」にだけ有効です。

    しかし、実際の現場では次のような“あいまい”なデータに遭遇することも多いはずです:

    • 「090-xxxx-xxxx」のような電話番号形式の文字列だけを取り出したい

    • 「カンマでもスペースでも区切りとして扱いたい」

    • 「英数字だけを抜き出したい」

    • 「特定の文字列パターンに一致するものだけ処理したい」

    こういった処理には、TEXTSPLITでは限界があります。


    ■ (次のステップ)そんなときに「正規表現(RegEx)」が活躍

    ここで登場するのが、正規表現(せいきひょうげん)という考え方です。
    これは、「こういう文字の並びを探したい」というルールを、記号やパターンで指定する方法
    です。

    たとえば

    \d{3}-\d{4}-\d{4} ⇒ 数字3桁-4桁-4桁(電話番号の形式)にマッチ

    こうしたパターンを使えば、目視では難しい判断もExcelで自動処理できるようになります。


    ■ 正規表現はExcel関数では使えないが、VBA+生成AIで実現可能!

    残念ながら、正規表現は現在のExcel関数には搭載されていません。
    そのため、これを使いたい場合はVBA(マクロ)やPower Queryの活用が必要です。

    ただし朗報です。
    今ではChatGPTなどの生成AIを使えば、
    「この形式の文字列だけ抜き出したい」と自然文で指示するだけで、正規表現を含むVBAコードを自動生成してくれます。

    昔は「正規表現+VBA」は上級者向けの技でしたが、今では初心者でもAIの助けを借りて実行できる時代になっています。

    来月以降にExcelVBA+生成AIの活用について説明していく予定ですが、
    その中でも、この正規表現についてお話していきます。
    (正規表現はゴチャゴチャしていて、私は、頭をひねりまくっても間違ったりで、すごく時間がかかりましたが、生成AIのおかげで、圧倒的に便利になりました。)

    #TEXTBEFORE #TEXTAFTER #FIND #LEFT #MID #代替 #進化

     
     
    書くことで見る世界がほんの少し変わるエッセイが書けるといいなと思っています。 週3位アップしています(1年2ヶ月で200を超えました)。ビジネスやITの話は水曜中心で、それ以外はランダム。 50代後半でIT業界に転職して60歳を過ぎました。最近は在宅介護も始まりました。

    あなたへのおすすめ