收藏 分享(赏)

DATEDIF函数实例.doc

上传人:精品资料 文档编号:9828431 上传时间:2019-09-09 格式:DOC 页数:16 大小:128.50KB
下载 相关 举报
DATEDIF函数实例.doc_第1页
第1页 / 共16页
DATEDIF函数实例.doc_第2页
第2页 / 共16页
DATEDIF函数实例.doc_第3页
第3页 / 共16页
DATEDIF函数实例.doc_第4页
第4页 / 共16页
DATEDIF函数实例.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、DATEDIF 函数计算两个日期间的年数、月数或天数(DATEDIF 函数是 EXCEL 中的一个隐藏函数,在函数向导中是找不到的,可直接输入使用,用于计算年龄、工龄非常好)语法:DATEDIF(date1,date2,code)date1:起始日期date2:结束日期code: CODE 返回值“Y“ 这期间的完全年数“M“ 这期间的完全月数“D“ 这期间的完全天数“MD“ 起始日期与结束日期的同月间隔天数。日期的月数和天数被忽略。“YM“ 起始日期与结束日期的间隔月数。日期的年数和天数被忽略。“YD“ 起始日期与结束日期的同年间隔天数。日期的年数被忽略。例 1:计算两个日期间的年数、月数或

2、天数起始日期 1980-6-14 在 A5,结束日期 B52011-9-10 在 B5,在 C5 中输入公式=DATEDIF(A5,B5,“y“) 可计算出相隔年数,返回 31。例 2:计算一个人的年龄某人的出生年月为 1968-7-13,在 C13 单元格,今天是 2012-4-23计算年数,公式为=DATEDIF($C$13,TODAY(),“y“),返回 43。计算月数,公式为=DATEDIF($C$13,TODAY(),“ym“),返回 9。计算天数,公式为=DATEDIF($C$13,TODAY(),“md“),返回 10。这个人的年龄可用以下公式连接成文本:=“年龄是“&DATED

