数字转大写 计算两日期间月数天数
一、NUMBERSTRING
EXCEL中隐藏了一个数字转大写的函数NUMBERSTRING,但它仅支持正整数,用中文版的朋友可以试试这个函数:
语法:
=NUMBERSTRING(VALUE,TYPE)
参数:
value:要转化的数字
type:返回结果的类型,有三种:1,2,3
NumberString(1234567890,1) = 一十二亿三千四百五十六万七千八百九十
NumberString(1234567890,2) = 壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾
NumberString(1234567890,3) = 一二三四五六七八九○
二、DATEDIF
语法
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" 时间段中的整年数。
"M" 时间段中的整月数。
"D" 时间段中的天数。
"MD" start_date 与 end_date 日期中天数的差。忽略日期中的月和年。
"YM" start_date 与 end_date 日期中月数的差。忽略日期中的日和年。
"YD" start_date 与 end_date 日期中天数的差。忽略日期中的年。
说明
Microsoft Excel 按顺序的系列数保存日期,这样就可以对其进行计算。如果工作簿使用 1900 日期系统,则 Excel 会将 1900 年 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("2001/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("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")&"月"&DATEDIF(B2,TODAY(),"md")&"日"
-----------------------------------------------------------------------------------------------------------------
Excel中我们在单元格输入了阿拉伯数字之后,比如“1234567890”,忽然想起应该将它改成中文的大写格式,这时怎么办?删掉此内容重新一个字一个字地输入“壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾”?显然太麻烦了。假若并不是一个数字,而是很长的一列单元格,那我们还不麻烦死?
不过别担心,在Excel中这不是个难题,至少有以下的两种方法可供您选择:
一、单元格格式法
选中那些数字所在的单元格,点击右键,在弹出菜单中选择“设置单元格格式”命令,打开“设置单元格格式”对话框。点击“数字”选项卡,在左侧的“分类”列表中选择“特殊”,然后在右侧的“类型”列表中点击“中文大写数字”,如图1所示。确定后就可以了。若点击上方的那个“中文小写数字”,可以得到“一十二亿三千四百五十六万七千八百九十”。很简单吧?(如下图)选择“中文大写数字”
二、函数更正法
在Excel中还有一个隐含的函数可以解决这个问题。比如A1单元格中是数字“1234567890”,那么我们只要在其它单元格中输入公式“=NUMBERSTRING(A1,2)”。回车后就可以得到“壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾”了。如果我们将第二个参数“2”改成“1”或者“3”,那么我们就会得到“一十二亿三千四百五十六万七千八百九十”和“一二三四五六七八九○”。
再假如这个问题不是发生在Excel中,而是在Word表格中,那又该如何处理呢?当然,一种选择是将表格数据复制到Excel中,转换好了之后再复制到Word表格中。不过,我们还可以选择直接在Word中完成此项任务的。
选中表格中的数字“1234567890”,点击功能区“插入”选项卡“符号”功能组“编号”按钮,打开“编号”对话框。在“编号类型”列表中选择“壹,贰,叁”项目,如图2所示,确定后就可以得到“壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾”了。如果在列表中选中“一,二,三”项目,那么可以得到“一十二亿三千四百五十六万七千八百九十”。
当然,如果您有域的编辑感兴趣的话,还可以在域符号中直接输入域代码“= 1234567890 \* CHINESENUM3”,或“= 1234567890 \* CHINESENUM2”,然后按下“Alt+F9”快捷键,就可以分别得到“一十二亿三千四百五十六万七千八百九十”或“壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾”了。要是输入域代码“= 1234567890 \* CHINESENUM3”,按下““Alt+F9”快捷键”就可以得到“一二三四五六七八九○”了。也挺简单的。
------------------------------------------------------------------------------------------------
大写金额有小数点的怎么处理啊?
在单元格中输入 12345.67 以大写格式显示时是 壹万贰仟叁佰肆拾伍.陆柒 如何把小点改成元再把角分加上呢?
假定你要在A1输入阿拉佰数字,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,,"零")),"零元",),"零分","整")
---------------------------------------------------------------------------------------------------
把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("壹贰叁肆伍陆柒捌玖",(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($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("壹贰叁肆伍陆柒捌玖",(INT($P$2/0.01)-INT($P$2/100)*0.1),1)) |