Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

Excel でのマスター正規表現:パワー ユーザー向けの短期集中コース

Excel でのマスター正規表現:パワー ユーザー向けの短期集中コース

正規表現 (regex) は一見複雑に見えるかもしれませんが、パターン マッチングやテキスト操作のための強力なツールです。 Excel では、複雑なパターンに基づいてデータを検索、抽出、置換できるため、データのクリーニング、検証、解析などのタスクが大幅に効率化されます。基本を学べば、情報のクリーニング、検証、抽出にかかる時間を節約できます。正規表現をサポートするために、Excel では REGEXTEST、REGEXEXTRACT、REGEXREPLACE などの関数が提供されています。

これは、Excel のパワー ユーザー向けの正規表現短期集中コースです。

正規表現とは何ですか?

Regex (正規表現) はテキストのパターン言語です。正規表現を使用すると、正確な単語を検索または一致させる代わりに、テキストの形状を記述することができます。 Excel の正規表現は、非常に強力な FIND + MID + SUBSTITUTE を組み合わせたようなもので、1 つのパターンでテキストを検証、抽出、またはクリーンアップできます。

正規表現を使用すると、電子メール アドレス、電話番号、さまざまな形式の日付、またはルールに従う任意の ID など、Excel の一般的な構造と一致させることができます。

最新の Excel では、主に次のものとともに使用します。

  • REGEXTEST (パターンが存在するかどうかを確認します)
  • REGEXEXTRACT (一致する部分をプル)
  • REGEXREPLACE (一致の置換/クリーンアップ)

正規表現の基本:パターンの構築

正規表現パターンは、探しているものを定義する文字列です。これらは、リテラル文字 (「abc」など) と特殊なメタ文字を組み合わせます。この表はクイックリファレンスとして使用できます。

主要なメタ文字と構文:

ビルディングブロック 意味 簡単なパターンの例 一致 abcリテラル textTX-TX-.任意の 1 文字a.cabc、a-c\dDigit (0–9)\d{4}2026\D数字ではありません\D+TX-\wWord char (A–Z, a–z, 0–9, _)\w+amina_01\W単語ではありません char\W+– ( ) .\sWhitespace\s+spaces/tabs\SNot Whitespace\S+[email protected][ABC]次の文字のいずれか[AEIOU]A[A-Z]範囲 (大文字)[A-Z]{2}TX[a-z]範囲 (小文字)[a-z]+rahman[0-9]桁範囲[0-9]+1054[^0-9]これらではありません (否定クラス)[^0-9]+TX-*0 またはmore\d*“”、7, 1054+1 以上\d+7, 1054?オプション (0 または 1)-?– または何もなし{n}ちょうど n 回\d{2}12{n,}少なくとも n 回\d{4,}202601{n,m}n と m の間\d{2,4}12, 2026^本文の始まり^TX-TX-1054 (開始時)$テキストの終わり\.com$は .com\bWord 境界\bTX-\d{4}\bTX-1054 で終わりますトークン全体( … )キャプチャ グループ(\d{4})キャプチャ 1054(?:… )非キャプチャ グループ(?:TX|CA)-\d{4}TX-1054 または CA-1054\エスケープ スペシャルcharscompany\.comliteral company.com.*Any chars (greedy)\(.*\)matches from first ( to last ).*?Any chars (non-greedy)\(.*?\)matches smallest ( … )(?i)大文字と小文字を区別しないモード (Excel 正規表現パターンではサポートされていません。代わりに関数の case_sensitivity 引数を使用します) - REGEXTEST(text, pattern, 1)
  • 数量指定子 (*、+、?、{}) はその前の要素に適用されます。
  • フラグ: Excel の正規表現関数は、パターン内の (?i) のようなインライン フラグをサポートしていません。大文字と小文字を区別するために関数の引数を使用するか (例:REGEXTEST の 3 番目の引数)、文字クラス (例:[Aa]) を使用します。
  • 貪欲 vs 怠惰: デフォルトでは、量指定子は貪欲です (可能な限り一致します)。追加 ?遅延させるために量指定子の後に追加します (例:.*?)。

Excel の正規表現関数

Excel は 3 つの正規表現関数をネイティブに提供します。これらの関数は、テキスト文字列と正規表現パターンを入力として受け取り、パターンに基づいてテキストを検証または変換します。コースに入る前に、それぞれの機能を理解しましょう。

構文:

=REGEXTEST(text, pattern, [case_sensitivity])

この関数は、パターンが提供されたテキストの一部と一致するかどうかをチェックします。パターンがテキスト内のどこかに一致する場合は TRUE を返します。それ以外の場合は FALSE。

  • テキスト: テストするテキストまたはセル参照。
  • パターン: 照合するテキストを説明する正規表現 (regex) パターン。
  • [大文字と小文字の区別]: 一致で大文字と小文字が区別されるかどうかを決定します。デフォルトでは、一致では大文字と小文字が区別されます。
    • 0: 大文字と小文字を区別する
    • 1: 大文字と小文字を区別しない

