0Pricing
Excel Formulas Academy · レッスン

REGEXEXTRACTでパターンを取り出す

文字列から、パターンに一致する部分を抽出します。

「REGEXEXTRACTでパターンを取り出す」はCoddyKit上の無料Excel Formulas Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはExcel Formulas Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Excel Formulas Academyコースには全4レッスンが含まれています。

はい/いいえから一致部分の抽出へ

REGEXMATCHは、パターンが存在するかどうかを教えてくれます。しかし、Order #4821から数字を取り出したり、メールアドレスからドメインを取り出したりするように、一致したテキストそのものが必要になることもよくあります。

その役割を担うのがREGEXEXTRACTです。パターンに一致するテキストの最初の部分を見つけ、その部分をセルの値として返します。

これもGoogle Sheetsの関数です。インポートした整理されていないデータから、構造化された部分を取り出す方法として、非常にわかりやすい関数の1つです。

REGEXEXTRACTの構文

REGEXEXTRACT(text, pattern)は、textの中でpatternに一致する最初の部分文字列を返します。

一致するものがない場合は、空白ではなく#N/Aエラーを返す点に注意してください。

次の数式は、A2から最初に連続している数字を取り出します。Order 4821の場合は4821を返します。

=REGEXEXTRACT(A2, "\d+")

数値ではなくテキストを返す

REGEXEXTRACTは、一致した文字が数字であっても、常にテキストとして返します。そのため、4821は合計などの計算に使える数値ではなく、テキスト文字列として返されます。

実際の数値に変換するには、VALUEで囲みます。次の数式は数字を抽出して変換するため、その結果を使って計算できます。

=VALUE(REGEXEXTRACT(A2, "\d+"))

英字やコードを抽出する

パターンは数字に限られません。大文字の接頭辞を取り出すには、文字クラスと量指定子を使います。

次の数式は、INV2024のようなコードの先頭にある英字を取り出し、INVを返します。[A-Z]+は、連続する1つ以上の大文字を意味します。

=REGEXEXTRACT(A2, "[A-Z]+")

実例:商品コードを分割する

A2にSKU-4821-REDが入っていて、中央の数字だけを取り出したいとします。パターン内で前後のコンテキストを指定すると、位置を表現できます。

次の数式は、2つのハイフンの間にある数字を探し、4821を返します。リテラルのハイフンによって、正しい数字の並びを見つけられます。

=REGEXEXTRACT(A2, "-(\d+)-")

キャプチャグループで必要な部分だけを返す

最後の式にある括弧、(\d+) に注目してください。これはキャプチャグループです。

パターンにキャプチャグループが含まれている場合、REGEXEXTRACT は一致全体ではなく、括弧内にある部分だけを返します。そのため、-(\d+)- はハイフンを除いた 4821 を返します。

キャプチャグループを使うと、正確に一致させるために周囲の文脈もパターンに含めながら、必要な部分だけを抽出できます。

=REGEXEXTRACT(A2, "-(\d+)-")

実例:メールアドレスのドメインを取り出す

sam@coddykit.com から、ドメインである coddykit.com を取り出したいとします。@ に一致させてから、その後ろから末尾までをキャプチャします。

次の式は、A2 のアットマークに続く部分を返します。(.+) は任意の文字を1文字以上キャプチャし、$ によって文字列の末尾までに限定します。

=REGEXEXTRACT(A2, "@(.+)$")

アンカーで抽出を正確にする

アンカーを使うと、既知の位置から一部を取り出せます。最初の単語だけをキャプチャするには、先頭を指定し、最初のスペースで止めます。

次の式は、A2 の先頭にあるスペース以外の文字をキャプチャします。John Smith に対しては John を返します。[^ ]+ は、スペースではない文字が1文字以上続くことを意味します。

=REGEXEXTRACT(A2, "^([^ ]+)")

一致しない場合に備える

抽出に失敗すると #N/A エラーが発生するため、異なるデータが混在する列で式を下方向にコピーすると、シートがエラーだらけになることがあります。

呼び出しを IFERROR で囲むと、エラーの代わりに適切な値を返せます。次の式は、数字が見つかった場合はその数字を返し、見つからない場合は空文字列を返します。

=IFERROR(REGEXEXTRACT(A2, "\d+"), "")

選択肢を使って抽出する

パイプ | はまたはを意味します。1つのパターンで複数の候補に一致させることができます。コードが異なるプレフィックスで始まる可能性がある場合に便利です。

次の式は、A2 に含まれるステータスワードのうち、OPEN、CLOSED、HOLD のいずれかを抽出します。最初に見つかったものが返されます。

=REGEXEXTRACT(A2, "OPEN|CLOSED|HOLD")

列全体からまとめて抽出する

REGEXEXTRACT は、インポートしたデータの列全体に適用すると力を発揮します。各行から一致する部分を取り出し、並べ替えや分析ができる新しい列に整理できます。

たとえば、A列に Order 4821 - shipped のような注文文字列が入っているとします。次の式をB列に下方向へコピーすると、すべての行から注文番号だけを抽出できます。乱雑な元のテキストから、数値のように扱える整然とした列を作成できます。

=REGEXEXTRACT(A2, "Order (\d+)")

確認テスト

一致した部分の抽出について、理解度を確認しましょう。

まとめ:一致した部分を取り出す

REGEXEXTRACT(text, pattern) は、Google Sheets で最初に一致した部分文字列を返すことを学びました。重要なポイントは次のとおりです。

  • 結果は常にテキストです。数値として扱うには VALUE で囲みます
  • 括弧内のキャプチャグループは、その中の部分だけを返します
  • 一致しない場合は #N/A になるため、IFERROR で対処します
  • | を使うと、1つのパターンで複数の候補に一致させられます

次は、テキストを読み取るだけでなく、REGEXREPLACE を使ってその場で書き換える方法を学びます。

よくある質問

「REGEXEXTRACTでパターンを取り出す」レッスンは無料ですか?

はい。「REGEXEXTRACTでパターンを取り出す」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Excel Formulas Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Excel Formulas Academyコースには全4レッスンが含まれています。

「REGEXEXTRACTでパターンを取り出す」で何を学びますか?

文字列から、パターンに一致する部分を抽出します。 ブラウザで直接実行するハンズオンコードでExcel Formulas Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Excel Formulas Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのExcel Formulas Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「REGEXEXTRACTでパターンを取り出す」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このExcel Formulas Academyレッスンでコードを書いて実行できますか?

はい。すべてのExcel Formulas Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. REGEXMATCHでパターンを検証する
  2. REGEXEXTRACTでパターンを取り出す
  3. REGEXREPLACEでパターンを置換する
  4. 乱雑なデータを分割して整える
← Excel Formulas Academyに戻る