GoogleスプレッドシートのREGEXEXTRACTの使い方|注文番号「AB-104」を取り出す
問い合わせ文や作業メモから、注文番号だけを別のセルへ取り出したい。そんなときは、GoogleスプレッドシートのREGEXEXTRACTを使えます。
この記事では「AB-104」のような、半角英大文字2文字・半角ハイフン・半角数字3桁の番号を扱います。番号が前後の英数字とつながらず、独立して書かれた文章が前提です。
例と図のデータはすべて架空です。図は説明用の自作図解で、実アプリのスクリーンショットではありません。
REGEXEXTRACTで文章から「AB-104」を取り出す方法
A2の文章から注文番号を取り出すには、別のセルB2へ次の式を入力します。 A2が「注文 AB-104 を受け付けました」なら、取り出す結果は「AB-104」です。
=REGEXEXTRACT(A2,"[A-Z]{2}-[0-9]{3}")
| セル | 入力する内容・取り出す結果 |
|---|---|
| A2 | 注文 AB-104 を受け付けました |
| B2 | 上の式を入力すると、AB-104を取り出す |
最初は空いているシートで、次の3手順を試してください。元の文章と取り出した番号を並べて確認できます。
- A2に「注文 AB-104 を受け付けました」と入力する。
- B2を選び、上の式をコピーして入力し、Enterで確定する。
- B2の「AB-104」とA2の文章を見比べる。
式を入れるのはA2ではなく、結果を表示するB2です。A2に式を入れて元の文章を上書きしないようにしましょう。
式のA2は「どこから取り出すか」、引用符の中は「どの形を取り出すか」の指定です。構文と戻り値はGoogle公式のREGEXEXTRACTヘルプで確認できます。
REGEXEXTRACTが返すのは文字列です。「注文 CD-007 の確認」なら「CD-007」を取り出し、先頭のゼロを含む「007」も残ります。注文番号なので、数値に変換する必要はありません。

複数行に使う場合は、A3、A4にも文章を入れ、B2の式をB3、B4へ下にコピーします。B2をコピーし、B3からB4を選択して貼り付けます。
コピー後はB3の参照がA3、B4の参照がA4になっているか確認してください。
たとえばA3に「注文 CD-007 の確認」を入れた場合、B3の式は次の形です。B2の結果だけでなく、次の行も正しく取り出せることを確認してから範囲を広げましょう。
=REGEXEXTRACT(A3,"[A-Z]{2}-[0-9]{3}")
[A-Z]{2}-[0-9]{3}の読み方は3つに分ける
「正規表現」は、探す文字の並び方を指定するルールです。今回のパターンは、注文番号の形に合わせて3つのまとまりに分けると読めます。
| パターン | 意味 | AB-104との対応 |
|---|---|---|
[A-Z]{2} |
半角英大文字が2文字 | AB |
- |
半角ハイフンそのもの | – |
[0-9]{3} |
半角数字が3文字 | 104 |
[A-Z]はAからZの1文字、[0-9]は0から9の1文字です。後ろの{2}や{3}は、直前の要素を何回繰り返すかを指定します。GoogleのRE2構文資料に対応する説明があります。

図2では、英字・数字の指定と繰り返す回数を別々にした5要素で示しています。表の3つのまとまりと同じパターンを、さらに細かく読んだものです。
注意したいのは、この式が注文番号全体の検証用ではないことです。 長い文字列の一部分にも一致するため、次のような取り出し方になります。
| 元の文字列 | このパターンで一致する部分 |
|---|---|
| AB-1045 | AB-104 |
| XAB-104 | AB-104 |
「数字が4桁なら除外される」とは限りません。桁数が異なる番号や英数字の連結がある表では、そのまま使う前に番号の規則と区切りを確かめてください。
注文番号が2つあっても取り出すのは最初の1つ
REGEXEXTRACTは、文章の左から見て最初にパターンと一致した部分を返します。「AB-104 と CD-205 を同梱」なら、取り出すのは「AB-104」です。
先ほどの図1の最後の行には注文番号が2つありますが、後ろの「CD-205」は同時に返りません。「最初」は注文の新しさや重要度ではなく、文章に書かれた位置を指します。
この動作はGoogle公式のREGEXEXTRACTヘルプに説明されています。1行に複数の注文をまとめたデータでは、先頭の1件だけで目的に合うか確認しましょう。
本例は一致した部分全体を取り出すため、パターン内に丸括弧は不要です。一部を丸括弧で囲むと返る部分が変わることがあるので、まずは掲載した式のまま使ってください。
REGEXEXTRACTで一致しないときの確認点
大文字・半角・ハイフン・桁数を確認する
見た目が似ていても、今回のパターンに合うとは限りません。取り出せないときは、元の文章に次の違いがないかを確認します。
| 文字列の例 | 今回のパターンとの違い |
|---|---|
| AB-104 | 対象とする形 |
| ab-104 | 英字が小文字 |
| AB-104 | 英字と数字が全角 |
| AB-104 | ハイフンが全角 |
| AB-10 | 数字が2桁で、3桁に足りない |
小文字や全角を使うのが本来の番号規則なら、抽出のために番号を勝手に書き換えないようにします。まず、この記事の前提と自分のデータが合っているかを見直してください。
文字の形が合っている場合は、参照先が文章のあるA2になっているか、式をB2に入れたかも確認します。パターンを囲む引用符は、半角の"を使います。
なお、数字が4桁ある「AB-1045」は、単純に「一致しない例」にはできません。前の節で見たように「AB-104」の部分を拾うため、結果が出ても元の番号との照合が必要です。
#N/Aが出た場合はIFNAで表示を変える
一致しないために#N/Aが出た場合は、IFNAで表示を変えられます。確認中の行を見つけやすくするなら、B2へ次の式を入れて「対象なし」と表示させる方法があります。
=IFNA(REGEXEXTRACT(A2,"[A-Z]{2}-[0-9]{3}"),"対象なし")
IFNAは、内側の式の結果が#N/Aなら指定した値へ置き換え、それ以外はそのまま返します。すべてのエラーを隠す関数ではありません。Google公式のIFNAヘルプで仕様を確認できます。

図3は、#N/Aが出た場合の表示変更を示しています。「対象なし」は見直しの目印で、注文そのものが存在しないという判定ではありません。式や番号の形が間違っていても、それを直す働きはありません。
また、IFNAは#N/Aの発生理由を区別しません。入力セルA2自体の#N/Aが式に伝わった場合も置き換えるため、表示を変える前に元データにエラーがないか確認してください。
空欄に見せたい場合は、最後の"対象なし"を""に替えられます。ただし確認段階では、空欄より「対象なし」と表示したほうが見直す行を探しやすいでしょう。
まずは1行で注文番号と抽出結果を見比べよう
REGEXEXTRACTは「どのセルから」「どの形を取り出すか」を指定する関数です。今回の式ではAB-104形式を探し、最初に一致した1件を文字列として返します。
- A2に文章を残し、B2に式を入れる。
- 前後と連結しない番号か、文字の種類と桁数が合うかを確認する。
- IFNAは#N/Aの表示を変えるだけなので、元データも見る。
まずは実データのコピーで、番号が1つ・2つ・形が違う・番号がない行を見比べましょう。期待する結果になることを確認してから、式を下へコピーして他の行へ広げてください。
公式資料は2026-10-23時点で確認しています。本文の例は仕様に基づく説明であり、Googleスプレッドシートの実機検証結果ではありません。
