人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Excelで漢数字を数値に変換する方法を教えてください。正確にいいますと、数字は半角でも単位が漢数字の万進を使用しているデータを数値に変換したいと思っています。たとえば、セルに「1億円」と入力されていたら、「100,000,000」と変換したいです。
変換したいデータは、「億円」だけでなく、「万円」、「兆円」も含まれています。
よろしくお願いいたします。

●質問者: konakonan
●カテゴリ:コンピュータ 学習・教育
✍キーワード:Excel セル データ 入力 単位
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● GreenStar
●20ポイント

ゼロの数を数えるためカンマを入れてありますが、VALUEで数値に変換した時点でカンマは無視されます!!

カンマが必要ならセルの書式で設定しておいてください!!

=VALUE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"万円","0,000"),"億円","00,000,000"),"兆円","00,000,000,000"))

http://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu/moji_2.htm#subs...

◎質問者からの返答

早速ありがとうございます!

しかし、パターン2のような小数データが一部含まれており、エラーになってしまいます。

パターン1 12兆円 → ?1,200,000,000,000

パターン2 12.3兆円 → #VALUE!

こういう場合は文字列置換ではうまくいかないのでしょうか?


2 ● きあ
●20ポイント

=MID(A1,1,IF(ISERROR(FIND("兆",$A1)),0,FIND("兆",$A1))-1)*1000000000000+MID(A1,IF(ISERROR(FIND("兆",$A1)),0,FIND("兆",$A1))+1,IF(ISERROR(FIND("億",$A1)),0,FIND("億",$A1))-IF(ISERROR(FIND("兆",$A1)),0,FIND("兆",$A1))-1)*100000000+MID(A1,IF(ISERROR(FIND("億",$A1)),0,FIND("億",$A1))+1,IF(ISERROR(FIND("万",$A1)),0,FIND("万",$A1))-IF(ISERROR(FIND("億",$A1)),0,FIND("億",$A1))-1)*10000



一足遅れたけどこれでどおでしょう。計算してるんでたぶん小数点も行けるかな?

http://q.hatena.ne.jp/answer

◎質問者からの返答

ありがとうございます。しかし、#VALUE!のままでした。なぜでしょうか?


3 ● HALSPECIAL
●40ポイント ベストアンサー

兆円、億円、万円 のみで良いのなら、

ユーザー定義関数を使って、次のようにできます。

VBAは使えますか?

Option Explicit

Public Function 変換(ByVal cell As Range) As Double
 Dim str As String
 str = cell.Value
 
 str = StrConv(str, vbNarrow) '念のため半角
 str = Replace(str, "兆円", " * 1000000000000")
 str = Replace(str, "億円", " * 100000000")
 str = Replace(str, "万円", " * 10000")
 
 変換 = Application.Evaluate(str)

End Function

この関数を標準モジュールに記述します。


使用例

A1のセルに、2.5億円

という風に、小数で、すべて全角で入力してみます。

B1のセルに、

= 変換(A1)

という風に数式を入力します。


なお、セルの表示形式を、カンマ表示で表示できるように設定してください。

◎質問者からの返答

うまくいきました!!

ありがとうございます。”*10000”で置換するというアイディアは目からうろこでした。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