Hello,各位小伙伴们大家好呀。又是好久没更新了,大家有没有想我呀。距离上次推文到今天已经过去 268 天了。这里用 DATEDIF 函数计算一下就可以得到结果。
=DATEDIF("2019-01-30", "2020-10-24", "d")
史上最全的身份证号码处理思路合集
身份证号码的各种处理和计算方式大集合。涉及函数的综合应用,实用又有趣。
断更的这段时间里,Yogurt 在负责一些关于程序开发的工作,实在是抽不出时间来更新,这两天稍微能有点时间,来和大家聊聊天。
说起来,今天就是 "1024程序员节" 了,祝大家函数公式永不报错!VBA 永无 BUG !所有需求都能一稿过!初心不泯,永远保持对世界的好奇和热爱!Hello,World!
一直都有小伙伴来和 Yogurt 一起交流关于如何编写一个更好的函数公式的问题,一是时间关系,二是苦于没找到一个比较合适的案例来和大家分享。最近 Yogurt 在『Excel学习群』(群号:93123600 / 815602122) 里看到有两个小伙伴 @沙拉、@币马翁 分享出来请求支援的案例,刚好都符合这一期想要和大家分享的话题内容。因此,就以分享这两个案例的过程来和大家一起聊一聊——"用数学的思路编写Excel公式"。
国际惯例先上案例。
(以下所有的数据都进行了脱敏处理,
案例的使用提前知会了当事人)
1
检查未核对发票的月份
1.1 需求说明
上述就是需求的表格内容。要求如下:
在备注列 ( N 列) 中编写一条公式,根据月份列 ( E列、G列、I列、K列) 中单元格的值是否为 0.00 来判断该月的发票是否核销。
当月份列的单元格的值为 0.00 时,则需要在备注栏中输出该月份名称。当所有的月份列的单元格均不为 0.00 时,则无需显示任何内容。
例如:
1)5 月、6 月、7 月、8 月的金额都不为 0.00,备注列显示为空
2)5 月、7 月的金额不为 0.00,备注列显示为『 因其个人原因,6 月、8 月未报销』
需求最终效果如下:
2.1 需求分析
从需求出发,其实解决起来也很简单,分别逐个对这些单元格进行判断,将所有的计算结果全部合并起来就可以了。一般情况下,也是我们第一时间能反应过来的方法。如下图:
=IF(OR($E2=0,$G2=0,$I2=0,$K2=0),"因其个人原因,"&MID(IF($E2=0,"、"&$E$1,"")&IF($G2=0,"、"&$G$1,"")&IF($I2=0,"、"&$I$1,"")&IF($K2=0,"、"&$K$1,""),2,999)&"未报销","")
但有没有别的不一样的思路可以解决这个问题呢?如果这里有 12 个月份列,而我们依然采用这种方法来解决的话,将会如何?再如下图:
=IF(OR($E2=0,$G2=0,$I2=0,$K2=0,$M2=0,$O2=0,$Q2=0,$S2=0,$U2=0,$W2=0,$Y2=0,$AA2=0),"因其个人原因,"&MID(IF($E2=0,"、"&$E$1,"")&IF($G2=0,"、"&$G$1,"")&IF($K2=0,"、"&$K$1,"")&IF($M2=0,"、"&$M$1,"")&IF($O2=0,"、"&$O$1,"")&IF($Q2=0,"、"&$Q$1,"")&IF($S2=0,"、"&$S$1,"")&IF($AA2=0,"、"&$AA$1,"")&IF($U2=0,"、"&$U$1,"")&IF($W2=0,"、"&$W$1,"")&IF($Y2=0,"、"&$Y$1,"")&IF($AA2=0,"、"&$AA$1,""),2