Google スプレッドシートで文字列から数値だけを抽出する : REGEXEXTRACT
答え
先に答えを示します。
前提として、対象の文字列がA1
にあるとします。
以下の式により数値だけを抽出することができます。、
=VALUE(REGEXEXTRACT(A1,"[0123456789,-]{1,}"))
解説
この関数では、2つの関数を利用しています。
VALUE
文字列を数値に変換します。
抽出される文字列が 12,345
のようにカンマ区切りとなる場合もあるが、それも空気を読んで正確に数値に変換してくれます。
=VALUE("12,345")
REGEXEXTRACT
正規表現(REGEX)に従って、一致する部分文字列を取り出します(EXTRACT)。
第1引数にテキスト、第2引数に正規表現が入ります。
=REGEXEXTRACT("今日は1,000円の弁当を食べた", "[0123456789,-]{1,}")
正規表現
正規表現とは文字列の集合を一つの文字列で表現する方法です(Wiki調べ)。*1
今回の正規表現を説明します。
[0123456789,-]{1,}
[0123456789,-]
は 0123456789,-
の文字のうち1つでも一致すればOKということを条件とする正規表現です。
{1,}
は 1 文字以上の文字列長であることを条件とする正規表現です。
この2つを組み合わせたものが今回の正規表現1文字以上の数値(マイナス、カンマも含む)となります。
エラー処理
失敗した時に変な結果が出ないようにするには IFERROR
を使います。
=IFERROR(VALUE(REGEXEXTRACT(A1,"[0123456789,-]{1,}")),0)
*1:軽い具体例を言うと、「数字だけ」、「超○○」、「○○円」のようにある一定の条件を持った文字列を示す時に使う文字列です。
ファミリーマートのハムチーズエッグマフィンとアレのコスパ比較
- 販売者:敷島製パン株式会社
- お問い合せ先:パスコお客様相談室 0120-084-835
- 1個あたり(目安)
- エネルギー 299kcal
- たんぱく質 9.8g
- 脂質 14.4g
- 炭水化物 32.6g
- 食塩相当量 1.9g
これが新発売されていました
税込 138円
てか、思いっきりアレですよね
エッグマックマフィン | メニュー情報 | McDonald's
- エネルギー 310 (kcal)
- たんぱく質 19.7 (g)
- 脂質 13.3 (g)
- 炭水化物 26.7 (g)
- 食塩相当量 1.7 (g)
- ナトリウム 658 (mg)
- カリウム 186 (mg)
- カルシウム 168 (mg)
- リン 267 (mg)
- 鉄 1.6 (mg)
- ビタミンA 116 (μg)
- ビタミンB1 0.22 (mg)
- ビタミンB2 0.33 (mg)
- ナイアシン 2.7 (mg)
- ビタミンC 0 (mg)
- コレステロール 232 (mg)
- 食物繊維 1.8 (g)
こちらは 250円
112円 の差です
112円払うと気持ちタンパク質の多いものを食べることができます