A1 に連続する 3 桁の数字が含まれる場合、この関数は TRUE を返します。

構文:

=REGEXEXTRACT(text, pattern, [return_mode], [case_sensitivity])

この関数は、一致するテキストを抽出します。

  • [return_mode]: 抽出する文字列を指定する数値。デフォルトでは、戻りモードは 0.
      です。
    • 0: パターンに一致する最初の文字列を返します
    • 1: パターンに一致するすべての文字列を配列として返します
    • 2: 最初に一致したキャプチャ グループを配列として返します
=REGEXEXTRACT(A1, "\d{3}-\d{3}-\d{4}")

「123-456-7890」のような電話番号を抽出します。

構文:

=REGEXREPLACE(text, pattern, replacement, [occurrence], [case_sensitivity])

この関数は、一致したものを新しいテキストに置き換えます。

  • 置換: パターンの代わりに使用するテキスト。キャプチャ グループは $1、$2 などで参照できます。
  • 出現: パターンのどのインスタンスを置換するかを指定します。デフォルトでは、出現回数は 0 で、すべてのインスタンスが置き換えられます。負の数は、末尾から検索してそのインスタンスを置き換えます。
=REGEXREPLACE(A1, "\d{3}", "***")

3 桁のシーケンスをすべてマスクします。

これらの関数は、配列を返す場合 (複数の抽出など) にスピルします。

Excel パワー ユーザー向けの実践的な例

乱雑なデータがあるとします。正規表現を一般的なシナリオに適用してみましょう。

例 1:電子メール アドレスの検証

REGEXTEST を使用して、有効な会社メールにフラグを付けることができます (大文字と小文字を区別しない一致のほうが安全なことがよくあります)。

電子メールを検証するには、次のパターンを使用します。

  • パターン: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
=REGEXTEST(A2, "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$")

条件付き書式を使用して無効なメールを強調表示する:

  • ホームに移動します タブ>> 条件付き書式を選択します>> 新しいルールを選択します
  • [数式を使用して書式設定するセルを決定する] を選択します。
  • 次の数式を挿入します
  • 形式を選択します>> 塗りつぶしの色を選択>> OK をクリックします

Excel でのマスター正規表現:パワー ユーザー向けの短期集中コース

  • 無効な電子メール アドレスは赤色で強調表示されます

Excel でのマスター正規表現:パワー ユーザー向けの短期集中コース

REGEXTEST を使用して、有効な会社メールにフラグを立てることもできます。

=REGEXTEST(B2,"@company\.com$",1)
  • 3 番目の引数 (1) )一致では大文字と小文字が区別されないため、Company.com まだ合格します
  • \. ドットをエスケープします。地味です。 「任意の文字」を意味します

例 2:乱雑なメモからのデータの抽出

注文 ID や電話番号などのデータがメモに混在しているとします。 REGEXEXTRACT 関数を使用して、電話番号または注文 ID を抽出できます。

注文 ID の抽出:

=REGEXEXTRACT(D2,"TX-\d{4}")
  • 一部の行にそれがない場合は、IFERROR で囲みます:
=IFERROR(REGEXEXTRACT(D2,"TX-\d{4}"),"")

Excel でのマスター正規表現:パワー ユーザー向けの短期集中コース

電話番号の抽出:

  • データ: 「123-456-7890 または (987) 654-3210 までお電話ください。」
  • パターン: (\d{3}[-. )]+){2}\d{4}
=REGEXEXTRACT(A2, "(\d{3}[-. )]+){2}\d{4}", 0, 1)

この数式はテキストから電話番号を抽出します。

例 3:数字以外の文字を削除して電話番号を標準化する

  • 最初に数字のみのバージョンを作成します。
=REGEXREPLACE(C2,"[^\d]","")
  • これで、フォーマットできるようになります (例:利用可能な場合は最後の 10 桁を米国の番号として)
=LET(x,REGEXREPLACE(C2,"[^\d]",""),
d,RIGHT(x,10),
IF(LEN(d)=10,"("&LEFT(d,3)&") "&MID(d,4,3)&"-"&RIGHT(d,4),""))

この方法では、数字以外の文字がすべて削除され、結果の電話番号がフォーマットされます。
Excel でのマスター正規表現:パワー ユーザー向けの短期集中コース

例 4:日付の解析と再フォーマット

日付を解析し、正規表現を使用して再フォーマットできます。

  • パターン: (\d{1,2})/(\d{1,2})/(\d{4})
