• ベストアンサー

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

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

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.2

マイナスが数字の前にだけ存在し数字は金額にしか使われないのでしたら =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},))))

value100100
質問者

お礼

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

その他の回答 (1)

  • msMike
  • ベストアンサー率20% (364/1804)
回答No.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))) 【お断り】上式は必ず配列数式として入力のこと

value100100
質問者

お礼

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