こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルで文字列の中から数字の抽出

数字のみ抽出したいのですが、複数の人がバラバラに入力して困っています。
以下の2点ができなくて挫折しました。
(1)全角と半角が混在 → 半角の数字にして抽出
(2)マイナス「-」も抽出したい。
自分でもネットで検索してみたのですが、数字を抽出する例はいくつかあるものの、
全角の数字が入るとダメだったり、マイナスも抽出できるものを見つけることができませんでした。
どうかよろしくお願いします。

投稿日時 - 2019-08-17 00:34:15

QNo.9646413

困ってます

質問者が選んだベストアンサー

マイナスが数字の前にだけ存在し数字は金額にしか使われないのでしたら
=MID(ASC(A1),MIN(FIND({"-",0,1,2,3,4,5,6,7,8,9},ASC(A1)&"-" &1234567890)),LEN(ASC(A1))*11-SUM(LEN(SUBSTITUTE(ASC(A1),{"-",0,1,2,3,4,5,6,7,8,9},))))

投稿日時 - 2019-08-17 07:03:39

お礼

ありがとうございます。
したい事ができるようになりました。
感謝です。

投稿日時 - 2019-08-17 07:10:29

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

=IF(ISERROR(FIND("-"&(MID(SUBSTITUTE(ASC(A1),"円",""),MATCH(TRUE,ISNUMBER(1*MID(SUBSTITUTE(ASC(A1),"円",""),ROW(INDIRECT("1:"&LEN(SUBSTITUTE(ASC(A1),"円","")))),1)),0),3)),SUBSTITUTE(ASC(A1),"円",""))),(MID(SUBSTITUTE(ASC(A1),"円",""),MATCH(TRUE,ISNUMBER(1*MID(SUBSTITUTE(ASC(A1),"円",""),ROW(INDIRECT("1:"&LEN(SUBSTITUTE(ASC(A1),"円","")))),1)),0),3))*1,-(MID(SUBSTITUTE(ASC(A1),"円",""),MATCH(TRUE,ISNUMBER(1*MID(SUBSTITUTE(ASC(A1),"円",""),ROW(INDIRECT("1:"&LEN(SUBSTITUTE(ASC(A1),"円","")))),1)),0),3)))
【お断り】上式は必ず配列数式として入力のこと

投稿日時 - 2019-08-17 01:26:08

お礼

回答ありがとうございます。
試してみたのですが、「入力した数式は正しくありません。」
と言う表示が出てしまいます。
「配列数式として入力」の意味が分からないので調べてみます。

投稿日時 - 2019-08-17 07:09:19

あなたにオススメの質問