REGEX.EXTRACT
REGEX.EXTRACT関数は、対象文字列内で指定した正規表現に一致する部分の一致またはキャプチャグループを返します。
REGEX.EXTRACT(対象文字列, 正規表現文字列, 一致該当箇所, キャプチャ該当箇所)
対象文字列: 一致させる文字列値。
正規表現文字列: 「対象文字列」に一致させるために使用する正規表現を表す文字列値。
一致該当箇所: 複数の一致がある場合に、どの一致を返すかを指定する整数(オプション)。 負の整数も使用可能で、逆の方向から数えて一致を指定できます。例えば、-1で最後の一致を指定できます。0を渡すと、すべての一致の配列が返されます。省略すると、最初の一致が返されます。
キャプチャ該当箇所: 正規表現にキャプチャグループがある場合に、一致内のどのキャプチャグループを返すかを指定する整数(オプション)。 負の値は使用できません。0を渡すと、すべてのキャプチャグループの配列が返されます。省略すると、一致全体が返されます。
参考
「正規表現文字列」は、ICU標準に準拠する必要があります。
例 |
---|
スプレッドシートの行や列になかなかうまく収まらないデータがある場合は、REGEX.EXTRACTを使用すると作業を簡略化できます。例えば、下の表ではデータに一定の構造がありますが、レビューごとに手動でデータを複数のセルに分割するのは大変です。 |
A | |
---|---|
1 | ユーザレビュー |
2 | Email: jtalma@icloud.com Name: Julie Talma Date: 2021/05/17 |
3 | Email: danny_rico@icloud.com Name: Danny Rico Date: 2021/06/02 |
これを修正するには、表に「名前」、「Email」、「レート」、「日付」という列を追加してから、REGEX.EXTRACTを使用して必要なデータを探し、それをセルに返します。 例えば、以下の数式を入力して、名前を返すことができます: この数式では、以下の引数が使用されています:
ユーザレビューの情報を含むほかのセルに合わせて「対象文字列」を変更することで、データ行ごとにこの数式を繰り返して、調査に回答した各人の名前を返すことができます。 |
これを修正するには、表に「名前」、「Email」、「レート」、「日付」という列を追加してから、REGEX.EXTRACTを使用して必要なデータを探し、それをセルに返します。 例えば、次の数式を入力することができます: この数式では、以下の引数が使用されています:
|
「一致該当箇所」を使用してリストのデータを再編成する |
---|
下の(「サプライヤ」というタイトルの)表のように、1つのセルに値がまとめられているデータが存在することがあります: |
サプライヤ | アイテム |
---|---|
A | Lentils, Garbanzo, Lima |
B | Apples, Oranges, Lemons |
C | Quinoa, Rice, Chia |
店舗とランクに基づいて値を分けるには、最初に次の表のような新しい表を作成します: |
A | B | C | D | |
---|---|---|---|---|
1 | ランク | A | B | C |
2 | 1 | |||
3 | 2 | |||
4 | 3 |
サプライヤ Aのランク1位の品目である「Lentils」を返すには、新しい表のセルB2で次のような数式を使用すると、サプライヤ Aのランク1位の品目である「Lentils」が返されます: この数式では、以下の引数が使用されています:
|
上の数式を簡単に変更して、ほかのサプライヤやほかの品目の表を完成できます。
|
その他の例 |
---|
A1を「marina@example.com john@example.ca mike@example.de」とします。 「=REGEX.EXTRACT(A1, "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})")」は「marina@example.com」を返します。 「=REGEX.EXTRACT(A1, "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})", 2)」は「john@example.ca」を返します。 「=REGEX.EXTRACT(A1, "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})", -1)」は「mike@example.de」を返します。 「=REGEX.EXTRACT(A1, "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})", 1, 1)」は「marina」を返します。 「=REGEX.EXTRACT(A1, "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})", 2, 2)」は「example.ca」を返します。 |