一、如何将数字转换成人民币大写?
有时候,为了方便读取数字,我们通常会将数字转换成人民币大写的形式,下面主要通过以下2种方法来进行转换。
第一种,用自定义格式的方式进行转换
选中需要转换成人民币大写的数字---Ctrl+1---特殊----人民币大写----确定即可
第二种:用text函数进行转换
选中已经转换成人民币大写的数字----ctrl+1----自定义----类型----将其代码复制出来
在E2单元格输入公式:
=TEXT(D2,"[DBNum2][$RMB]G/通用格式;[红色][DBNum2][$RMB]G/通用格式")
二、 如何将数字转换成财务大写金额?
在填制报销单的时候,我们经常需要对报销的金额转换成财务大写金额的形式,如何转换呢?
只需在E2单元格输入公式:
=TEXT(INT(D2),"[dbnum2]")&TEXT(RIGHT(D2*100,2),"元[dbnum2]0角0分")
具体的步骤为:
1.先用INT函数将D2单元格中的整数部分提取出来, 再用text函数将其转换成大写的形式
2.将D2单元格中的数字乘以100,用right函数提取右边的2位数,再用text函数将其转换成大写的元0角0分的形式
3.最后用&连接符将其连接起来即可
function convertCurrency(currencyDigits) { // Constants: var MAXIMUM_NUMBER = 99999999999.99; // Predefine the radix characters and currency symbols for output: var CN_ZERO = "零"; var CN_ONE = "壹"; var CN_TWO = "贰"; var CN_THREE = "叁"; var CN_FOUR = "肆"; var CN_FIVE = "伍"; var CN_SIX = "陆"; var CN_SEVEN = "柒"; var CN_EIGHT = "捌"; var CN_NINE = "玖"; var CN_TEN = "拾"; var CN_HUNDRED = "佰"; var CN_THOUSAND = "仟"; var CN_TEN_THOUSAND = "万"; var CN_HUNDRED_MILLION = "亿"; var CN_SYMBOL = ""; var CN_DOLLAR = "元"; var CN_TEN_CENT = "角"; var CN_CENT = "分"; var CN_INTEGER = "整"; // Variables: var integral; // Represent integral part of digit number. var decimal; // Represent decimal part of digit number. var outputCharacters; // The output result. var parts; var digits, radices, bigRadices, decimals; var zeroCount; var i, p, d; var quotient, modulus; // Validate input string: currencyDigits = currencyDigits.toString(); if (currencyDigits == "") { alert("你没有输入,请输入数字"); return ""; } if (currencyDigits.match(/[^,.\d]/) != null) { alert("你输入的不是数字,请输入数字"); return ""; } if ((currencyDigits).match(/^((\d{1,3}(,\d{3})*(.((\d{3},)*\d{1,3}))?)|(\d+(.\d+)?))$/) == null) { alert("你输入的汉字是非法格式,请重新输入!"); return ""; } // Normalize the format of input digits: currencyDigits = currencyDigits.replace(/,/g, ""); // Remove comma delimiters. currencyDigits = currencyDigits.replace(/^0+/, ""); // Trim zeros at the beginning. // Assert the number is not greater than the maximum number. if (Number(currencyDigits) > MAXIMUM_NUMBER) { alert("你输入的太长了"); return ""; } // Process the coversion from currency digits to characters: // Separate integral and decimal parts before processing coversion: parts = currencyDigits.split("."); if (parts.length > 1) { integral = parts[0]; decimal = parts[1]; // Cut down redundant decimal digits that are after the second. decimal = decimal.substr(0, 2); } else { integral = parts[0]; decimal = ""; } // Prepare the characters corresponding to the digits: digits = new Array(CN_ZERO, CN_ONE, CN_TWO, CN_THREE, CN_FOUR, CN_FIVE, CN_SIX, CN_SEVEN, CN_EIGHT, CN_NINE); radices = new Array("", CN_TEN, CN_HUNDRED, CN_THOUSAND); bigRadices = new Array("", CN_TEN_THOUSAND, CN_HUNDRED_MILLION); decimals = new Array(CN_TEN_CENT, CN_CENT); // Start processing: outputCharacters = ""; // Process integral part if it is larger than 0: if (Number(integral) > 0) { zeroCount = 0; for (i = 0; i < integral.length; i++) { p = integral.length - i - 1; d = integral.substr(i, 1); quotient = p / 4; modulus = p % 4; if (d == "0") { zeroCount++; } else { if (zeroCount > 0) { outputCharacters += digits[0]; } zeroCount = 0; outputCharacters += digits[Number(d)] + radices[modulus]; } if (modulus == 0 && zeroCount < 4) { outputCharacters += bigRadices[quotient]; } } outputCharacters += CN_DOLLAR; } // Process decimal part if there is: if (decimal != "") { for (i = 0; i < decimal.length; i++) { d = decimal.substr(i, 1); if (d != "0") { outputCharacters += digits[Number(d)] + decimals[i]; } } } // Confirm and return the final output string: if (outputCharacters == "") { outputCharacters = CN_ZERO + CN_DOLLAR; } if (decimal == "") { outputCharacters += CN_INTEGER; } outputCharacters = CN_SYMBOL + outputCharacters; return outputCharacters; }
会计和财务人员在计算工资等薪酬信息的使用,通常需要输入或者转换中文大写数字,如何把阿拉伯数字“123”转换为中文大写数字“壹贰叁”,效率最低的做法是通过手动输入,其实有几个简便的方法可以选择,今天就给大家介绍一下转换中文大写数字的三种方法,第三种最为方便但却很少人知道。
一、通过设置单元格数字格式1、首先选中需要转换为大写数字的单元格数字,右键选择设置单元格格式;
2、在弹出的对话框中选择数字殊分类下的中文大写数字,然后点击确定就可以了。
这种通过设置单元格格式转换大写数字的方法虽然很快速便捷,但是这种方法有一个很大的弊端,就是只能转换整数。对于有小数的数据,转换出来的大写数字则有些不伦不类了。所以建议这种方法在没有小数的情况下批量使用。
二、通过函数进行转换1、整数的中文大写转换
这个函数同样只能转换整数的数字,和设置单元格格式不同的是,对于小数数字将会自动进行四舍五入为整数转换。
具体函数为:=NUMBERSTRING(B4,2)
备注:函数中B4为需要转换数字的单元格
2、小数的中文大写转换
如果想要把小数的角、分都转换出来,则可以使用下面这个函数,函数稍微复杂一点,但是你只管复制就好,可以快速完整的解决小数的中文大写转换需求。
具体函数为:=TEXT(INT(B4),"[DBNUM2]")&"元"&TEXT(MID(B4,LEN(INT(B4))+2,1),"[DBNUM2]D角")&TEXT(MID(B4,LEN(INT(B4))+3,1),"[DBNUM2]D分")
备注:函数中B4为同样为需要转换数字的单元格
三、巧用搜狗输入法输入如果你觉得设置单元格格式比较麻烦,使用函数又记不住,那么你可以使用搜狗输入法“V+数字”进行快速输入。
整数的输入方法
小数的输入方法
使用搜狗输入法输入大写数字还是非常方便的,唯一的缺点就是不能批量输入,在效率上可能要差一些。
内容拓展:
搜狗输入法除了可以使用V+数字输入中文大写数字外,还可以使用“V+2020.04.12”快速输入日期,如下图
此外搜索输入法“V模式”还可以进行函数和算式计算,感兴趣的朋友可以了解一下。
总结上述提到的三种将阿拉伯数字转换为中文大写数字的方法,设置单元格格式无法进行小数的转换,搜狗输入法在批量操作上效率要差一些,所以我建议大家还是选择函数的方法来实现转换大写数字的需求。如果你害怕自己记不住函数,那还不赶紧收藏一下,以备不时只用。
本文原创,谢绝转载。