3、IF(C13,TODAY(),“y“)&“岁“&DATEDIF(C13,TODAY(),“ym“)&“个月零“&DATEDIF(C13,TODAY(),“md“)&“天“返回:年龄是 43 岁 9 个月零 10 天。在 Excel 2003 中,日期函数 DAYS360 和 DATEDIF 的起始日期和结束日期两个参数,如果要在函数中直接输入,必须使用 DATE(年,月,日)函数输入,不能以文本形式输入,否则出错。例如,要用上述两个函数计算起始日期为 1920 年 2 月 3 日,结束日期为 2012 年 3 月 13 日之间的天数,可以这样输入“=days360(date(1920,2,3)

4、,date(2012,3,13)“或 “=datedif(date(1920,2,3),date(2012,3,13),“d“)“ ,前者以每年 360 天进行计算(即按平均每月 30 天计算),后者按实际天数计算。 当然,如果上述两个日期函数引用的开始日期和结束日期两个参数可以通过引用单元格地址获得,则可以直接引用相应单元格的地址即可DATEDIF 函数实例:计算总借款天数和还款剩余天数上例我们将了利用 excel 的 DATEDIF 函数来自动追加工龄工资。本例我们讲解利用 DATEDIF 函数来计算借款天数和还款剩余天数。我们使用 DATEDIF 函数,根据借款日期与还款日期计算出总借款

5、天数和还款剩余天数。如图所示:选中 E2 单元格,输入公式:=DATEDIF(C2,D2,“D“) ,就求出了天人科技的总借款天数。向下拖动,进行公式填充,即可快速计算出另外单位的借款天数。选中 F2 单元格,输入公式: =DATEDIF (TODAY(),D2,”D”),就求出了天人科技的还款剩余天数。向下拖动,进行公式填充,即可快速计算出另外单位的还款剩余天数。days360(“2004-2-25“,“2004-3-2“)=7,为什么会等于 7 呢?而不等于 6 呢?days360 按照一年 360 天的算法(每个月以 30 天计,一年共计 12 个月)=DATEDIF(“2004-2-2

6、5“,“2004-3-2“,“d“)或=“2004-3-2“-“2004-2-25“DATEIF()是宏函数 .可以方便地求相隔月年日.不过主要还是用在日以外的.DATEDIF 是 Excel 中的一个隐藏函数,在函数向导中是找不到的。此函数最初是 Lotus 1-2-3 里面的函数,微软为了使 Excel 与 Lotus 1-2-3 兼容而采用了它,但不知为何没写入文字资料。有人说是与知识产权有关。它用于返回两个日期参数的差值。 其语法为:=DATEDIF(Date1,Date2,Interval)其中 date1 必须早于 date2,否则返回#NUM! 参数 Interval 可以在“y

7、“、“m“、“d“、“ym“、“yd“、“md“ 六个里面选。 前三个(y、m、d)当然表示要求返回两个日期相差的年、月、日数。后三个可能需要较多解释:“ym“表示忽略年份的差别,只计所差的月份(即视两日期在同一年)。“yd“表示忽略年份的差别,只计所差的天数(即视两日期在同一年)。“md“表示忽略年份和月份的差别,只计所差的天数(即视两日期为同年同月)。要善于利用论坛的搜索功能。有什么函数不太清楚的,可在论坛上搜索。matsumi 2004-3-21 10:11=DATEDIF(“2004-2-25“,“2004-3-2“,“d“)是 6 天=“2004-3-2“-“2004-2-25“是

8、6 天days360(“2004-2-25“,“2004-3-2“)是 7 天为什么结果不一样?示例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

9、“,“MD“) 等于 14,即开始日期 1 和结束日期 15 之间的差,忽略日期中的年和月假设小日期输入在单元格 A1,大日期在 B1。在 C1 输入 =B1-A1+1或者=DATEDIF(A1,B1,“d“)+1就是你要的。可能的话,需要右键设置单元格格式为数字。追问: 这样算出来会是什么? 这不符合我的要求,再说要是润月的 28 天,怎么算,我要是自动会算,不要人工去算,如果这个时间列很多,上百个,时间也乱,你怎么去算?回答: 呵呵,我已经提醒过你了。右键点 C1,设置单元格格式,数字,常规。其他事情你不用担心,Excel 把数字 1 当做 1900-01-01,今天是数字 40384,即

10、从1900 年 1 月 1 日算起,过去 40384 天了。http:/ VBA如何使用 VBA1 在 EXCEL 里工具栏上右击,选控件工具箱2 点里面的按钮,在工作表上添加3 右击新加的按钮,查看代码按 ALT+F11 再 插入 模块把下面的代码制复制到模块中,然后 在 B1 中输入:=calendar(A1)假设日期在 A1。Option ExplicitDim WeekName(7), MonthAdd(11), NongliData(120), TianGan(9), DiZhi(11), ShuXiang(11), DayName(30), MonName(12)Dim curTi

11、me, curYear, curMonth, curDay, curWeekdayDim GongliStr, WeekdayStr, NongliStr, NongliDayStrDim i, m, n, k, isEnd, bit, TheDate, num1, num2Dim year, month, day, grid, grid_dateFunction calendar(grid)grid_date = gridyear = Mid(grid_date, 1, 4)num1 = InStr(grid_date, “-“)num2 = InStr(6, grid_date, “-“)

12、If (num2 - num1) = 3 Thenmonth = Mid(grid_date, 6, 2)day = Mid(grid_date, 9, 2)Elsemonth = Mid(grid_date, 6, 1)day = Mid(grid_date, 8, 2)End If星期名WeekName(0) = “ * “WeekName(1) = “星期日“WeekName(2) = “星期一“WeekName(3) = “星期二“WeekName(4) = “星期三“WeekName(5) = “星期四“WeekName(6) = “星期五“WeekName(7) = “星期六“天干

