小写转大写公式
execle表格小写转换为大写的公式

题目:如何使用公式将Excel表格中的小写字母转换为大写字母在Excel表格中,有时候我们需要将一些包含小写字母的单元格内容转换为大写字母。
虽然Excel提供了大写函数来实现这一功能,但却无法直接对单元格中的小写字母进行转换。
我们可以通过编写公式来实现这一功能。
下面我将介绍如何使用公式将Excel表格中的小写字母转换为大写字母,希望对您有所帮助。
1. 使用PROPER函数在Excel表格中,可以使用PROPER函数来将一个字符串中的每个单词的首字母大写。
虽然这个函数并不能直接将小写字母转换为大写字母,但我们可以将其与其他函数结合使用,来实现我们的目的。
我们可以创建一个辅助列,将需要转换的单元格内容放入该列中。
使用PROPER函数将小写字母转换为大写字母,并将结果输出到另一个列中。
具体公式如下:假设需要转换的单元格内容为A1,则在B1单元格中输入以下公式:=PROPER(A1)这样,B1单元格中的内容就会将小写字母转换为大写字母。
2. 使用EXACT函数和UPPER函数除了使用PROPER函数外,还可以结合使用EXACT函数和UPPER函数来实现将小写字母转换为大写字母的功能。
在一个辅助列中,我们可以利用EXACT函数来判断单元格中的内容是否为小写字母。
EXACT函数可以比较两个文本字符串是否完全相同,如果完全相同则返回TRUE,否则返回FALSE。
具体公式如下:假设需要转换的单元格内容为A1,则在C1单元格中输入以下公式:=EXACT(A1, UPPER(A1))这样,C1单元格中的内容将返回TRUE或FALSE,判断单元格中的内容是否为小写字母。
接下来,我们可以利用IF函数来根据C1单元格中的结果来执行相应的操作。
如果C1为TRUE,则说明该单元格内容为小写字母,我们可以使用UPPER函数将其转换为大写字母,具体公式如下:假设需要转换的单元格内容为A1,则在D1单元格中输入以下公式:=IF(C1, UPPER(A1), A1)这样,D1单元格中的内容将根据C1单元格的结果来进行相应的转换操作。
EXCEL小写转大写公式

=IF(K20=0,"",IF(ABS(K20)<0.995,"",TEXT(INT(ROUND(ABS(K20),2)),"[DBNum2]")&"元")&IF(RIGHT(TEXT(K20,".00"),2)*1=0,IF(ABS(K20)<0.005,"","整"),TEXT(IF(ABS(K20)<0.095,"",LEFT(RIGHT(TEXT(K20,".00"),2))),"[dbnum2]")&IF(LEFT(RIGHT(TEXT(K20,".00"),2))*1=0,"","角")&IF(RIGHT(TEXT(K20,".00"))*1=0,"整",TEXT(RIGHT(TEXT(K20,".00")),"[dbnum2]")&"分")))
=IF(ABS(K20)=0,"",IF(K20<0,"负",)&IF(INT(ABS(K20)),TEXT(INT(ABS(K20)),"[dbnum2]")&"元",)&IF(INT(ABS(K20)*10)-INT(ABS(K20))*10,TEXT(INT(ABS(K20)*10)-INT(ABS(K20))*10,"[dbnum2]")&"角",IF(INT(ABS(K20))=ABS(K20),,IF(ABS(K20)<0.1,,"零")))&IF(ROUND(ABS(K20)*100-INT(ABS(K20)*10)*10,),TEXT(ROUND(ABS(K20)*100-INT(ABS(K20)*10)*10,),"[dbnum2]")&"分","整"))
小写金额转换大写金额函数公式

