エクセル・スプレッドシートで「0,000円」形式の文字列を数値に変換する方法
エクセルやスプレッドシートで、以下のようなとき、合計は出せません。
なぜなら「12,000円」などの値は、数値ではなく文字列と判断されているからです。
「東京都 + 北海道 = ?」と言っているようなものです。
なので「12,000円」などを関数を使って数値に変換してあげる必要があります。
スプレッドシートの例で話していきます。
エクセルとスプレッドシートで若干異なるところがありますが、随時説明していきます。
目次
結論
スプレッドシートの場合
置き換えをする「REGEXREPLACE()」関数と
数値に変換する「VALUE()」関数を組み合わせて、次のようにします。
=VALUE(REGEXREPLACE(B2,"[^0-9]",""))
「B2」の部分は適宜変更してください。
正規表現を使って半角数字以外を消し、それを数値に変換しています。
するとこのように「12,000円」が「12000」という数値に変わりました。
合計も出せました。
エクセルの場合
エクセルには「REGEXREPLACE()」関数は無いので
「SUBSTITUTE()」関数で「円」と「,」を消し、VALUE()で数値に変換します。
=VALUE(SUBSTITUTE(SUBSTITUTE(B2,"円",""),",",""))
「B2」の部分は適宜変更してください。
全角数字の場合
このような場合を考えます。
「ASC()」関数で全角を半角に変えてから処理します。
=VALUE(REGEXREPLACE(ASC(B2),"[^0-9]",""))
「B2」の部分は適宜変更してください。
数値に変わり、合計も出せました。
エクセルの場合
全角でも半角でも、先ほどの関数で大丈夫です。
=VALUE(SUBSTITUTE(SUBSTITUTE(B2,"円",""),",",""))
コメント
「私の環境では違った!」などありましたらお気軽にコメントください。
お役に立てましたら応援をお待ちしております!
頂いた応援は子育てに活用させていただきます。
または以下のボタンからなにか買って応援 (PR)
Amazon
楽天市場
Yahoo!ショッピング