13、名称TianGan(0) = “甲“TianGan(1) = “乙“TianGan(2) = “丙“TianGan(3) = “丁“TianGan(4) = “戊“TianGan(5) = “己“TianGan(6) = “庚“TianGan(7) = “辛“TianGan(8) = “壬“TianGan(9) = “癸“地支名称DiZhi(0) = “子“DiZhi(1) = “丑“DiZhi(2) = “寅“DiZhi(3) = “卯“DiZhi(4) = “辰“DiZhi(5) = “巳“DiZhi(6) = “午“DiZhi(7) = “未“DiZhi(8) = “申“DiZhi(9)

14、 = “酉“DiZhi(10) = “戌“DiZhi(11) = “亥“属相名称ShuXiang(0) = “鼠“ShuXiang(1) = “牛“ShuXiang(2) = “虎“ShuXiang(3) = “兔“ShuXiang(4) = “龙“ShuXiang(5) = “蛇“ShuXiang(6) = “马“ShuXiang(7) = “羊“ShuXiang(8) = “猴“ShuXiang(9) = “鸡“ShuXiang(10) = “狗“ShuXiang(11) = “猪“农历日期名DayName(0) = “*“DayName(1) = “初一“DayName(2) = “初二

15、“DayName(3) = “初三“DayName(4) = “初四“DayName(5) = “初五“DayName(6) = “初六“DayName(7) = “初七“DayName(8) = “初八“DayName(9) = “初九“DayName(10) = “初十“DayName(11) = “十一“DayName(12) = “十二“DayName(13) = “十三“DayName(14) = “十四“DayName(15) = “十五“DayName(16) = “十六“DayName(17) = “十七“DayName(18) = “十八“DayName(19) = “十九“

16、DayName(20) = “二十“DayName(21) = “二十一“DayName(22) = “二十二“DayName(23) = “二十三“DayName(24) = “二十四“DayName(25) = “二十五“DayName(26) = “二十六“DayName(27) = “二十七“DayName(28) = “二十八“DayName(29) = “二十九“DayName(30) = “三十“农历月份名MonName(0) = “*“MonName(1) = “正“MonName(2) = “二“MonName(3) = “三“MonName(4) = “四“MonName(

17、5) = “五“MonName(6) = “六“MonName(7) = “七“MonName(8) = “八“MonName(9) = “九“MonName(10) = “十“MonName(11) = “十一“MonName(12) = “腊“公历每月前面的天数MonthAdd(0) = 0MonthAdd(1) = 31MonthAdd(2) = 59MonthAdd(3) = 90MonthAdd(4) = 120MonthAdd(5) = 151MonthAdd(6) = 181MonthAdd(7) = 212MonthAdd(8) = 243MonthAdd(9) = 273Mo

18、nthAdd(10) = 304MonthAdd(11) = 334农历数据NongliData(0) = 2635NongliData(1) = 333387NongliData(2) = 1701NongliData(3) = 1748NongliData(4) = 267701NongliData(5) = 694NongliData(6) = 2391NongliData(7) = 133423NongliData(8) = 1175NongliData(9) = 396438NongliData(10) = 3402NongliData(11) = 3749NongliData(12

19、) = 331177NongliData(13) = 1453NongliData(14) = 694NongliData(15) = 201326NongliData(16) = 2350NongliData(17) = 465197NongliData(18) = 3221NongliData(19) = 3402NongliData(20) = 400202NongliData(21) = 2901NongliData(22) = 1386NongliData(23) = 267611NongliData(24) = 605NongliData(25) = 2349NongliData(

20、26) = 137515NongliData(27) = 2709NongliData(28) = 464533NongliData(29) = 1738NongliData(30) = 2901NongliData(31) = 330421NongliData(32) = 1242NongliData(33) = 2651NongliData(34) = 199255NongliData(35) = 1323NongliData(36) = 529706NongliData(37) = 3733NongliData(38) = 1706NongliData(39) = 398762Nongl

