Excel中金额小写自动转换大写
工作中经常会遇到将小写金额转换为大写金额的情况,每次都照着小写金额重新输入很麻烦也很容易出错,忽然想到excel中函数功能的强大,以下是近年来搜索总结的东东,保存一下,以备不时之需。
公式1:(将其中的B1 修改为你想转换的单元格即可,已验证可用。)
IF(ROUND(B1,2)=0,\"\m2]\")&\"元\整
\零\"),IF(ROUND(ABS(B1),2)>=1,\"零
\2]\")&\"角
\分\整\")))
公式2:(将其中的F4 修改为你想转换的单元格即可,已验证可用,如果为零,则显示零分)
IF(F4<1,IF(F4<0.1,TEXT(INT(F4*100),\"[DBNum2]G/通用格式\")&\"分
\通用格式\")&\"角整\通用格式\")&\"角
\"&TEXT(INT(F4*100)-INT(F4*10)*10,\"[DBNum2]G/通用格式\")&\"分\")),TEXT(INT(F4),\"[DBNum2]G/通用格式\"&\"元
\")&IF((INT(F4*10)-INT(F4)*10)=0,IF((INT(F4*100)-INT(F4*10)*10)=0,\"\零
\"),IF((INT(F4*0.1)-INT(F4)*0.1)=0,\"零\通用格式\")&\"角\")&IF((INT(F4*100)-INT(F4*10)*10)=0,\"整
\通用格式\")&\"分\"))
公式3:(将其中的B10修改为你想转换的单元格即可,已验证可用,若为零,则显示零分)
IF(B10<1,IF(B10<0.1,TEXT(INT(B10*100),\"[DBNum2]G/通用格式\")&\"分
\通用格式\")&\"角整\通用格式\")&\"角
\"&TEXT(INT(B10*100)-INT(B10*10)*10,\"[DBNum2]G/通用格式\")&\"分\")),TEXT(INT(B10),\"[DBNum2]G/通用格式\"&\"元
\")&IF((INT(B10*10)-INT(B10)*10)=0,IF((INT(B10*100)-INT(B10*10)*10)=0,\"\零\"),IF((INT(B10*0.1)-INT(B10)*0.1)=0,\"零
\通用格式\")&\"角\")&IF((INT(B10*100)-INT(B10*10)*10)=0,\"整
\通用格式\")&\"分\"))
使用加载宏方法:(已验证可用,如果为零,则显示一个 整 字。)
“工具栏”→ “宏”→ “Visual Basic编辑器”,在“Visual Basic编辑器”中顶部选“插入”→ “模块”,在“模块”对话框中选“通用”,并在编辑区域内粘贴以下内容:
Function NtoC(n) 'n as single Const cNum = \"零壹贰叁肆伍陆柒捌玖-万仟佰拾亿仟佰拾万仟佰拾元角分\" Const cCha = \"零仟零佰零拾零零零零零亿零万零元亿万零角零分零整-零零零零零亿万元亿零整整\" NtoC = \"\" sNum = Trim(Str(Int(n * 100))) For i = 1 To Len(sNum) '逐位转换 NtoC = NtoC + Mid(cNum, (Mid(sNum, i, 1)) + 1, 1) + Mid(cNum, 26 - Len(sNum) + i, 1) Next For i = 0 To 11 '去掉多余的零 NtoC = Replace(NtoC, Mid(cCha, i * 2 + 1, 2), Mid(cCha, i + 26, 1)) Next End Function 然后单击“保存”,关闭“Visual Basic编辑器”,回到“工作表1”,输入函数“NtoC(单元格)”即可。