「Excel官宣」:按要求获取最晚和最早日期!

2019-02-25 08:00 · office技巧分享
摘要:hello,昨天我比较喜欢的颖火虫官宣结婚了,这里祝福她,幸幸福福!今天和大家分享Excel中如何按条件进行获取最晚及最早日期呢?

举个栗子:

「Excel官宣」:按要求获取最晚和最早日期!

下面要求甲在A001项目最早的记录和最晚记录,以及乙在A005项目最早记录和最晚记录的日期。

这里和大家标记一下我们需要查找的内容

「Excel官宣」:按要求获取最晚和最早日期!

乙在A005项目最早记录和最晚记录的日期。

「Excel官宣」:按要求获取最晚和最早日期!

甲在A001项目最早的记录和最晚记录

当然数据源不够多,我们可以一眼找出然后登记。但是当数据足够大,出现的条件次数足够多,这样肉眼查找无疑是大海捞针。接下来用函数去处理吧。

#求最早出现日期#

方法:MIN+IF+数组

=MIN(IF(--($A$2:$A$11=A16)*($B$2:$B$11=B16),$C$2:$C$11))

公式编辑完成后,要以三键结束(Ctrl+shift+enter)

解释:IF里面满足的两个条件限制,这里用的数组思维,结果返回满足两个条件的所有日期数组。日期实际上是整数,所以最后用min函数取日期数组里面最小的日期。(为了结果是数值型,别忘了加“--”)

「Excel官宣」:按要求获取最晚和最早日期!

#求项目最后记录日期#

方法1:MAX+IF+数组

=MAX(IF(--($A$2:$A$11=A16)*($B$2:$B$11=B16),$C$2:$C$11))

公式编辑完成后,要以三键结束(Ctrl+shift+enter)

解释:和最早日期提取思维一样。只是结果要返回最大的日期而已。

「Excel官宣」:按要求获取最晚和最早日期!

方法二:lookup函数

如果日期记录本身就是按照从小到大的排列(即升序排列),我们可以利用lookup的二分法原则去提取到最后出现的日期。

使用语法:

=LOOKUP(1,0/(条件1)*(条件2)),返回值区域)

公式:

=LOOKUP(1,0/(($A$2:$A$11=A16)*($B$2:$B$11=B16)),$C$2:$C$11)

「Excel官宣」:按要求获取最晚和最早日期!

如果我们对记录日期列降序排列,结果如下:

「Excel官宣」:按要求获取最晚和最早日期!

因此大家只要会MAX+IF就OK了。也不是很难理解。


发送
获取验证码
确定
恭喜您投票成功