Excel中有个工作表函数DateDif,专门用来计算两日期之间的日差、月差、年差,传说十分好用。

具体用法在此就省略了,好奇的童鞋请自行*度~

可是,在Excel里,他却是个“没户口”的……且至今还是“黑户”……这都多少年过去了,他这户口问题,到现在没解决!

有人说,那是因为DateDif有BUG,别的不说,就看这:

从1月31日到3月1日之间 忽略年和月的单纯的日差,差,呃,-2天?你说他怎么想的?公式结果都混成这样了,还想报户口?难怪黑户了!

可是,你造吗?DateDif童鞋这是在背锅……

这话,就得从工作表中的日期本质开始说起了,事实上,日期就是数值穿了件外衣,数值就是日期的裸奔形式……咳咳,有点扯远了,好吧我们来看这个:

B2里显示的是数值“44470”,对他设置单元格数字格式时,里面【短日期】和【长日期】的选项就是2021年10月1日,所以“44470”其实是在裸奔……咳咳……不是,我其实想说,日期,是一个连续的值,从1900年1月1日起,每一天相当于数值1,一路小跑到今天,终于奔到了44470……(暂时忽略1900-2-29的问题)

再重复一遍:工作表日期,从1900-1-1至9999-12-31,本质上是一个连续的数值、连续的数值、连续的数值、连续的!连续的!连续的!

所以,DateDif函数的结果也是连续的!连续的!连续的!

从1月1日起,到2月25日、26日……3月1日、2日,年差都是0,月差从1到2,日差也都是顺着来,这,没毛病吗?

可是,从1月31日起,毛病就来了……

你说,人家能怎么办呢?从月的角度来看,1月31日到3月1日之间,确实是相隔一个月以上了,一个1月一个3月啊,但两者的日期相隔呢?呃29天?好像有道理,所以,1月31日到3月1日之间相隔了一个月外加29天?这小学算术是谁教的?

再加上之前一直强调的,日期是个连续的数值,DateDif的结果也是连续的数值,所以这里不用负数用谁啊?否则你让人家怎么连续啊?

那么话又说回来了,这锅,DateDif童鞋究竟是在为谁背?

为设计日期的那个家伙!因为每个月的天数有差异,有28天、有29天、有30天、有31天。

所以,当DateDif里的起始日期是1-27日时,人家绝对是函数界里的五好青年,不怕苦不怕累埋头苦干兢兢业业计算着每两个日期之间的各种差……

好吧,我这话说太早了,从1月27日到2月27日(非闰年)之间,相差几个月几天?1个月0天,好像是对的,可是,好像,又有哪里不对?!

1月27日距月底还有4天,2月27日距月底,就1天了,怎么能说这二位相差1个月0天?

所以,在我们认知当中,日期差有两个标准,一是以月初为标准,另一是以月末为标准,月初都是从1日开始,这个没毛病, 而月末……

我们是否可以设计一套函数,把月末作为标准呢?这个,嗯,可以有!

公式如下:

Y:=YEAR(EDATE(B3+DAY(EOMONTH(A3,0))-DAY(A3)+1,-MONTH(A3)))-YEAR(A3)

YM:=MOD(MONTH(B3+DAY(EOMONTH(A3,0))-DAY(A3)+1)+11-MONTH(A3),12)

MD: =DAY(B3+DAY(EOMONTH(A3,0))-DAY(A3)+1)-1

如此一来,日期间隔有了两个标准,理论上是可以用IF来加个判断,某天(比如28日)之前的用DateDif,之后的用月末标准。但是这样一来,必然又会出现另一个问题,明明起始日期不是同一天,相差结果却是一样,抽嘴角……

所以,这个BUG,其实是解决不了了,大概这才是导致DateDif这位大好青年一直以来“黑户”的真正原因吧。

彻底解决的办法有没有呢?

肯定是有的,那就是改日期规则,每年12个月、每月全部固定30天,多下来5、6天怎么办呢?

全部算假期呗~

