Excel REGEXREPLACE 関数のチュートリアル

バージョン: Microsoft 365
最終更新:
ヒント:⬆️ ⬇️を使用してページを上下に移動します。より良い読書体験のために、大画面での閲覧をお勧めします。

1. REGEXREPLACE 関数の紹介

REGEXREPLACE関数はExcelの強力なツールで、ユーザーが正規表現を使用してテキスト内の部分文字列を検索して置き換えることを可能にします。これは、データを一括でクリーンアップしたり、文字列を再フォーマットするのに特に便利です。
REGEXREPLACE 関数の紹介

2. REGEXREPLACE 関数のパラメータ

REGEXREPLACE 関数を使用するための構文です。
=REGEXREPLACE(text, pattern, replacement, [occurrence], [case_sensitivity])
  • text: 必須 置き換えたい文字列が含まれているテキストまたはセルへの参照。
  • pattern: 必須 置き換えたいテキストのパターンを説明する正規表現("regex")。
  • replacement: 必須 パターンのインスタンスを置き換えたいテキスト。
  • occurrence: 任意 置き換えたいパターンのインスタンスを指定します。デフォルトでは、occurrenceは0で、すべてのインスタンスを置き換えます。負の数は、末尾から検索してそのインスタンスを置き換えます。
  • case_sensitivity: 任意 一致が大文字と小文字を区別するかどうかを決定します。デフォルトでは、一致は大文字と小文字を区別します。次のいずれかを入力してください:
  • 0: 大文字と小文字を区別する
  • 1: 大文字と小文字を区別しない
  • 3. 例のシナリオ:電話番号のフォーマット

    例えば、さまざまな形式の電話番号のリストがあり、(xxx) xxx-xxxx形式に標準化したいと考えています。REGEXREPLACE関数を使用すると、このプロセスが大幅に簡素化されます。
    例のシナリオ:電話番号のフォーマット例のシナリオ:電話番号のフォーマット

    4. REGEXREPLACE 関数の使い方

    キーボードに入力します:=REGEXREPLACE(、次にA5を処理対象のテキストとして選択します。
    REGEXREPLACE 関数の使い方

    5. 非数値文字を削除

    ここでは、正規表現を次のように設定します:"\D"、これはすべての非数値文字に一致し、置換を空の文字列:""に設定します。
    非数値文字を削除

    6. REGEXREPLACE関数を適用

    このようにして、電話番号のすべての非数値文字を何もないもので置き換えることができます。

    データが変わらないように見えることがありますが、元の形式はすでに数値であるためです。同じ処理を他の行にも適用しましょう。
    REGEXREPLACE関数を適用

    7. 非数値文字が正常にフィルタリングされました

    これで、電話番号から非数値文字を正常にフィルタリングしました。
    非数値文字が正常にフィルタリングされました

    8. 電話番号をフォーマットする

    電話番号を(xxx) xxx-xxxxの固定形式に変換することもできます。

    ここで使用する正規表現は:"(\d{3})[.-]?\s?(\d{3})[.-]?\s?(\d{4})"、置換正規表現は:"($1) $2-$3"です。
    電話番号をフォーマットする

    9. 正規表現一致解析

    ここでは、電話番号を3つの部分に分割するために3つの正規表現キャプチャグループを使用します。各部分は電話番号内の数字に一致します。
    text:
    regularExpr:
    123-456-7890(\d{3})[.-]?\s?(\d{3})[.-]?\s?(\d{4})
    1123(\d{3})
    2-[.-]?\s?
    3456(\d{3})
    4-[.-]?\s?
    57890(\d{4})
    1(\d{3})
    (
    キャプチャグループの開始
    \d 数字
    任意の数字文字(0-9)に一致します。
    {3} 量指定子
    前のトークンの3回に一致します。
    )
    キャプチャグループの終了
    2[.-]?\s?
    [.-] 文字セット
    文字 .,   文字 -.
    ? 量指定子
    前のトークンの0回または1回に一致します。
    \s 文字セット
    任意の空白文字(スペース、タブ、改行)
    ? 量指定子
    前のトークンの0回または1回に一致します。
    3(\d{3})
    (
    キャプチャグループの開始
    \d 数字
    任意の数字文字(0-9)に一致します。
    {3} 量指定子
    前のトークンの3回に一致します。
    )
    キャプチャグループの終了
    4[.-]?\s?
    [.-] 文字セット
    文字 .,   文字 -.
    ? 量指定子
    前のトークンの0回または1回に一致します。
    \s 文字セット
    任意の空白文字(スペース、タブ、改行)
    ? 量指定子
    前のトークンの0回または1回に一致します。
    5(\d{4})
    (
    キャプチャグループの開始
    \d 数字
    任意の数字文字(0-9)に一致します。
    {4} 量指定子
    前のトークンの4回に一致します。
    )
    キャプチャグループの終了

    10. 正規表現置換解析

    次に、正規表現で一致した3つの部分を結合して、所望の形式にします。
    text:
    regularExpr:
    (123) 456-6789($1) $2-$3
    1((
    2123$1
    3))
    4
    5456$2
    6--
    76789$3
    1( 文字
    2$1 最初のキャプチャグループの内容
    3) 文字
    4 文字
    空白文字
    5$2 二番目のキャプチャグループの内容
    6- 文字
    7$3 三番目のキャプチャグループの内容

    11. 成功裏にフォーマットされた電話番号

    これで、電話番号を希望の形式に成功裏にフォーマットしました。これを他の行にも適用して、データクリーニングプロセス全体を完了します。
    成功裏にフォーマットされた電話番号

    12. 正規表現の一致失敗のケース

    私たちの正規表現 "(\d{3})[.-]?\s?(\d{3})[.-]?\s?(\d{4})" が、元々 (xxx) xxx-xxxx 形式の電話番号と一致しなかったことに困惑するかもしれません。

    実は、REGEXREPLACE 関数が正規表現と一致しない場合、元のテキストを変更せずにそのまま返すためです。したがって、元々 (xxx) xxx-xxxx 形式の電話番号と一致させる必要はありません。
    正規表現の一致失敗のケース正規表現の一致失敗のケース

    13. 🎉 終了! 🎉

    著者のメモ:これらのチュートリアルにかけた努力を感じていただければ幸いです。非常に理解しやすいExcelチュートリアルのシリーズを作成したいと思っています。

    役立つ場合は、これらのチュートリアルを共有するのを手伝ってください、ありがとうございます!


    私についてきて:
    REGEXREPLACE 関数の紹介