Excel 日期相减处理 |
您所在的位置:网站首页 › excel日期和日期相减 › Excel 日期相减处理 |
今天帮用户处理了一个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 |