方法1:在A1单元格输入前面的日期,比如“2004-10-10”,在A2单元格输入后面的日期,如“2005-6-7”。
接着单击A3单元格,输入公式“=DATEDIF(A1,A2,"d")”。
然后按下回车键,那么立刻就会得到两者的天数差“240”。
提示:公式中的A1和A2分别代表前后两个日期,顺序是不可以颠倒的。
此外,DATEDIF函数是Excel中一个隐藏函数,在函数向导中看不到它,但这并不影响我们的使用。
方法2:任意选择一个单元格,输入公式“="2004-10-10"-"2005-6-7"”,然后按下回车键,我们可以立即计算出结果。
一、计算工作时间、工龄假如日期数据在D2xx。
=DATEDIF(D2,TODAY(),"y")+1注意:工龄两头算,所以加“1”。
如果精确到“天”——=DATEDIF(D2,TODAY(),"y")&"年"&DATEDIF(D2,TODAY(),"ym")&"月"&DATEDIF(D2,TODAY(),"md")&"日"二、计算2003-7-617:05到2006-7-713:50分之间相差了多少天、多少个小时多少分钟假定原数据分别在A1和B1单元格,将计算结果分别放在C1、D1和E1xx。
C1xx公式如下:=ROUND(B1-A1,0)D1xx公式如下:=(B1-A1)*24E1xx公式如下:=(B1-A1)*24*60注意:A1和B1xx格式要设为日期,C1、D1和E1xx格式要设为常规.三、计算生日,假设b2为生日=datedif(B2,today(),"y")DATEDIF函数,除Excel2000中在帮助文档有描述外,其他版本的Excel在帮助文档中都没有说明,并且在所有版本的函数向导中也都找不到此函数。
但该函数在电子表格中确实存在,并且用来计算两个日期之间的天数、月数或年数很方便。
微软称,提供此函数是为了与Lotus1-2-3兼容。
该函数的用法为“DATEDIF(Start_date,End_date,Unit)”,其中Start_date为一个日期,它代表时间段内的第一个日期或起始日期。
End_date为一个日期,它代表时间段内的最后一个日期或结束日期。
Unit为所需信息的返回类型。
“Y”为时间段中的整年数,“M”为时间段中的整月数,“D”时间段中的天数。
“MD”为Start_date与End_date日期中天数的差,可忽略日期中的月和年。
“YM”为Start_date与End_date日期中月数的差,可忽略日期中的日和年。
“YD”为Start_date与End_date日期中天数的差,可忽略日期中的年。
比如,B2单元格中存放的是出生日期(输入____年__月__日时,用斜线或短横线隔开),在C2单元格中输入“=datedif(B2,today(),"y")”(C2单元格的格式为常规),按回车键后,C2单元格中的数值就是计算后的年龄。
此函数在计算时,只有在两日期相差满12个月,才算为一年,假如生日是2004年2月27日,今天是2005年2月28日,用此函数计算的年龄则为0岁,这样算出的年龄其实是最公平的。
这是因为:1、在Excel中,在默认情况下,如果输入的数字超过了11位,就会自动变成科学技术法的形式。
如输入9012,会变成1.23457E+11。
此时,如果输入的数字不超过15位,可以把单元格格式设置成数值。
2、在Excel中,数值格式的数字最多可以输入15位,如果大于15位,会自动把其后的几位变成0。
如输入78,会变成00。
解决方法有两种:1、事先把单元格格式设置成文本格式。
选择1个或多个单元格,右键->设置单元格格式->在“数字”标签页,“分类”里选择“文本”,确定。
之后再输入数字。
2、输入数字前先输入一个单引号',注意,一定要在关闭输入法的情况下输入。
之后再输入数字,如:'78。
但是,这样输入后,数字会被认为是文本形式,无法参与计算EXCEL中的TEXT函数TEXT将数值转换为按指定数字格式表示的文本。
TEXT(value,format_text)Value为数值、计算结果为数字值的公式,或对包含数字值的单元格的引用。
Format_text为“单元格格式”对话框中“数字”选项卡上“分类”框中的文本形式的数字格式。
说明Format_text不能包含星号(*)。
通过“格式”菜单调用“单元格”命令,然后在“数字”选项卡上设置单元格的格式,只会更改单元格的格式而不会影响其中的数值。
使用函数TEXT可以将数值转换为带格式的文本,而其结果将不再作为数字参与计算。
A B1销售人员销售2 Buchan 28003 Dodsworth 40%公式说明(结果)=A2&"sold"&TEXT(B2,"$0.00")&"worthofunits."将上面内容合并为一个短语(Buchan sold $2800.00 worth of units.)=A3&"sold"&TEXT(B3,"0%")&"ofthetotalsales."将上面内容合并为一个短语(Dodsworth sold 40% of the total sales.)TEXT生成的三种日期格式:e:=text(now(),"e")与=text(now(),"YY")是一样的b=text(now(),"b")佛历2位年份=text(now(),"bb")佛历4位年份与公元纪年相差543年也就是公元纪年+543就是了。
dbnum1=TEXT(NOW(),"[dbnum1]yy年m月d日")中文小写日期dbnum2=TEXT(NOW(),"[dbnum2]yy年m月d日")中文大写日期佛历为部分佛教国家计算纪元的方式,该计算方式以释迦摩尼去世当年度为计算基准。
西元1950年,锡兰首都可伦坡举办首届“世界佛教徒友谊会”,会中议决:佛陀诞生于西元前623年,成道于西元前588年,去世于西元元前543年。
三年后的1954年,该年会于缅甸仰光举行,会中再决议佛教国家以“佛历”纪元,并以释迦牟尼涅盘日推算,西元1954年为佛历2498年。
日期转换把200808修改成2008-08-08的格式可以用以下公式:=--text("200808","#-00-00")把英文月份化成数字月份:=MONTH(--("Aug"&1))=MONTH(--("August"&1))返回一个月的最后一天,就是用下一个月的第一天-1就行。
得到上一个月的最后一天:=today()-day(now())确定季度:=text(roundup(month(now())/3,0),"[dbnum1]第0季度") 星期:=weekday(now())=mod(today()-2,7)+1=text(today(),"aa")返回最近星期天的日期=today()-weekday(today(),2)=today()-mod(today()-1,7)=today()+8-weekday(today())=today()+6-mod(today()-2,7)两个日期相隔的星期天数:=int((weekday(date1,2)+date2-date1)/7)转帖]TEXT函数运用终极篇(小爪)转自http:90.html2008-06-18 18:581.关于TEXT(102,"!r0c00")此类格式函数TEXT(102,"!r0c00") --->"r1c02"前面加个indirectindirect(TEXT(102,"!r0c00"),)---->INDIRECT("r1c02",)-->就是等于行1列2即B1的值故展开=INDIRECT(TEXT(1002,"!r00c00"),)--->B10的值=INDIRECT(TEXT(1002,"!r00c0"),)--->B100的值=INDIRECT(TEXT(102,"!r00c0"),)------->B10的值注意前后的变化继续扩展:=INDIRECT(TEXT({101;102;103;201;202;203;301;302;303},"!r0c00"),)------->=INDIRECT({"r1c01";"r1c02";"r1c03";"r2c01";"r2c02";"r2c03";"r3c01";"r3c02";"r3c 03"},)这个得到一个数组题外话:SMALL(ROW($A$1:$C$3)*100+COLUMN($A$1:$C$3),ROW(1:9))--可得到(张贴:只是为了学习这个方法)------------------------------->{101;102;103;201;202;203;301;302;303}2.关于此类TEXT({10;1;11;2;13;14;15;8;7;3},"[<=8]#;1")此类格式函数先了解一下:TEXT({10;1;11;2;13;14;15;8;7;3},"[<=8]#;1")引申出结果为{"1";"1";"1";"2";"1";"1";"1";"8";"7";"3"},意思就是说大于8的为1,小于等于8的为原来值看=TEXT({10;1;11;2;13;14;15;8;7;3},"[>=8]#;1")如果修改成大于等于引申出结果为{"10";"1";"11";"1";"13";"14";"15";"8";"1";"1"}这样就大家都xx了继续展开=TEXT({10;1;11;2;13;14;15;8;7;3},"[=8]#;1")--->={"1";"1";"1";"1";"1";"1";"1";"8";"1";"1"}=TEXT({10;1;11;2;13;14;15;8;7;3},"[<>8]#; 1")---->={"10";"1";"11";"2";"13";"14";"15";"1";"7";"3"}=TEXT({10;1;11;2;13;14;15;8;7;3},"[<>""]#;1")-->={"10";"1";"11";"2";"13";"14";"15";"8";"7";"3"}这样就大家就更xx题外话:(相关的例子)"[<="&LEN($A$6)&"]#;1"--->如果LEN($A$6)等于8那么就可以得到"[<=8]#;1"ROW($1:$10)-1----->就可以得到{0;1;2;3;4;5;6;7;8;9}这个数组10-ROW($1:$10)--->就可以得到{9;8;7;6;5;4;3;2;1;0}这个数组这2个数组有什么用呢?继续例1{"1";"1";"1";"1";"1";"1";"3";"9";"8";"7"}*10^({9;8;7;6;5;4;3;2;1;0})--->{"1";"1";"1";"1";"1";"1";"3";"9";"8";"7"}*{100000;10000;10000;1000;1000;100;1 000;100;10;1}--->可以得到下面的值={100000;10000;10000;1000;1000;100;3000;900;80;7}加个sum可以得到例2.={"1";"1";"1";"1";"1";"1";"3";"9";"8";"7"}*10^({0;1;2;3;4;5;6;7;8;9})--->={"1";"1";"1";"1";"1";"1";"3";"9";"8";"7"}*{1;10;100;1000;100;1000;1000;10000; 10000;100000}--->可以得到下面的值={1;10;100;1000;100;1000;3000;90000;80000;700000}加个sum可以得到=与上面刚好相反例3SUM({"1";"1";"1";"1";"1";"1";"3";"9";"8";"7"}*(10^(-{0;1;2;3;4;5;6;7;8;9})))-->=SUM({"1";"1";"1";"1";"1";"1";"3";"9";"8";"7"}*({1;0.1;0.01;0.0001;0.001;0.0001;0.0001;0.00001;0.00001}))-->=SUM({1;0.1;0.01;0.001;0.0001;0.001;0.0003;0.0009;0.00008;0.00007})=1.例4=sum({"1";"1";"1";"1";"1";"1";"3";"9";"8";"7"}*10^(-{9;8;7;6;5;4;3;2;1;0}))--->=sum({"1";"1";"1";"1";"1";"1";"3";"9";"8";"7"}*{0.00001;0.0001;0.0001;0.001;0.0001;0.001;0.01;0.1;1})--->=SUM({ 0.00001;0.00001;0.0001;0.0001;0.001;0.0001;0.003;0.09;0.8;7})->>=7.893111。