返回列表 上一主題 發帖

如何將國字轉為數字

如何將國字轉為數字

請問有人會將國字轉為數字
例如:陸佰轉為600
          伍仟陸佰柒拾轉為5670

感謝

http://blog.xuite.net/hcm19522/twblog/136417260

TOP

回復 2# hcm19522

非常感謝
雖然我看不懂
但解決了我的問題了

TOP

本帖最後由 ML089 於 2015-12-25 08:27 編輯

回復 1# liling81

參考2樓的資料,於D2輸入公式,下拉複製公式

D2 =SUM((1-ISERR(FIND({"壹","貳","參","肆","伍","陸","柒","捌","玖"}&{"萬";"仟";"佰";"拾";"元"},A2)))*{1,2,3,4,5,6,7,8,9}*10^{4;3;2;1;0})&"元整"

只能計算 玖萬玖仟玖佰玖拾玖元以下

6天不在家沒有辦法立即回覆
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 4# ML089


    是的,我正想詢問
拾萬以上的要怎麼設定
謝謝

TOP

本帖最後由 yen956 於 2015-12-25 11:53 編輯

回復 5# liling81
試試VBA:
'========= 使用方法 ==============
'1. 按 Alt+F11 直接進入VBA編輯視窗(可避開「開發人員」的檢查)
'2. 插入→模組(Module1)
'3. 將下列兩個 Function 貼到 Module1
'4. 回到工作頁
'5. 假定 B2=伍萬陸仟柒佰捌拾元整
'6. 任一格 =CH2Num(B2)
  1. '========= 將中文金額至千位轉成數值, 供下列 Function 呼叫用 ==============
  2. Function CHS2Num(CH As String) As Integer
  3.     Dim FD,  CN As String, Num As Integer
  4.     CN = "壹貳參肆伍陸柒捌玖"
  5.     Num = 0
  6.     FD = Application.Find("仟", CH)
  7.     If IsNumeric(FD) Then
  8.         FD = Application.Find(Left(CH, 1), CN)
  9.         If IsNumeric(FD) Then
  10.             Num = Num + FD * 1000
  11.         End If
  12.     End If
  13.     FD = Application.Find("佰", CH)
  14.     If IsNumeric(FD) Then
  15.         FD = Application.Find(Mid(CH, FD - 1, 1), CN)
  16.         If IsNumeric(FD) Then
  17.             Num = Num + FD * 100
  18.         End If
  19.     End If
  20.     FD = Application.Find("拾", CH)
  21.     If IsNumeric(FD) Then
  22.         FD = Application.Find(Mid(CH, FD - 1, 1), CN)
  23.         If IsNumeric(FD) Then
  24.             Num = Num + FD * 10
  25.         End If
  26.     End If
  27.     FD = Application.Find(Right(CH, 1), CN)
  28.     If IsNumeric(FD) Then
  29.         Num = Num + FD
  30.     End If
  31.     CHS2Num = Num
  32. End Function

  33. '========= 將中文金額至兆位轉成數值 ==============
  34. Function CH2Num(CH As String) As Double
  35.     Dim FD, CNunit As String, Num As Double
  36.     Num = 0
  37.     CNunit = "萬億兆"
  38.     FD = Application.Find("兆", CH)
  39.     If IsNumeric(FD) Then
  40.         Num = Num + CHS2Num(Left(CH, FD - 1)) * 10 ^ 12
  41.         CH = Right(CH, Len(CH) - FD)
  42.     End If
  43.     FD = Application.Find("億", CH)
  44.     If IsNumeric(FD) Then
  45.         Num = Num + CHS2Num(Left(CH, FD - 1)) * 10 ^ 8
  46.         CH = Right(CH, Len(CH) - FD)
  47.     End If
  48.     FD = Application.Find("萬", CH)
  49.     If IsNumeric(FD) Then
  50.         Num = Num + CHS2Num(Left(CH, FD - 1)) * 10 ^ 4
  51.         CH = Right(CH, Len(CH) - FD)
  52.     End If
  53.     CH2Num = Num + CHS2Num(CH)
  54. End Function
複製代碼

TOP

回復 5# liling81

VBA 自訂函數法, 可到〔兆〕元:
http://forum.twbts.com/thread-16006-1-1.html

TOP

本帖最後由 ML089 於 2016-1-2 22:55 編輯

回復 5# liling81

若是資料量小可以使用下列公式,因為公式很耗計算

公式可以計算到[兆] 1~9999兆
=IF(COUNTIF(A2,"*元*"),IFERROR(LOOKUP(,0/FIND(TEXT(ROW($1:$9999),"[DBNum2]G/通用格式元"),A2),ROW($1:$9999)),0),0)
+IF(COUNTIF(A2,"*萬*"),IFERROR(LOOKUP(,0/FIND(TEXT(ROW($1:$9999),"[DBNum2]G/通用格式萬"),A2),ROW($1:$9999))*10^4,0),0)
+IF(COUNTIF(A2,"*億*"),IFERROR(LOOKUP(,0/FIND(TEXT(ROW($1:$9999),"[DBNum2]G/通用格式億"),A2),ROW($1:$9999))*10^8,0),0)
+IF(COUNTIF(A2,"*兆*"),IFERROR(LOOKUP(,0/FIND(TEXT(ROW($1:$9999),"[DBNum2]G/通用格式兆"),A2),ROW($1:$9999))*10^12,0),0)

公式可以計算到[億] 1~9999億
=IF(COUNTIF(A2,"*元*"),IFERROR(LOOKUP(,0/FIND(TEXT(ROW($1:$9999),"[DBNum2]G/通用格式元"),A2),ROW($1:$9999)),0),0)
+IF(COUNTIF(A2,"*萬*"),IFERROR(LOOKUP(,0/FIND(TEXT(ROW($1:$9999),"[DBNum2]G/通用格式萬"),A2),ROW($1:$9999))*10^4,0),0)
+IF(COUNTIF(A2,"*億*"),IFERROR(LOOKUP(,0/FIND(TEXT(ROW($1:$9999),"[DBNum2]G/通用格式億"),A2),ROW($1:$9999))*10^8,0),0)

公式可以計算到[萬] 1~9999萬元
=IF(COUNTIF(A2,"*元*"),IFERROR(LOOKUP(,0/FIND(TEXT(ROW($1:$9999),"[DBNum2]G/通用格式元"),A2),ROW($1:$9999)),0),0)
+IF(COUNTIF(A2,"*萬*"),IFERROR(LOOKUP(,0/FIND(TEXT(ROW($1:$9999),"[DBNum2]G/通用格式萬"),A2),ROW($1:$9999))*10^4,0),0)

公式可以計算到[元] 1~9999元
=IF(COUNTIF(A2,"*元*"),IFERROR(LOOKUP(,0/FIND(TEXT(ROW($1:$9999),"[DBNum2]G/通用格式元"),A2),ROW($1:$9999)),0),0)
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

非常感謝
大家都好熱心
這真是一個好所在
慢慢摸索中

TOP

        靜思自在 : 唯其尊重自己的人,才更勇於縮小自己。
返回列表 上一主題