「Excel官宣」:按要求获取最晚和最早日期!
hello,昨天我比较喜欢的颖火虫官宣结婚了,这里祝福她,幸幸福福!今天和大家分享Excel中如何按条件进行获取最晚及最早日期呢?
举个栗子:
下面要求甲在A001项目最早的记录和最晚记录,以及乙在A005项目最早记录和最晚记录的日期。
这里和大家标记一下我们需要查找的内容
乙在A005项目最早记录和最晚记录的日期。
甲在A001项目最早的记录和最晚记录
当然数据源不够多,我们可以一眼找出然后登记。但是当数据足够大,出现的条件次数足够多,这样肉眼查找无疑是大海捞针。接下来用函数去处理吧。
#求最早出现日期#
方法:MIN+IF+数组
=MIN(IF(--($A$2:$A$11=A16)*($B$2:$B$11=B16),$C$2:$C$11))
公式编辑完成后,要以三键结束(Ctrl+shift+enter)
解释:IF里面满足的两个条件限制,这里用的数组思维,结果返回满足两个条件的所有日期数组。日期实际上是整数,所以最后用min函数取日期数组里面最小的日期。(为了结果是数值型,别忘了加“--”)
#求项目最后记录日期#
方法1:MAX+IF+数组
=MAX(IF(--($A$2:$A$11=A16)*($B$2:$B$11=B16),$C$2:$C$11))
公式编辑完成后,要以三键结束(Ctrl+shift+enter)
解释:和最早日期提取思维一样。只是结果要返回最大的日期而已。
方法二:lookup函数
如果日期记录本身就是按照从小到大的排列(即升序排列),我们可以利用lookup的二分法原则去提取到最后出现的日期。
使用语法:
=LOOKUP(1,0/(条件1)*(条件2)),返回值区域)
公式:
=LOOKUP(1,0/(($A$2:$A$11=A16)*($B$2:$B$11=B16)),$C$2:$C$11)
如果我们对记录日期列降序排列,结果如下:
因此大家只要会MAX+IF就OK了。也不是很难理解。
今天的文章就和大家分享到这里了,大家下去总结练习一下吧,有不明白的可以留言哦,小菜看到后会第一时间回复!
查看原文 >>