发布时间:2019-07-31 12:56:15
EXCEL中如何把阿拉伯数字直译成中文大家,如001变成零零壹、023变成零贰叁
假设该两字符串位于E38:E39;
可以利用辅助单元格实现:
H38:
=IF(COLUMN(A$1)>LEN($E38),"",CHOOSE(MID($E38,COLUMN(A$1),1)+1,"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"))
右下拉复制到39行及H列右边足够的列数,比如:H38:O39
G38:
=CONCAT(H38:O38)
如果是2016之前的版本,没有CONCAT()函数,则需:
=H38&I38&J38&K38&L38&M38&N38&O38
下拉复制到G39即可。
这样,在G38及G39可返回所需的中文大写。
见附图:
用vba写个自定义函数
Function DX(Rng As Range)
Dim Str, s As String
Dim x As Integer
Dim A1
Dim A2
Application.Volatile
A1 = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
A2 = Array("零", "壹", "貮", "叁", "肆", "伍", "陆", "柒", "捌", "玖")
Str = ""
s = ""
Str = Rng.Value
If Str <> "" Then
For x = 1 To Len(Str)
If Mid(Str, x, 1) Like "[0-9]" Then
s = s & Application.WorksheetFunction.Lookup(Int(Mid(Str, x, 1)), A1, A2)
Else
s = s & Mid(Str, x, 1)
End If
Next
End If
DX = s
End Function
最笨的办法:SUBSTITUTE函数嵌套10次。