exce1时间差计算.docx
《exce1时间差计算.docx》由会员分享,可在线阅读,更多相关《exce1时间差计算.docx(9页珍藏版)》请在冰豆网上搜索。
exce1时间差计算
方法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)*24
E1xx公式如下:
=(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可以将数值转换为带格式的文本,而其结果将不再作为数字参与计算。
AB
1销售人员销售
2Buchan2800
3Dodsworth40%
公式说明(结果)
=A2&"sold"&TEXT(B2,"$
0.00")&"worthofunits."将上面内容合并为一个短语(Buchansold$
2800.00worthofunits.)
=A3&"sold"&TEXT(B3,"0%")&"ofthetotalsales."将上面内容合并为一个短语(Dodsworthsold40%ofthetotalsales.)
TEXT生成的三种日期格式:
e:
=text(now(),"e")与=text(now(),"YY")是一样的b=text(now(),"b")佛历2位年份
bb
=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.html
2008-06-1818:
58
1.关于TEXT(102,"!
r0c00")此类格式函数
TEXT(102,"!
r0c00")--->"r1c02"
前面加个indirect
indirect(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";"r3c03"},)这个得到一个数组
题外话:
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;1000;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可以得到=与上面刚好相反
例3
SUM({"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.001;
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.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