在 EXCEL 中,如果前一个单元格等于 TRUE,则为 MAX

在 EXCEL 中,如果前一个单元格等于 TRUE,则为 MAX

编辑以包含示例:如果前一个单元格等于 TRUE,如何显示一行中的最大数字?在此处输入图片描述

我想显示已参加活动的最新日期。但前提是该人已参加该活动。

如您所见,John 参加的最后活动日期应为 2019 年 2 月 13 日,但我现在的公式只计算出最重要日期,而不考虑此人是否参加了活动。这有可能实现吗?

答案1

如果您有 MAXIFS:

=MAXIFS(B:B,A:A,TRUE)

如果没有,那么你可以做 AGGREGATE:

=AGGREGATE(14,7,$B$1:$B100/($A$1:$A$100),1)

或者这个数组公式:

=MAX(IF($A$1:$A$100,$B$1:$B100))

最后一个要求在退出编辑模式时使用 Ctrl-Shift-Enter 而不是 Enter。

最后两个是数组类型公式,因此引用范围应该限于数据集。

答案2

简短的回答就是做矩阵数学!

基本上,我们可以将列相乘,然后找到“MAX”。 “True”的值为 1,而“False”的值为 0。假设您的“真/假”列为“A”,而您的值列为“B”,您将需要类似以下内容:

=MAX(($A:$A)*($B:$B))

重要的

为了进行矩阵运算...Excel 要求您按下controlshiftenter进行矩阵运算。简单地输入公式并按下 是enter行不通的。

在此处输入图片描述

此方法有一个问题...这会产生负数问题...因为假列将计算为 0...因此最大值将为 0。

相关内容