小写金额转换大写金额函数公式1.概述在日常生活和工作中,经常会与人进行金融交易,其中包括付款和收款。
在执行这些交易时,我们需要将商品或服务的价格转换为文字,称为大写金额。
大写金额与阿拉伯数字金额相比更加容易理解和记录,也可以提高交易的清晰度,因此在许多场合非常必要。
本文将介绍一个通用的小写金额转换大写金额的函数公式。
2.函数公式以下是一种通用的小写金额转换大写金额的函数公式:def digit_uppercase(digit):if digit>999999999999.99or digit<0:return"输入金额过大或者过小,请重新输入!"digits,fractions=str(round(digit,2)).split('.')digits=digits[::-1]result=[]if len(digits)>0:result.append('圆')zero_flag=Falsefor index in range(len(digits)):if digits[index]!='0':zero_flag=Falseresult.append('壹贰叁肆伍陆柒捌玖'[int(digits[index])])if index==0:result.append('亿')elif index==1:result.append('拾')elif index==2:result.append('佰')elif index==3:result.append('仟')elif index==4:result.append('万')elif index==5:result.append('拾')elif index==6:result.append('佰')elif index==7:result.append('仟')else:if not zero_flag:zero_flag=Trueresult.append('零')if index==4or index==8:result.append('万')if len(digits)==1or digits[1]=='0': result.append('元整')if len(digits)>1and digits[1]!='0': result.append('元')if len(digits)>1:for index in range(1,len(digits)): if index==1:result.append('角')elif index==2:result.append('分')if digits[index]!='0':result.append('壹贰叁肆伍陆柒捌玖'[int(digits[index])])else:result.append('零元整')return''.join(result[::-1])3.函数公式详解这个函数的输入参数是小写金额digit,小数点后最多只能有两位数字。
excel英文大小写转换公式

excel英文大小写转换公式在日常工作中,我们经常需要对英文单词进行大小写转换。
例如,将全大写的标题转换为首字母大写的标题,或将全小写的文本转换为首字母大写的文本。
在 Excel 中,我们可以使用公式来快速实现大小写转换,提高工作效率。
一、将英文文本转换为全大写或全小写要将英文文本转换为全大写或全小写,可以使用 Excel 中的UPPER 和 LOWER 函数。
这两个函数的使用方法非常简单,只需在函数中输入需要转换的文本即可。
例如,将英文文本“Excel Formula”转换为全大写,只需输入“=UPPER('Excel Formula')”,结果会显示为“EXCEL FORMULA”。
二、将英文文本转换为首字母大写要将英文文本转换为首字母大写,可以使用 Excel 中的 PROPER 函数。
这个函数的使用方法也很简单,只需在函数中输入需要转换的文本即可。
例如,将英文文本“excel formula”转换为首字母大写,只需输入“=PROPER('excel formula')”,结果会显示为“Excel Formula”。
需要注意的是,PROPER 函数只会将单词的第一个字母转换为大写,如果单词中有数字、符号或连字符,这些字符后面的字母不会被转换。
因此,在使用 PROPER 函数时要注意文本的格式。
三、将英文文本转换为全角或半角字符在处理中文文本时,有时需要将英文字符转换为全角或半角字符。
在 Excel 中,我们可以使用 UNICODE 函数和 CHAR 函数来实现这一功能。
UNICODE 函数可以将英文字符转换为 Unicode 编码,例如“=UNICODE('a')”会返回 Unicode 编码为 97 的字符。
而 CHAR 函数则可以将 Unicode 编码转换为字符,例如“=CHAR(97)”会返回字符“a”。
通过组合使用这两个函数,我们就可以将英文字符快速转换为全角或半角字符。
大小写转换公式

