例如,下图1所示,求单元格F12中指定名称所对应的最新日期?在单元格区域B12:C20中是要查找的数据。
图1
如何在单元...
本文分享:excel如何筛选最近一次活动的日期
例如,下图1所示,求单元格F12中指定名称所对应的最新日期?在单元格区域B12:C20中是要查找的数据。
图1
如何在单元格F13中编写公式?
先不看答案,自已动手试一试。
解决方案
公式1:使用LOOKUP函数
=LOOKUP(2,1/(B13:B20=$F$12),$C$13:$C$20)
很显示,使用与《Excel公式练习70:求最近一次活动的日期》中一样的LOOKUP公式不可取,我们必须构造一个供查找的数组,即公式中的:
1/(B13:B20=$F$12)
这样,公式转换为:
=LOOKUP(2, {1;#DIV/0!;#DIV/0!;1;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!},$C$13:$C$20)
COUNTIF函数在文本排序中的应用
我们知道,COUNTIF函数通常用于查找指定单元格区域中满足条件的单元格数量。然而,COUNTIF函数有一个比较有用的用法,它可以统计指定区域中大于或小于指定值的单元格数量。例如,公式: COUNTIF({a,b,c,d,e,f,g,h},'
LOOKUP函数在生成的中间数组中找不到要查找的值2,返回小于2的最大值所对应的C13:C20中单元格的值。
公式2:使用MAX/SUMPRODUCT函数
=SUMPRODUCT(MAX((B13:B20=$F$12)*(C13:C20)))
这个公式与《Excel公式练习70:求最近一次活动的日期》中的一样,由于日期在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=$F$12)*(C13:C20))
需按Ctrl Shift Enter组合键。
excel函数参数数组如何运算
本文分享:excel函数参数数组如何运算 下图1展示了一个使用LEN函数计算单元格中字符数的公式。LEN函数接受单个项目作为其参数text,输出单个项目作为其返回值。 图1 对于接受单个项目的函数参数来说,有一条规则:如果对接受单个项目的函数参数使用单个项目,那么该函数将提供单个项目作为其返回值。 然而,如果在