標題:
如何將國字轉為數字
[打印本頁]
作者:
liling81
時間:
2015-12-24 15:14
標題:
如何將國字轉為數字
請問有人會將國字轉為數字
例如:陸佰轉為600
伍仟陸佰柒拾轉為5670
感謝
作者:
hcm19522
時間:
2015-12-24 16:08
http://blog.xuite.net/hcm19522/twblog/136417260
作者:
liling81
時間:
2015-12-24 16:45
回復
2#
hcm19522
非常感謝
雖然我看不懂
但解決了我的問題了
作者:
ML089
時間:
2015-12-24 23:27
本帖最後由 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天不在家沒有辦法立即回覆
作者:
liling81
時間:
2015-12-25 10:03
回復
4#
ML089
是的,我正想詢問
拾萬以上的要怎麼設定
謝謝
作者:
yen956
時間:
2015-12-25 11:49
本帖最後由 yen956 於 2015-12-25 11:53 編輯
回復
5#
liling81
試試VBA:
'========= 使用方法 ==============
'1. 按 Alt+F11 直接進入VBA編輯視窗(可避開「開發人員」的檢查)
'2. 插入→模組(Module1)
'3. 將下列兩個 Function 貼到 Module1
'4. 回到工作頁
'5. 假定 B2=伍萬陸仟柒佰捌拾元整
'6. 任一格 =CH2Num(B2)
'========= 將中文金額至千位轉成數值, 供下列 Function 呼叫用 ==============
Function CHS2Num(CH As String) As Integer
Dim FD, CN As String, Num As Integer
CN = "壹貳參肆伍陸柒捌玖"
Num = 0
FD = Application.Find("仟", CH)
If IsNumeric(FD) Then
FD = Application.Find(Left(CH, 1), CN)
If IsNumeric(FD) Then
Num = Num + FD * 1000
End If
End If
FD = Application.Find("佰", CH)
If IsNumeric(FD) Then
FD = Application.Find(Mid(CH, FD - 1, 1), CN)
If IsNumeric(FD) Then
Num = Num + FD * 100
End If
End If
FD = Application.Find("拾", CH)
If IsNumeric(FD) Then
FD = Application.Find(Mid(CH, FD - 1, 1), CN)
If IsNumeric(FD) Then
Num = Num + FD * 10
End If
End If
FD = Application.Find(Right(CH, 1), CN)
If IsNumeric(FD) Then
Num = Num + FD
End If
CHS2Num = Num
End Function
'========= 將中文金額至兆位轉成數值 ==============
Function CH2Num(CH As String) As Double
Dim FD, CNunit As String, Num As Double
Num = 0
CNunit = "萬億兆"
FD = Application.Find("兆", CH)
If IsNumeric(FD) Then
Num = Num + CHS2Num(Left(CH, FD - 1)) * 10 ^ 12
CH = Right(CH, Len(CH) - FD)
End If
FD = Application.Find("億", CH)
If IsNumeric(FD) Then
Num = Num + CHS2Num(Left(CH, FD - 1)) * 10 ^ 8
CH = Right(CH, Len(CH) - FD)
End If
FD = Application.Find("萬", CH)
If IsNumeric(FD) Then
Num = Num + CHS2Num(Left(CH, FD - 1)) * 10 ^ 4
CH = Right(CH, Len(CH) - FD)
End If
CH2Num = Num + CHS2Num(CH)
End Function
複製代碼
作者:
准提部林
時間:
2015-12-25 12:43
回復
5#
liling81
VBA 自訂函數法, 可到〔兆〕元:
http://forum.twbts.com/thread-16006-1-1.html
作者:
ML089
時間:
2016-1-1 07:22
本帖最後由 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)
作者:
liling81
時間:
2016-1-2 17:38
非常感謝
大家都好熱心
這真是一個好所在
慢慢摸索中
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)