電子書籍の厳選無料作品が豊富!

スプレッドシート初心者です。

セルAに「123cm 45cm 56cm」と入力すると、セルBに「123」,セルCに「45」,セルDに「56」と自動入力される仕組みを実装したいです。

セルBに数にマッチする正規表現「\d*」を使用すれば「123」を検索することはできますが、2番目の数字「45」と3番目の数字「56」を検索する方法が分かりません。

ネットで調べると「\d*{n}」でn-1番目にマッチした数字を検索できるとの記載がありましたが、スプレッドシートではエラーが返されてしまいました。

ご回答宜しくお願い致します。

A 回答 (3件)

以下のようなものにも対応したい場合は下のような感じでしょうか・・・。


セルA:123cm × 45cm × 56cm
セルA:縦123 横45 高さ56
セルA:123cm 45cm 56cm 789cm

セルB:=REGEXEXTRACT(REGEXEXTRACT(A1,"(\d+\D*){1}"),"\d+")
セルC:=REGEXEXTRACT(REGEXEXTRACT(A1,"(\d+\D*){2}"),"\d+")
セルD:=REGEXEXTRACT(REGEXEXTRACT(A1,"(\d+\D*){3}"),"\d+")

もっとスマートな回答をご希望であれば、
すみませんが他の方の回答をお待ちいただければと。
    • good
    • 1

これでも希望に合わなさそうでしょうか?


セルA:1234cm 567cm 891cm
セルB:=REGEXEXTRACT(A1,"(\d*cm ?){1}")
セルC:=REGEXEXTRACT(A1,"(\d*cm ?){2}")
セルD:=REGEXEXTRACT(A1,"(\d*cm ?){3}")

あと、GASを使ってもいいのかどうか書いておくと、
より良いアドバイスが付くかもしれませんね。
    • good
    • 1

どうしても正規表現がいいのでしょうか?



例えば以下だとどうですか?
セルA:123cm 45cm 56cm
セルB:=SPLIT(substitute(A1,"cm","")," ")

これで以下のように自動入力されます。
セルB:123
セルC:45
セルD:56
    • good
    • 1
この回答へのお礼

早速のご回答ありがとうございます。

ご指摘の方法を試しましたところ、実際に私が実現したい内容を実現することができました。
しかし、やはり正規表現で順番を指定する方法に興味があります。

ご提案いただいた内容では、
「123cm 45cm 56cm」以外の内容、例えば「123cm × 45cm × 56cm」や「縦123 横45 高さ56 (単位はcm)」という入力内容に対しては対処できませんし、対応させようとすると記述が複雑になってしまうかと思います。

また、何番目かを指定できれば、「123cm 45cm 56cm 789cm」という入力があった場合に4番目のセルを上書きしてしまう可能性を排除できるかと思います。

宜しくお願い致します。

お礼日時:2022/02/27 14:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す