21、iData(40) = 2741NongliData(41) = 1206NongliData(42) = 267438NongliData(43) = 2647NongliData(44) = 1318NongliData(45) = 204070NongliData(46) = 3477NongliData(47) = 461653NongliData(48) = 1386NongliData(49) = 2413NongliData(50) = 330077NongliData(51) = 1197NongliData(52) = 2637NongliData(53) = 268877N

22、ongliData(54) = 3365NongliData(55) = 531109NongliData(56) = 2900NongliData(57) = 2922NongliData(58) = 398042NongliData(59) = 2395NongliData(60) = 1179NongliData(61) = 267415NongliData(62) = 2635NongliData(63) = 661067NongliData(64) = 1701NongliData(65) = 1748NongliData(66) = 398772NongliData(67) = 2

23、742NongliData(68) = 2391NongliData(69) = 330031NongliData(70) = 1175NongliData(71) = 1611NongliData(72) = 200010NongliData(73) = 3749NongliData(74) = 527717NongliData(75) = 1452NongliData(76) = 2742NongliData(77) = 332397NongliData(78) = 2350NongliData(79) = 3222NongliData(80) = 268949NongliData(81)

24、 = 3402NongliData(82) = 3493NongliData(83) = 133973NongliData(84) = 1386NongliData(85) = 464219NongliData(86) = 605NongliData(87) = 2349NongliData(88) = 334123NongliData(89) = 2709NongliData(90) = 2890NongliData(91) = 267946NongliData(92) = 2773NongliData(93) = 592565NongliData(94) = 1210NongliData(

25、95) = 2651NongliData(96) = 395863NongliData(97) = 1323NongliData(98) = 2707NongliData(99) = 265877生成当前公历年、月、日 = GongliStrcurYear = yearcurMonth = monthcurDay = dayGongliStr = curYear & “年“If (curMonth WeekdayStrcurWeekday = Weekday(curTime)WeekdayStr = WeekName(curWeekday)计算到初始时间 1921 年 2 月 8 日的天数:1

26、921-2-8(正月初一 )TheDate = (curYear - 1921) * 365 + Int(curYear - 1921) / 4) + curDay + MonthAdd(curMonth - 1) - 38If (curYear Mod 4) = 0 And curMonth 2) ThenTheDate = TheDate + 1End If计算农历天干、地支、月、日isEnd = 0m = 0DoIf (NongliData(m) (Int(NongliData(m) / 65536) + 1) ThencurMonth = curMonth - 1End IfEnd I

27、f生成农历天干、地支、属相 = NongliStrNongliStr = “农历“ & TianGan(curYear - 4) Mod 60) Mod 10) & DiZhi(curYear - 4) Mod 60) Mod 12) & “年 “NongliStr = NongliStr & “(“ & ShuXiang(curYear - 4) Mod 60) Mod 12) & “生成农历月、日 = NongliDayStrIf (curMonth 1) ThenNongliDayStr = “闰“ & MonName(-1 * curMonth)ElseNongliDayStr = M

28、onName(curMonth)End IfNongliDayStr = NongliDayStr & “月“NongliDayStr = NongliDayStr & DayName(curDay) & “)“calendar = NongliStr & NongliDayStrEnd FunctionExcel networkdays 函数不能用是怎么回事啊 -在“工具” 菜单上,单击“ 加载宏”。 在“可用加载宏”列表中,选中 “分析工具库”框,再单击“确定” 。 就有了以 2009-4-23 为例,100 天后是 2009-8-1,你想得到什么结果,100 天后的日期 2009-8-1

