中隐藏的函数_第1页
中隐藏的函数_第2页
中隐藏的函数_第3页
中隐藏的函数_第4页
中隐藏的函数_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Excel隐藏函数 数字转大写 计算两日期间月数天数一、NUMBERSTRINGEXCEL中隐藏了一个数字转大写的函数NUMBERSTRING,但它仅支持正整数,用中文版的朋友可以试试这个函数:语法: =NUMBERSTRING(VALUE,TYPE)参数:value:要转化的数字type:返回结果的类型,有三种:1,2,3NumberString(1234567890,1) 一十二亿三千四百五十六万七千八百九十NumberString(1234567890,2) 壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾NumberString(1234567890,3) 一二三四五六七八九二、DATEDIF语法

2、DATEDIF(start_date,end_date,unit)Start_date 为一个日期,它代表时间段内的第一个日期或起始日期。日期有多种输入方法:带引号的文本串(例如 "2001/1/30")、系列数(例如,如果使用 1900 日期系统则 36921 代表 2001 年 1 月 30 日)或其他公式或函数的结果(例如,DATEVALUE("2001/1/30"))。有关日期系列数的详细信息,请参阅 NOW。End_date 为一个日期,它代表时间段内的最后一个日期或结束日期。Unit 为所需信息的返回类型。Unit 返回 "Y&qu

3、ot; 时间段中的整年数。 "M" 时间段中的整月数。 "D" 时间段中的天数。 "MD" start_date 与 end_date 日期中天数的差。忽略日期中的月和年。 "YM" start_date 与 end_date 日期中月数的差。忽略日期中的日和年。 "YD" start_date 与 end_date 日期中天数的差。忽略日期中的年。 说明 Microsoft Excel 按顺序的系列数保存日期,这样就可以对其进行计算。如果工作簿使用 1900 日期系统,则 Excel 会将 1