大小写转换公式一、英文单词首字母大写。
函数:Proper。
功能:将指定的文本字符串中各英文单词的第一个字母转换为大写,其他字符转换为小写。
语法结构:=Proper(字符串)。
目的:将I love your中的首字母大写。
方法:在目标单元格中输入公式:=PROPER(B3)。
二、英文单词中的字母全部大写。
函数:Upper。
功能:将文本字符串转换为字母全部大写的形式。
语法结构:=Upper(字符串)。
目的:将I love your中的全部英文字母全部大写。
方法:在目标单元格中输入公式:=UPPER(B4)。
三、将英文单词中的字母全部小写。
函数:Lower。
功能:将一个文本字符串中的所有字母转换为小写。
语法结构:=Lower(字符串)。
目的:将I LOVE YOUR中的英文字母全部小写。
方法:在目标单元格中输入公式:=LOWER(B5)。
四、将单个小写的英文字母转换为大写。
函数:Char。
功能:根据计算机中的字符集,返回有代码数字指定的字符。
语法结构:=Char(数值)。
目的:将字母a转换为A。
方法:在目标单元格中输入公式:=CHAR(60+ROW(B5))。
解读:在字符集中,A的代码数字位65,B的代码数字位66,所以Char的参数为动态参数。
五、将单个大写的英文字母转换为小写。
函数:Char。
目的:将字母A转换为a。
五、数值转化——中文小写。
函数:Numberstring。
功能:将数值根据指定的代码要求转换为文本形式。
语法结构:=Numberstring(数值,功能代码)。
目的:将“888”转换为“八万八千八百八十八”。
方法:在目标单元格中输入公式:=NUMBERSTRING(B8,1)。
六、数值转化——中文大写。
函数:Numberstring。
目的:将“888”转换为:捌万捌仟捌佰捌拾捌。
方法:在目标单元格中输入公式:=NUMBERSTRING(B9,2)。
七、数值转化——小写文本。
函数:Numberstring。
小写金额转换大写金额函数公式

小写金额转换大写金额函数公式在日常生活和工作中,我们经常需要将小写金额转换为大写金额,以便更清楚地表达金额的大小。
而实现这一功能的方法之一就是使用小写金额转换大写金额函数公式。
这个函数公式可以帮助我们将数字金额转换为汉字表示的金额,使其更易于理解和使用。
下面,我们将介绍一种常用的小写金额转换大写金额函数公式,并探讨其应用。
小写金额转换大写金额的函数公式通常由若干个数学运算和汉字表示组成。
为了避免使用数学公式和计算公式,我们将用文字来描述这个函数公式。
这个函数公式的核心思想是将小写金额按照一定的规则进行划分,然后根据这个划分将小写金额转换为大写金额。
具体步骤如下:1. 首先,将小写金额按照整数部分和小数部分进行划分。
整数部分表示金额的整数部分,小数部分表示金额的小数部分。
2. 然后,将整数部分按照一定的规则进行划分。
通常情况下,我们将整数部分划分为四位一组的形式,例如将小写金额123456789划分为1,2345,6789。
3. 接下来,根据划分后的整数部分,使用汉字表示的金额来表达每个四位数的大小。
例如,将1,2345,6789转换为壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元。
4. 最后,将小数部分按照一定的规则转换为汉字表示的金额。
通常情况下,我们将小数部分的每一位转换为对应的汉字,例如将0.99转换为零点玖玖。
通过这个小写金额转换大写金额函数公式,我们可以将任意小写金额转换为对应的大写金额。
这个函数公式不仅简单易用,而且能够准确地将小写金额转换为大写金额,避免了计算错误和表达不清的问题。
除了在日常生活和工作中使用,小写金额转换大写金额函数公式还可以应用于金融、财务等领域。
例如,在银行业务中,我们经常需要将数字金额转换为汉字金额,以便更好地理解和处理金额的大小。
而小写金额转换大写金额函数公式可以帮助银行员工快速准确地完成这个转换过程,提高工作效率和准确性。
总结起来,小写金额转换大写金额函数公式是一种将小写金额转换为大写金额的方法。
小写金额转换大写金额函数公式