替DateDif哭诉一把(Excel函数集团)的更多相关文章

  1. LET函数(Excel函数集团)

    LET函数,是个Office365新增函数,所以,还在用上古版本的童鞋请无视此篇哈~ 话说Excel中,有个自定义名称的功能,如下图,左右两个表分别自定义了"data1"和&quo ...

  2. Vlookup大叔与一对多查找(Excel函数集团)

    所谓一对多查找,就是根据一个条件,把多个符合条件的结果全部找出来. 其实吧,一对多查找不是什么,尤其是O365的Filter函数横空出世震撼全场之后,简直就是瞬间把所有传统的数组解法甩出去七八十来条街 ...

  3. Vlookup大叔早已油腻(Excel函数集团)

    1.Vlookup基础用法:https://mp.weixin.qq.com/s/0JRytWlBD-KYM2jkecG2rA 2.合并字符串:https://mp.weixin.qq.com/s/9 ...

  4. 字符串函数(Excel函数集团)

    此处文章均为本妖原创,供下载.学习.探讨! 文章下载源是Office365国内版1Driver,如有链接问题请联系我. 请勿用于商业!谢谢 下载地址:https://officecommunity-m ...

  5. 日期与时间函数(Excel函数集团)

    此处文章均为本妖原创,供下载.学习.探讨! 文章下载源是Office365国内版1Driver,如有链接问题请联系我. 请勿用于商业!谢谢 下载地址:https://officecommunity-m ...

  6. 统计函数(Excel函数集团)

    此处文章均为本妖原创,供下载.学习.探讨! 文章下载源是Office365国内版1Driver,如有链接问题请联系我. 请勿用于商业! 谢谢 下载地址:https://officecommunity- ...

  7. 数组基础(Excel函数集团)

    此处文章均为本妖原创,供下载.学习.探讨! 文章下载源是Office365国内版1Driver,如有链接问题请联系我. 请勿用于商业! 谢谢 下载地址:https://officecommunity- ...

  8. 数据库函数(Excel函数集团)

    此处文章均为本妖原创,供下载.学习.探讨! 文章下载源是Office365国内版1Driver,如有链接问题请联系我. 请勿用于商业! 谢谢 下载地址:https://officecommunity- ...

  9. 其他(Excel函数集团)

    此处文章均为本妖原创,供下载.学习.探讨! 文章下载源是Office365国内版1Driver,如有链接问题请联系我. 请勿用于商业!谢谢 下载地址:https://officecommunity-m ...

随机推荐

  1. [bzoj1264]基因匹配

    首先朴素dp的方程,即$f[i][j]=max(f[i][j-1],f[i-1][j],(a[i]==b[j])*(f[i-1][j-1]+1))$,这中间特殊的转移只在a[i]=b[j]时,而在这道 ...

  2. html+css第二篇

    <img src="图片地址" alt="图片名"/> 图片(单标签)alt属性 是图片名字,是给百度搜索引擎抓取使用: a标签: 链接/下载/锚点 ...

  3. 【Microsoft Azure 的1024种玩法】八. 基于Azure云端轻松打造一款好用的私有云笔记

    [简介] Leanote一款开源云笔记软件,它使用Go的Web框架revel和MongoDB开发完成的,其是目前为止发现的最有bigger的云笔记,它支持markdown输入,代码高亮,多人协作,笔记 ...

  4. Kafka连接器建立数据管道

    1.概述 最近,有同学留言咨询Kafka连接器的相关内容,今天笔者给大家分享一下Kafka连接器建立数据管道的相关内容. 2.内容 Kafka连接器是一种用于Kafka系统和其他系统之间进行功能扩展. ...

  5. P6973 [NEERC2016]List of Primes

    题目传送门. 题意简述:将质数集合的所有子集按照子集和为第一关键字,字典序为第二关键字从小到大排序,求最终形成的字符串的第 \(l\sim r\) 个字符. 在 cnblogs 内查看. 又是一道妙妙 ...

  6. Linux Alpine安装 Nginx

    Linux Alpine安装 Nginx 安装需要编译Nginx的扩展 apk add wget gcc g++ make 安装Nginx URL重定向,正则表达式模块pcre Pcre 源码下载地址 ...

  7. nginx_日志

    192.168.31.250 - - [13/Nov/2019:08:38:07 +0800] "GET /aa HTTP/1.1" 404 571 "-" & ...

  8. Oracle基础入门

    说明:钓鱼君昨天在网上找到一份oracle项目实战的文档,粗略看了一下大致内容,感觉自己很多知识不够扎实,便跟着文档敲了一遍,目前除了机械性代码没有实现外,主要涉及知识:创建表空间.创建用户.给用户赋 ...

  9. Swift-技巧(十) Protocol 的灵活使用

    摘要 Protocol 是 Swift 中实现面向协议编程思想的重要部分.在使用过程中有遇到协议中声明的部分,但是在遵守部分不需要实现的,那么就需要使用 extension 参与进来,让 Protoc ...

  10. 设计和实现OLAP解决方案 [转]

    第一讲 简介首先,啥叫数据仓库? 数据仓库就是数据的仓库!用外文说叫Data Warehouse,简称DW. 是不是哐当倒下一片啊,要不咱换个专业点的说法? 数据仓库是一个面向主题的.集成的.相对稳定 ...