4、900 年 1 月 1 日保存为系列数 1。而如果工作簿使用 1904 日谙低常 ?Excel 会将 1904 年 1 月 1 日保存为系列数 0,(而将 1904 年 1 月 2 日保存为系列数 1)。例如,在 1900 日期系统中 Excel 将 1998 年 1 月 1 日保存为系列数 35796,因为该日期距离 1900 年 1 月 1 日为 35795 天。请查阅 Microsoft Excel 如何存储日期和时间。Excel for Windows 和 Excel for Macintosh 使用不同的默认日期系统。有关详细信息,请参阅 NOW。 示例DATEDIF("2

5、001/1/1","2003/1/1","Y") 等于 2,即时间段中有两个整年。DATEDIF("2001/6/1","2002/8/15","D") 等于 440,即在 2001 年 6 月 1 日和 2002 年 8 月 15 日之间有 440 天。DATEDIF("2001/6/1","2002/8/15","YD") 等于 75,即在 6 月 1 日与 8 月 15 日之间有 75 天,忽略日期中的年。DATEDIF

6、("2001/6/1","2002/8/15","MD") 等于 14,即开始日期 1 和结束日期 15 之间的差,忽略日期中的年和月。=DATEDIF(B2,TODAY(),"y") =DATEDIF(B2,TODAY(),"ym") =DATEDIF(B2,TODAY(),"md") =DATEDIF(B2,TODAY(),"y")&"年"&DATEDIF(B2,TODAY(),"ym")&

7、;"月"&DATEDIF(B2,TODAY(),"md")&"日"-Excel中我们在单元格输入了阿拉伯数字之后,比如“1234567890”,忽然想起应该将它改成中文的大写格式,这时怎么办?删掉此内容重新一个字一个字地输入“壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾”?显然太麻烦了。假若并不是一个数字,而是很长的一列单元格,那我们还不麻烦死?不过别担心,在Excel中这不是个难题,至少有以下的两种方法可供您选择:一、单元格格式法选中那些数字所在的单元格,点击右键,在弹出菜单中选择“设置单元格格式”命令,打开“设置单元格格式

8、”对话框。点击“数字”选项卡,在左侧的“分类”列表中选择“特殊”,然后在右侧的“类型”列表中点击“中文大写数字”,如图1所示。确定后就可以了。若点击上方的那个“中文小写数字”,可以得到“一十二亿三千四百五十六万七千八百九十”。很简单吧?(如下图)选择“中文大写数字”二、函数更正法在Excel中还有一个隐含的函数可以解决这个问题。比如A1单元格中是数字“1234567890”,那么我们只要在其它单元格中输入公式“=NUMBERSTRING(A1,2)”。回车后就可以得到“壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾”了。如果我们将第二个参数“2”改成“1”或者“3”,那么我们就会得到“一十二亿三千四百五

9、十六万七千八百九十”和“一二三四五六七八九”。再假如这个问题不是发生在Excel中,而是在Word表格中,那又该如何处理呢?当然,一种选择是将表格数据复制到Excel中,转换好了之后再复制到Word表格中。不过,我们还可以选择直接在Word中完成此项任务的。选中表格中的数字“1234567890”,点击功能区“插入”选项卡“符号”功能组“编号”按钮,打开“编号”对话框。在“编号类型”列表中选择“壹,贰,叁”项目,如图2所示,确定后就可以得到“壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾”了。如果在列表中选中“一,二,三”项目,那么可以得到“一十二亿三千四百五十六万七千八百九十”。当然,如果您有域的编辑

10、感兴趣的话,还可以在域符号中直接输入域代码“= 1234567890 * CHINESENUM3”,或“= 1234567890 * CHINESENUM2”,然后按下“Alt+F9”快捷键,就可以分别得到“一十二亿三千四百五十六万七千八百九十”或“壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾”了。要是输入域代码“= 1234567890 * CHINESENUM3”,按下“Alt+F9”快捷键”就可以得到“一二三四五六七八九”了。也挺简单的。-大写金额有小数点的怎么处理啊?在单元格中输入 12345.67 以大写格式显示时是 壹万贰仟叁佰肆拾伍.陆柒 如何把小点改成元再把角分加上呢?假定你要在A1输

11、入阿拉佰数字,B1转换成中文大写金额(含元角分),请在B1单元格输入如下公式就可以了 =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IF(A1>-0.5%,"负")&TEXT(INT(FIXED(ABS(A1),"dbnum2")&TEXT(RIGHT(FIXED(A1),2),"dbnum2元0角0分;元"&IF(ABS(A1)>1%,"整",),"零角",IF(ABS(A1)<1,"零"),"零元&

12、quot;,),"零分","整")-把EXECL中小写数字转换成中文大写?且要求分位。要分位,可以一个单元格显示一位,且不要“万、仟、佰、拾、角、分”这样的单位。具体如图所示。数字金额所在位置为P2。万位公式:=IF(INT($P$2/10000)=0,"×",MID("壹贰叁肆伍陆柒捌玖",INT($P$2/10000),1)千位:=IF(INT($P$2/1000)-INT($P$2/10000)*10)=0,"×",MID("壹贰叁肆伍陆柒捌玖",(

13、INT($P$2/1000)-INT($P$2/10000)*10),1)百位:=IF(INT($P$2/100)-INT($P$2/1000)*10)=0,"×",MID("壹贰叁肆伍陆柒捌玖",(INT($P$2/100)-INT($P$2/1000)*10),1)十位:=IF(INT($P$2/10)-INT($P$2/100)*10)=0,"×",MID("壹贰叁肆伍陆柒捌玖",(INT($P$2/10)-INT($P$2/100)*10),1)元位=IF(INT($P$2/1)-INT

14、($P$2/10)*10)=0,"×",MID("壹贰叁肆伍陆柒捌玖",(INT($P$2/1)-INT($P$2/10)*10),1)角位:=IF(INT($P$2/0.1)-INT($P$2/100)*1)=0,"×",MID("壹贰叁肆伍陆柒捌玖",(INT($P$2/0.1)-INT($P$2/100)*1),1)分位:=IF(INT($P$2/0.01)-INT($P$2/100)*0.1)=0,"×",MID("壹贰叁肆伍陆柒捌玖",

15、(INT($P$2/0.01)-INT($P$2/100)*0.1),1) -通过分析我收集到的二十几个公式,发现比较牛,适合我口味的公式有三个,在此我将其列出。 公式一: SUBSTITUTE(SUBSTITUTE(IF(A1<0,"负","")&TEXT(TRUNC(ABS(ROUND(A1,2),"DBNum2")&"元"&IF(ISERR(FIND(".",ROUND(A1,2),"",TEXT(RIGHT(TRUNC(ROUND(A1,

16、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,"","整"),"零元零",""),&qu

17、ot;零元","") 公式二: 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"),IF(RIGHT(

18、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(ROU

19、ND(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,"零","")&

20、IF(RIGHT(TEXT(A1,".00"),2)*1>9,TEXT(LEFT(RIGHT(TEXT(A1,".00"),2),"DBNum2")&"角","")&IF(RIGHT(TEXT(A1,".00")*1>0,TEXT(RIGHT(TEXT(A1,".00"),"DBNum2")&"分","整") 根据这个思路,我“组装”了下面两个公式。 公式四:

21、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),"dbnum

22、2")&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),"DB

23、Num2")&"元")&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

24、(TRUNC(A1*100),"dbnum2")&"分") 公式四是四舍五入公式,公式五则是截尾公式。两个公式的结构其实是一样的,只是使用了不同的函数。下面用公式四来说明。 TEXT(INT(ROUND(ABS(A1),2),"DBNum2")&"元"用来处理整数部分,考虑到纯小数及舍入问题,增加一个判断ABS(A1)<0.995,用0.995,即保证了正常的舍入,又避免了出现0.9945也进行舍入的错误。 用RIGHTB(TEXT(A1,".00"),2)*1=0来判断是

25、不是纯整数,是就输出“整”,后面就不用处理了。因为TEXT函数输出的是文本值,所以在这里有两种处理方法,一是就是本式,二是RIGHTB(TEXT(A1,".00"),2)="00"。 LEFT(RIGHT(TEXT(A1,".00"),2)是取出角位数,增加一个判断ABS(A1)<0.095是为了在只有分票的情况下角位避免出现“零”的字样,0.095也是考虑了尾数的舍入问题。 IF(LEFT(RIGHT(TEXT(A1,".00"),2)*1=0,"","角"),角位是

26、0输出空,否则输出“角”。同样,这里的判断表达式也可改为LEFT(RIGHT(TEXT(A1,".00"),2)="0 " 用RIGHT(TEXT(A1,".00")取出分位数,分位为零输出“整”,否则输出分位数。 对于负数,如果一定要用“负XXXXXX”的形式,则直接在第二个判断前加上“IF(A1<0,"负","")&”。 还有网友提出来说万位为零时不输出零不符合规范,为此我专门去查了一下相关规定。结果如下: 大写金额中间有“0”时,大写金额要写“零”字;小写金额中间连续有几个“0”时,大写金额中间可以只写一个“零”字;小写金额万位或元位是“ 0”,或者数字中间连续有几个“0”,万位、元位也是“0”,但千位、角位不是“0”时,大写金额中可以只写一个“零”字,也可以不写“零”字。 所以上述公式在当万位为零而千位不为零时,以不输出零的方式处理,应该是符

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论