Excel 日期相减处理

您所在的位置:网站首页 excel日期和日期相减 Excel 日期相减处理

Excel 日期相减处理

2024-07-12 18:10| 来源: 网络整理| 查看: 265

       今天帮用户处理了一个excel日期相减的问题,委实折腾了我一个来小时,这里由衷的感叹微软Excel的强大,同时又想臭骂微软的顽疾(中看不中用)。

       问题描述如下:

A

B

C

D

E

20100101

20090912

2010/1/1

2009/9/12

111

20100101

20090914

2010/1/1

2009/9/14

109

20090823

20100101

2009/8/23

2010/1/1

-131

20091104

20100101

2009/11/4

2010/1/1

-58

20100102

20090818

2010/1/2

2009/8/18

137

20100102

20091205

2010/1/2

2009/12/5

28

20100102

20090412

2010/1/2

2009/4/12

265

       A列和B列存放的是日期格式化成年、月、日的值,用户希望得到A列和B列的日期相差几天。看上去很简单,用excel自带的DATEDIF(start_date,end_date,unit) 函数相减一下即可,其实不然。

 

       解决:

       1)由于datedif只能处理日期值,或者类似2010/12/13等字串,而20101213,其无法处理,同时为了让用户更好明白日期差是如何得到,于是新增C、D列分别存放A、B转换后的日期值,转换公式为

       C2=DATE(MID(A2,1,4),MID(A2,5,2),MID(A2,7,2))

 

       2)datedif函数处理

       原以为通过函数datedif(start_date,end_date,”d”)即可得到两个日期的天数之差,可是当end_date小于start_date时,该函数执行就出错了,真是对微软这种中看不中用的做法深恶痛绝呀。幸好的是,我们可以先比较start_date,end_date大小,然后交换start_date,end_date的顺序即可。

       新增E列,存放C、D列日期的天数之差,计算公式如下:

E2=IF(C2>D2,1,-1)*IF(C2>D2,DATEDIF(D2,C2,"d"),DATEDIF(C2,D2,"d"))



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3