前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Excel公式练习71: 求最近一次活动的日期(续)

Excel公式练习71: 求最近一次活动的日期(续)

作者头像
fanjy
发布2020-07-16 17:37:21
2.1K0
发布2020-07-16 17:37:21
举报
文章被收录于专栏:完美Excel完美Excel

下图1所示,求单元格F12中指定名称所对应的最新日期?在单元格区域B12:C20中是要查找的数据。

图1
图1

如何在单元格F13中编写公式?

先不看答案,自已动手试一试。

解决方案

公式1:使用LOOKUP函数

=LOOKUP(2,1/(B13:B20=F12),C13:C20)

很显示,使用LOOKUP公式不可取,我们必须构造一个供查找的数组,即公式中的:

1/(B13:B20=F12)

这样,公式转换为:

=LOOKUP(2, {1;#DIV/0!;#DIV/0!;1;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!},C13:C20)

LOOKUP函数在生成的中间数组中找不到要查找的值2,返回小于2的最大值所对应的C13:C20中单元格的值。

公式2:使用MAX/SUMPRODUCT函数

=SUMPRODUCT(MAX((B13:B20=F12)*(C13:C20)))

这个公式由于日期在Excel中是以数字形式存储的,因此可以将它们与TRUE/FALSE值组成的数组相乘,上述公式可转换为:

=SUMPRODUCT(MAX({TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE}*{41091;41091;41091;41092;41092;41093;41094;41094}))

可转换为:

=SUMPRODUCT(MAX({41091;0;0;41092;0;0;0;0}))

得到:

41092

即该日期对应的序数,设置适当的格式后在Excel中显示相应的日期。

我们使用了SUMPRODUCT函数强制进行数组运算,如果不使用SUMPRODUCT函数,则在输入公式:

=MAX((B13:B20=F12)*(C13:C20))

需按Ctrl+Shift+Enter组合键。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档