=REGEXREPLACE(A2, "(\d{1,2})/(\d{1,2})/(\d{4})", "$3-$2-$1")

この数式は日付を解析し、有効な ISO のような形式に再フォーマットします。キャプチャ グループ () を使用して、置換のパーツを参照することもできます。

例 5:乱雑なデータのクリーンアップ (例:余分なスペースの削除)

正規表現を使用すると、余分なスペースの削除や書式の正規化など、乱雑なデータをクリーンアップできます。

余分なスペースを削除するには、次のパターンを使用します。

  • パターン: \s+
=REGEXREPLACE(A2, "\s+", " ")

この数式は、一連の空白を単一の空白に置き換えます。

例 6:括弧内をすべて削除する (括弧を含む)

  • セルを選択し、次の数式を挿入します。
=REGEXREPLACE(D2,"\s*\(.*?\)","")
  • .*?貪欲ではないです。 一致します。最後の閉じ括弧ではなく、最初の閉じ括弧で停止します。

この数式は、括弧自体を含む括弧内のすべてのデータを削除します。
Excel でのマスター正規表現:パワー ユーザー向けの短期集中コース

例 7:注文 ID を含む行のフィルタリング

=FILTER(A2:F16,REGEXTEST(D2:D16,"TX-\d{4}"))

この数式は、正規表現パターンに基づいてデータをフィルタリングします。
Excel でのマスター正規表現:パワー ユーザー向けの短期集中コース

Excel の高度な正規表現テクニック

  • 先読み/後読み: テキストを消費せずに条件をアサートします。
    • 肯定的な先読み:(?=…) 例:% 記号の前の数値の場合は \d+(?=%)$。
    • 価格を抽出するために REGEXEXTRACT で使用します:\d+\.\d{2}(?=\sUSD)
  • 非キャプチャ グループ: (?:…) キャプチャなしのグループ化用。
  • 代替: オプションの場合、例:URL の場合は (http|https)://\S+。
  • 配列の処理: REGEXEXTRACT が複数のグループを返す場合は、INDEX を使用するか、範囲をスピルします。
  • 他の関数との組み合わせ: IF、FILTER、LAMBDA をネストして強力なワークフローを実現します。

ヒントとベスト プラクティス

  • テスト パターン: 「ECMAScript」フレーバー(Excel の正規表現に最も近い)を持つ regex101.com などのオンライン ツールを使用します。
  • パフォーマンス: 正規表現は、大規模なデータセットでは遅くなる可能性があります。まずサンプルでテストする
  • エラー: 一致するものがない場合、REGEXEXTRACT は #N/A を返します。 IFNA または IFERROR で処理します。
  • 制限事項: Excel の正規表現はサブセットに基づいており、PCRE が完全にはサポートされていないため、再帰などの高度な機能は避けてください。
  • 詳細: 実際のデータセットを使って練習します。正規表現は使えば使うほど簡単になります!

練習用ワークブックをダウンロード

まとめ

Excel のパワー ユーザーは、正規表現短期コースに従うことで、データのクリーニング、検証、自動化を加速できます。基本的な構成要素に慣れたら、より洗練されたパターン マッチングのための先読みと後読みを検討してください。この短期集中コースでは、まず式を理解してから、空のワークブックでパターンを試してみましょう。正規表現を使用すると、Excel でのテキストの処理方法が変わります。

ソリューション付きの高度な Excel 演習を無料で入手しましょう!
  1. MicrosoftTeamsに最適なプロジェクト管理アプリ

    Microsoft Teamsは、多くの企業にとって不可欠な在宅勤務ツールになっています。多数のプロジェクトを管理しながらエクスペリエンスを向上させたい場合は、これらのMicrosoftTeams用のプロジェクト管理アプリを試してみてください。 。これらのアプリはすべて無料で利用でき、可能な限りインストールできます。リストを開始する前に、このガイドを確認して、MicrosoftTeamsにアプリをインストールする方法を学ぶ必要があります。 MicrosoftTeams用のプロジェクト管理アプリ MicrosoftTeamsに最適なプロジェクト管理アプリは次のとおりです。 Track

  2. インストールソースへのアクセスが拒否された問題を修正–MicrosoftOfficeエラー

    Windows 10PCにMicrosoftOfficeをインストールしようとしても、Officeのインストールがエラーメッセージインストールソースへのアクセスが拒否されましたで失敗した場合 、この投稿は、問題を正常に解決するための迅速で簡単な解決策を支援することを目的としています。 この問題が発生すると、次の完全なエラーメッセージが表示されます。 インストールソースへのアクセスが拒否されました 申し訳ありませんが、必要なファイルへのアクセスで問題が発生しました。インストールソースに正しい権限があることを確認してから、再試行してください。 エラーコード:30015-4(5)