29、?还是 100 天后是 1 号?假设日期放在 A1=A1+100 结果为日期 2009-8-1=DAY(A1+100) 结果为 1顺便说一下,日期是一个序列号,以 1900 年日期系统为例,数字 1 就是 1900-1-1,2 就是 1900-1-2,其他类推,因此可以直接加减。时间就是小数部分,如 0.5,就是 12 小时,数字 1.5 就是 1900-1-1 12:00excel 中日期是 2014-9-1,用什么函数可以直接显示年月转换下=TEXT(“2014-9-1“,“YYYY-MM“)可以直接引用的,比如在 A1 单元格=TEXT(A1,“YYYY-MM“) =TEXT(A1,“Y

30、YYYMM“) = TEXT(A1,“YYYY+MM“)日期与时间函数日期函数函数名 函数说明 语法DATE 返回代表特定日期的系列数。 DATE(year,month,day)DATEDIF 计算两个日期之间的天数、月数或年数。DATEDIF(start_date,end_date,unit)DATEVALUE 函数 DATEVALUE 的主要功能是将以文字表示的日期转换成一个系列数。DATEVALUE(date_text)DAY 返回以系列数表示的某日期的天数,用整数 1 到 31 表示。DAY(serial_number)DAYS360 按照一年 360 天的算法(每个月以 30 天计,

31、一年共计 12 个月),返回两日期间相差的天数。DAYS360(start_date,end_date,method)EDATE 返回指定日期 (start_date) 之前或之后指定月份数的日期系列数。使用函数 EDATE 可以计算与发行日处于一月中同一天的到期日的日期。EDATE(start_date,months)EOMONTH 返回 start-date 之前或之后指定月份中最后一天的系列数。用函数 EOMONTH 可计算特定月份中最后一天的时间系列数,用于证券的到期日等计算。EOMONTH(start_date,months)MONTH 返回以系列数表示的日期中的月份。月份是介于 1

32、(一月)和 12(十二月)之间的整数。MONTH(serial_number)NETWORKDAYS 返回参数 start-data 和 end-data 之间完整的工作日数值。工作日不包括周末和专门指定的假期NETWORKDAYS(start_date,end_date,holidays)NOW 返回当前日期和时间所对应的系列数。NOW( )TODAY 返回当前日期的系列数,系列数是 Microsoft Excel 用于日期和时间计算的日期-时间代码。TODAY( )WEEKDAY 返回某日期为星期几。默认情况下,其值为 1(星期天)到 7(星期六)之间的整数。WEEKDAY(serial_

33、number,return_type)WEEKNUM 返回一个数字,该数字代表一年中的第几周。WEEKNUM(serial_num,return_type)WORKDAY 返回某日期(起始日期)之前或之后相隔指定工作日的某一日期的日期值。工作日不包括周末和专门指定的假日。WORKDAY(start_date,days,holidays)YEAR 返回某日期的年份。返回值为 1900 到 9999 之间的整数。YEAR(serial_number)YEARFRAC 返回 start_date 和 end_date 之间的天数占全年天数的百分比。YEARFRAC(start_date,end_da

34、te,basis)时间函数HOUR 返回时间值的小时数。即一个介于 0 (12:00 A.M.) 到 23 (11:00 P.M.) 之间的整数。HOUR(serial_number)MINUTE 返回时间值中的分钟。即一个介于 0 到 59 之间的整数。MINUTE(serial_number)SECOND 返回时间值的秒数。返回的秒数为 0 至 59 之间的整数。SECOND(serial_number)TIME 返回某一特定时间的小数值,函数 TIME 返回的小数值为从 0 到 0.99999999 之间的数值,代表从 0:00:00 (12:00:00 A.M) 到 23:59:59 (11:59:59 P.M) 之间的时间。TIME(hour,minute,second)TIMEVALUE 返回由文本串所代表的时间的小数值。该小数值为从 0 到 0.999999999 的数值,代表从 0:00:00 (12:00:00 AM) 到 23:59:59 (11:59:59 PM) 之间的时TIMEVALUE(time_text间。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报