小写金额转换大写金额函数公式在日常生活中,我们经常需要将数字金额转换为大写金额,以便于书写、阅读和理解。
这个过程可以通过手工计算,但是比较繁琐,容易出错。
因此,我们可以使用计算机编程语言来实现自动转换。
下面介绍一种常用的小写金额转换大写金额函数公式。
函数公式:```def digit_to_chinese(num):"""将数字金额转换为大写金额:param num: 数字金额:return: 大写金额"""chinese_num = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']chinese_unit = ['', '拾', '佰', '仟', '万', '亿']result = ''num_str = str(num)num_len = len(num_str)zero_flag = Falsefor i in range(num_len):index = int(num_str[i])unit_index = (num_len - i - 1) % 4if index == 0:zero_flag = Trueif unit_index == 0 and (num_len - i - 1) // 4 > 0:result += chinese_unit[(num_len - i - 1) // 4 + 3]else:if zero_flag:result += '零'zero_flag = Falseresult += chinese_num[index] + chinese_unit[unit_index]if unit_index == 0 and (num_len - i - 1) // 4 > 0:result += chinese_unit[(num_len - i - 1) // 4 + 3]if result[-1] == '零':result = result[:-1]return result```函数说明:该函数接受一个数字金额作为参数,返回一个字符串类型的大写金额。
Excel表中小写金额直接转换成大写金额的公式

Excel表中小写金额直接转换成大写金额的公式:一、=IF(OR(A1<0,A1=""),"",IF(VALUE(LEFT(A1,1))=0,"",NUMBERSTRIN G(INT(A1),2)&"元")&IF(ISERROR(FIND(".",A1)),"整",IF(VALUE(MID(A1,FIND(".",A1)+1,1))=0,"零",IF(ISERROR(FIND(".",A1)),"",NUMBERSTRING(MID(A1,FIND(".", A1)+1,1),2)&"角")))&IF(ISERROR(FIND(".",A1)),"",IF(LEN(ROUND(A1,2))=(FIND( ".",A1)+2),NUMBERSTRING(MID(ROUND(A1,2),FIND(".",A1)+2,1),2 )&"分","")))&IF(ISERROR(FIND(".",A1)),"","")二、假定你要在B1输入阿拉佰数字,C1转换成中文大写金额(含元角分),请在C1单元格输入如下公式:=SUBSTITUTE(SUBSTITUTE(IF(-RMB(B1),IF(B1>0,,"负")&TEXT(INT(ABS(B1)+0.5%),"[dbnum2]G/通用格式元;;")&TEXT(RIGHT(RMB(B1,2),2),"[dbnum2]0角0分;;整"),),"零角",IF(B1^2<1,,"零")),"零分","整")三、用公式就可以,我不懂做会计的如何用大写表示如128.40这样的角不为0但分为0的值,是“壹佰贰拾捌元肆角整”还是“壹佰贰拾捌元肆角”?如果是“壹佰贰拾捌元肆角”,请用这个公式:=TEXT(INT(B2),"[DBNUM2]")&"元"&IF(INT(B2)=B2,"整",(IF(INT(B2*10)-INT(B2)*10>0,TEXT(INT(B2*10)-INT(B2)*10,"[ DBNUM2]")&"角","零")&IF(B2*100-INT(B2*10)*10>0,TEXT(B2*100-INT(B2*10)*10,"[db num2]")&"分","")))如果是“壹佰贰拾捌元肆角整”,请用这个公式:=TEXT(INT(B2),"[DBNUM2]")&"元"&(IF(INT(B2*10)-INT(B2)*10>0,TEXT(INT(B2*10)-INT(B2)*10,"[ DBNUM2]")&"角",IF(B2*100-INT(B2*10)*10>0,"零",""))&IF(B2*100-INT(B2*10)*10>0,TEXT(B2*100-INT(B2*10)*10, "[dbnum2]")&"分","整"))说明:1、将以上公式中的B2换成你要换算的值或对应的单元格。
EXCEL中数字转换中文大写公式

