ITPub博客

首页 > 数据库 > 数据库开发技术 > 这样处理日期问题,居然让工作效率提升10倍

这样处理日期问题,居然让工作效率提升10倍

原创 数据库开发技术 作者:猴子数据分析 时间:2019-08-01 21:00:00 0 删除 编辑


工作中会经常遇到处理日期的需求,比如:

人事部门要做一份员工工龄统计...

财务部门需要计算一下每项业务的付款周期...

下面我们通过一个案例,来看下如何解决这类“日期间隔”的问题,让你在职场中如鱼得水。


现有一份电商婴儿数据报表,里面记录了电商网站上购买的婴儿商品信息,比如婴儿的出生日期,购买商品的日期。现在领导要求快速计算出婴儿“”年龄“这一列里的值,该如何实现呢?


第1种操作套路:

1)用“出生日期”列得到婴儿的出生年份

2)用“购买日期”列得到当前的年份

3)年龄=当前年份 - 出生年份



或许,还有第2种套路...



虽然通过上面两种方法,我们可以达到目的。但是,如果业务需求不只是求年龄呢?比如还要求月份差,天数差呢?


此时,赶紧呼唤我们的主角出场:datedif函数


现在,把舞台交给他...


先做一下自我介绍吧!


大家久等啦!我叫datedif,是函数家族的成员之一。但是我天生内向,大家可以叫我隐藏函数。


什么是隐藏函数呢?


在电影《哪吒》里,大家藏起来,被哪吒找出来,就是“隐藏”。



同样的,隐藏函数,顾名思义就是在函数列表中是找不到的。


输入datedif的前几个字母后无法通过Tab键来补全函数


我的身体由3个参数组成,分别是:起始日期、结束日期、返回值。


我的主要功能是:计算两个日期之间的差值。这个差值可以是年、月、日等不同的值。


我来具体演示一下吧。


1.年份差


当“返回值”是2个日期的年份差值时,第3个参数写y,并用双引号包裹。

"y":返回两个日期之间的整年数差,不足一年的不累计


公式写好之后,将公式填充到整列,就返回了年龄值



2.月份差


问:假如我的需求不是年龄,而是月龄呢?

答:“y”替换成“m”即可

"m":返回两个日期之间的整月数,不足一个月的不累计



3.天数差


问:假如我的需求不是年龄,而是间隔天数呢?

答:“y”替换成“d”即可

"d":返回两个日期之间的整天数



公式写好之后,将公式填充到整列,返回间隔天数


火眼金晶的童鞋早就看出了一处问题,一直在等待,案例中总有一处返回值#NUM(上图中黄色块的地方),为什么呢?


答:召唤我做任务时,有一个潜规则:第一个参数(起始日期)必须小于第二个参数(结束日期),否则就会返回#NUM。


4.与其他函数结合使用


此外,在实际应用中,datedif函数还经常嵌套today函数(表示当前日期)来实现某些目的。


比如想计算一下自己数据分析学了多久呢?以提醒自己是否要加快速度。


datedif的第一个参数写"开始日期",即N2单元格

第二个参数写today(),用今天的日期代表"结束日期"

第三个参数写"d",即结果返回天数



根据上述原理,我们可以进一步制定一份学习进展表,方便每日更新进展


在0列输入datedif函数,=datedif(N2,today(),"d")

再用公式填充整列,即可返回每一项学习任务已开展的天数



现在,学会了datedif函数来处理日期问题,你的工作效率是不是提升了很多?


推荐:你必须要学会,1个各行各业通用的技能


原文作者:猴子数据分析;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2017-01-16

  • 博文量
    865
  • 访问量
    345503