EXCEL中数字转换中文大写公式EXCEL中数字转换中文大写公式=IF(G6<0,\负\通用格式元\角\分\EXCEL中数字小写换大写方法一:在单元格A2中输入小写数字123.12 B2处输入以下公式=SUBSTITUTE(SUBSTITUTE(IF(A2<0,\负\元\),\角%um2]\分\整\零元零\零元\EXCEL中数字小写换大写方法二:在单元格A2中输入小写数字123.12 B2处输入以下公式=IF((INT(A2*10)-INT(A2)*10)=0,TEXT(INT(A2),\通用格式\元\整\零\通用格式\分\通用格式\元\通用格式\角整\通用格式\角\通用格式\分\EXCEL中数字小写换大写方法三:=IF(A2-INT(A2)=0,TEXT(INT(A2),\通用格式\圆整\通用格式\圆\通用格式\角\通用格式\分\EXCEL中数字小写换大写方法四:=IF((A2-INT(A2))=0,TEXT(A2,\元整\元\角整\元\零\角\分\看看结果是不是出现了你想要的?应该有你需要的大写金额了公式的由来: 仟分位公式如下:=TEXT(IF(LEN(INT($A1))>=4,MID($A1,LEN(INT($A1))-3,1),\佰分位公式如下:=TEXT(IF(LEN(INT($A1))>=3,MID($A1,LEN(INT($A1))-2,1),\第一位小数的公式:=TEXT(MID($A1,FIND(\第二位小数的公式:=TEXT(MID(TEXT($A1,\其他依此类推^^^^^^^^^^^^^^^^用Excel函数将货币数值由阿拉伯数字自动生成为中文大写格式如图是全部用Excel函数自编农业银行转帐支票套打工具,图中内容是需要打印到转帐支票上内容,其中A-D列为支票存根部分,我们利用Excel函数对要填写大部分内容建立公式后,只要输入支票存根部分的三项基本信息(A6-A8单元格):收款单位、金额、用途,其他内容全部自动生成。
大写转换excel公式

大写转换excel公式【Excel大写转换公式】1. UPPER函数:=UPPER(text)该函数用于将文本字符串转换为全部大写字符(即所有小写字母转换为大写字母)。
2. PROPER函数:=PROPER(text)该函数用于将文本字符串转换为标准格式,即将每个单词的第一字母转换为大写。
3. SUBSTITUTE函数:=SUBSTITUTE(old_text,new_text,text)该函数用于转换指定的文本字符串,将old_text字符串替换为new_text 字符串,替换结果为大写。
4. CONCATENATE函数:=CONCATENATE(text,text...)该函数用于合并多个文本字符串,合并结果为全部大写。
5. REPLACE函数:=REPLACE(old_text,start_number,number_of_characters,new_text)该函数用于替换指定位置的字符串文本,替换结果为大写。
6. LEFT函数:=LEFT(text,num_chars)该函数用于从文本字符串左侧截取指定数量的字符,截取结果为大写。
7. RIGHT函数:=RIGHT(text,num_chars)该函数用于从文本字符串右侧截取指定数量的字符,截取结果为大写。
8. MID函数:=MID(text,start_num,num_chars)该函数用于从文本字符串某一位置截取指定数量的字符,截取结果为大写。
9. VALUE函数:=VALUE(text)该函数用于将文本字符串转换为数值,若文本字符串为纯字母,则返回将字母转换为大写的结果。
10. TEXTFORMAT函数:=TEXTFORMAT(text,"uppercase")该函数用于将文本字符串转换为指定格式,括号内的“uppercase”表示将字符串转换为全部大写的格式。
excel数字小写转大写函数

excel数字小写转大写函数Excel数字小写转大写函数在Excel中,我们常常需要将数字转换为大写金额,这时就需要用到数字小写转大写函数。
该函数可以将数字转换为对应的大写金额,方便我们进行财务统计和报表制作。
Excel自带的数字小写转大写函数为:=UPPER(TEXT(A1,"[dbnum2]")),其中A1为需要转换的数字单元格,[dbnum2]是Excel自带的格式代码,表示将数字转换为中文大写金额。
该函数可以将数字转换为中文大写金额,但是需要注意的是,该函数只能将数字转换为中文大写金额,不能转换为其他语言的大写金额。
如果需要将数字转换为其他语言的大写金额,可以使用第三方插件或自定义函数实现。
下面介绍一种自定义函数的实现方法。
自定义函数的实现方法1.打开Excel,并按下快捷键“Alt+F11”,打开Visual Basic编辑器。
2.在Visual Basic编辑器中,依次点击“插入”、“模块”,在新建的模块中输入以下代码:Function NumToChinese(ByVal Num As Double) As String Dim MyNum As Variant, DecimalPart As StringDim NumStr As String, i As Integer, j As IntegerDim ChineseStr As String, CharStr As StringDim MyChar As Variant, MinusFlag As BooleanIf Num < 0 ThenNum = Abs(Num)MinusFlag = TrueEnd IfMyNum = Split(Str(Num), ".")NumStr = MyNum(0)DecimalPart = ""If UBound(MyNum) > 0 ThenDecimalPart = MyNum(1)End IfIf NumStr = "0" ThenChineseStr = "零"ElseFor i = 1 To Len(NumStr)MyChar = Mid(NumStr, i, 1)CharStr = ""Select Case MyCharCharStr = "零"Case "1"CharStr = "壹"Case "2"CharStr = "贰"Case "3"CharStr = "叁"Case "4"CharStr = "肆"Case "5"CharStr = "伍"Case "6"CharStr = "陆"Case "7"CharStr = "柒"Case "8"CharStr = "捌"Case "9"CharStr = "玖"End Selectj = Len(NumStr) - i + 1Case 1, 5, 9, 13CharStr = CharStr & "元"Case 2, 6, 10, 14CharStr = CharStr & "拾"Case 3, 7, 11, 15CharStr = CharStr & "佰"Case 4, 8, 12, 16CharStr = CharStr & "仟"End SelectChineseStr = ChineseStr & CharStr Next iEnd IfIf DecimalPart <> "" ThenChineseStr = ChineseStr & "点"For i = 1 To Len(DecimalPart)MyChar = Mid(DecimalPart, i, 1) CharStr = ""Select Case MyCharCase "0"CharStr = "零"Case "1"CharStr = "壹"Case "2"CharStr = "贰"Case "3"CharStr = "叁"Case "4"CharStr = "肆"Case "5"CharStr = "伍"Case "6"CharStr = "陆"Case "7"CharStr = "柒"Case "8"CharStr = "捌"Case "9"CharStr = "玖"End Selectj = Len(DecimalPart) - i + 1 Select Case jCase 1CharStr = CharStr & "角"Case 2CharStr = CharStr & "分"End SelectChineseStr = ChineseStr & CharStrNext iEnd IfIf MinusFlag ThenChineseStr = "负" & ChineseStrEnd IfNumToChinese = ChineseStrEnd Function3.按下快捷键“Alt+Q”,回到Excel界面。
小写自动转大写金额的公式

小写自动转大写金额的公式在生活中,钱财总是跟我们息息相关,没办法,谁不想过上富裕的日子呢?但是,今天我们要聊的可不是如何发家致富,而是一个相对冷门但却非常实用的话题——小写金额转大写金额的公式。
听起来很简单对吧?可当你真要写支票或者合同的时候,脑袋里就会开始打鼓,毕竟你可不想在关键时刻出个小错,让人笑话。
1. 小写金额的烦恼1.1 日常生活中的小烦恼想想看,每次填金额的时候,特别是面对一大堆零的时候,心里是不是觉得有点慌?比如你要写“128.50”这个数字,心里就在想,哎呀,怎么把它写成大写呢?而且你还得注意,像“十、百、千”这些字得用得恰到好处,千万不能出错。
要是写成“壹佰贰拾捌元五角”,听上去多别扭啊!1.2 出错的代价再说了,万一你写错了金额,比如把“200”写成“20”,可就尴尬了!人家可不在意你的失误,钱没了就是没了,别说对方不信任你了,自己心里也难受得要命。
所以,掌握小写转大写的公式就显得格外重要。
2. 转换公式的妙处2.1 基础知识其实,想要实现小写金额到大写金额的转换,了解几个基本的规则就行了。
首先,数字和金额单位要分开。
例如,1要写成“壹”,而“元”要写得完整。
小数部分也不能小看哦,像“五角”和“分”,这些都得一并考虑。
2.2 公式的应用接下来,我们可以来个简单的例子。
假设你要写“345.67”这个数字,首先把整数部分转化:三百四十五,再加上“元”。
然后小数部分“六角七分”,加在后面。
这样一来,整句就是“叁佰肆拾伍元陆角柒分”,这才算完整!听起来是不是很有气势呢?这就是小写到大写的转换公式,不难吧?3. 实践中的小窍门3.1 多练习其实,最好的办法就是多加练习。
你可以找一些金额写写,先从简单的开始,比如“50”或者“120.05”,慢慢来,掌握了之后再逐步增加难度。
你会发现,手就跟笔有默契一样,越写越顺手,最后根本不需要想。
3.2 小工具的帮助此外,现在很多在线工具也提供这个功能,直接输入数字就能自动转化成大写金额。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
近来转了转几个EXCEL相关论坛,发现有部分网友在寻求数字金额转换为人民币大写的方法。
出于好奇,我在网上搜索了一番,什么VBA、加载宏,公式函数各式方法争相亮相,应有尽有。
但我的习惯是,只要能用公式解决的问题,坚决不使用VBA。
所以我就特别地关注使用公式来生成的方法,结果是用公式的方法可谓是更加地灿烂缤纷,使人眼花缭乱。
通过分析我收集到的二十几个公式,发现比较牛,适合我口味的公式有三个,在此我将其列出。
公式一:SUBSTITUTE(SUBSTITUTE(IF(A1<0,"负","")&TEXT(TRUNC(ABS(ROUND(A1,2))),"[DBNum2]")&"元"&IF(ISERR(FIND(".",ROUND(A1,2))),"",TEXT(RIGHT(TRUNC(ROUND(A1,2)*10)),"[DBNum2 ]"))&IF(ISERR(FIND(".0",TEXT(A1,"0.00"))),"角","")&IF(LEFT(RIGHT(ROUND(A1,2),3))=".",TEXT(RIGHT(ROUND(A1,2)),"[DBNum2]")&"分",IF(ROUND(A1,2)=0,"","整")),"零元零",""),"零元","")公式二:CONCATENATE(IF(A1<0,"负",""),TEXT(IF(TRUNC(A1)=0,"",TRUNC(ABS(A1))),"[DBNum2]"),IF(INT(TRUNC(A1))=0,"" ,"元"),TEXT(IF(OR(ABS(A1)<0.1,TRUNC(A1)=A1),"",RIGHT(TRUNC(A1*10),1)),"[DBNum2]"),I F(RIGHT(TRUNC(A1*10),1)="0","","角"),TEXT(IF(RIGHT(TRUNC(A1*100),1)="0","",RIGHT(TRUNC(A1*100),1)),"[DBNum2]"),IF (RIGHT(TRUNC(A1*100),1)="0","","分"))公式三:IF(ROUND(A1,2)=0,"",IF(ROUND(ABS(A1),2)>=1,TEXT(INT(ROUND(ABS(A1),2)),"[DBNum2] ")&"元","")&IF(RIGHT(TEXT(A1,".00"),2)*1=0,"整",IF(RIGHT(TEXT(A1,".00"),4)*1>=1,IF(RIGHT(TEXT(A1,".00"),2)*1>9,"","零"),IF(ROUND(ABS(A1),2)>=1,"零",""))&IF(RIGHT(TEXT(A1,".00"),2)*1>9,TEXT(LEFT(RIGHT(TEXT(A1,".00"),2)),"[DBNu m2]")&"角","")&IF(RIGHT(TEXT(A1,".00"))*1>0,TEXT(RIGHT(TEXT(A1,".00")),"[DBNum2]")&"分","整")))我用不同的数值对这三个公式进行了一番测试,都达到了我的要求,至少到目前为止还没有发现上述公式存在着什么错误。
上述公式对负数的处理采取了不同的方法。
公式一和公式二对负数是在其前部加上一个“负”字,而公式三则是按正数进行处理。
我比较推崇公式三的方式,不是还有条件格式可以设置吗?若是负数就用条件格式来变为红色。
我不准备在此对上述公式进行分析解说。
撰写本文的目的是我也想自己来“组装”一个所谓的通用公式。
我只所以说是“组装”而不是叫什么“开发”或者是“拼凑”,是因为EXCEL的函数现成地摆在了那里,使用时就是为了达到某种目的,按照其固有的规则,将其进行有机的组合,可谓“组装”。
但是在这个过程中,也是要开动脑筋的,并非是随随便便“拼凑”就能成功的。
本文的目的就是想将我在“组装”公式时的思路展现出来。
若用程序设计语言(比如用C语言)来写一个人民币数字金额转大写金额会怎样考虑呢?我想每一位数字都要考虑到。
但在EXCEL中,单元格格式中有一个“特殊”格式,里面就有将小写数字转换为大写数字的格式。
但要注意的是,这里转换的是数字而不是金额。
所以转换出来后并不存在“元”、“角”、“分”、“整”等在大写金额中出现的字。
但是,“元”只出现在整数部分的后面,而小数部分只有角分两位。
这样只要利用EXCEL的“特殊”格式将数据分为整数部分、角位和分位三个部分来处理就行了。
处理的顺序是先整数,再角位、再分位。
由于要分三个部分分别处理,然后根据情况分别与“元”,“角”,“分”及“整”相连接。
连接的方式可以使用CONCATENATE()函数,如公式二,也可以使用连接符&。
而用&来连接,公式结构似乎会相对简单清晰一些,所以我选择了用&来连接。
虽然对问题进行了分解,但需要考虑的细节相当多。
若单元格为0或者空,输出空,避免出现“零”、“零元”等字样。
对非数字字符不进行处理,使用EXCEL自身的错误提示。
对负数按正数处理,再用条件格式将其转换为红色,不拟采用“负XXXXXX”的形式。
整数加“元”,若是纯整数,就只处理整数且加“整”,不再处理小数部分。
若是纯小数,放在小数部分处理,不单独列出处理。
角为0且分不为0,应输出“零”,只有角的就加“整”如果有尾数,即有3位以上小数(这种情况也许很少发生,但作为一个“通用”公式,却不能不考虑这种情况)。
则有两种处理方式,一是截尾,另一则是四舍五入。
由于两种方式的排它性。
决定做两个公式。
如果数值小于分,截尾公式输出空,而四舍五入公式则要考虑舍入问题。
若有舍入输出分,没有则输出空。
根据这个思路,我“组装”了下面两个公式。
公式四:IF(A1=0,"",IF(ABS(A1)<0.995,"",TEXT(INT(ROUND(ABS(A1),2)),"[DBNum2]")&"元")&IF(RIGHT(TEXT(A1,".00"),2)*1=0,IF(ABS(A1)<0.005,"","整"),TEXT(IF(ABS(A1)<0.095,"",LEFT(RIGHT(TEXT(A1,".00"),2))),"[dbnum2]")&IF(LEFT( RIGHT(TEXT(A1,".00"),2))*1=0,"","角")&IF(RIGHT(TEXT(A1,".00"))*1=0,"整",TEXT(RIGHT(TEXT(A1,".00")),"[dbnum2]")&"分")))公式五:IF(A1=0,"",IF(ABS(A1)<1,"",TEXT(TRUNC(ABS(A1)),"[DBNum2]")&"元")&IF(RIGHT(TRUNC(A1*100),2)*1=0,IF(ABS(A1)<0.01,"","整"),IF(ABS(A1)<0.1,"",TEXT(RIGHT(TRUNC(A1*10)),"[dbnum2]"))&IF(RIGHT(TRUNC(A1*10 ))*1=0,"","角")&IF(RIGHT(TRUNC(A1*100))*1=0,"整",TEXT(RIGHT(TRUNC(A1*100)),"[dbnum2]")&"分")))公式四是四舍五入公式,公式五则是截尾公式。
两个公式的结构其实是一样的,只是使用了不同的函数。
下面用公式四来说明。