如何找到过滤列的条件最小值?

Posted

技术标签:

【中文标题】如何找到过滤列的条件最小值?【英文标题】:How to find the conditional minimum of a filtered column? 【发布时间】:2019-06-27 12:37:19 【问题描述】:

我想从一列数据中找到条件最小值,但让它响应数据过滤。

我在 excel 中有一个表格,顶部有一个摘要部分,一些图表绘制了数据的各个方面,数据进一步向下。 可以过滤数据,这会更新图表,但不会更新摘要部分。 摘要部分显示诸如最小值、最大值、平均值和标准差之类的内容。 如何使这些响应数据过滤同时也是有条件的? 本质上:当 B 列等于 X 时,在 A 列中找到最小值,如果有任何列被过滤,则更新结果。

我查看了SUBTOTAL,但它不允许条件。 还有像SUMPRODUCT((SUBTOTAL(3,OFFSET(INDEX($A$1:$A$10,1,1),ROW($A$1:$A$10)-ROW(INDEX($A$1:$A$10,1,1)),0))=1),($B$1:$B$10="value"),$C$1:$C$10)这样的函数,当B列等于“值”时计算C列的总和,并在过滤器更新时更新(假设过滤器包括A、B和C列)。

【问题讨论】:

如果你有 Excel 2019 或 365,你可以使用函数MAXIFS。如果没有,您将需要一个数组公式来根据条件获取范围的最大值。也许您可以将 SUBTOTAL 与数组公式结合起来完成它? 你能多放一列,只显示满足条件的值,然后使用小计找到该列的最小值吗? 【参考方案1】:

如果您可以添加一个对您非常有帮助的帮助列,例如:

D2中使用的公式:

=SUBTOTAL(3,A2)

这个公式最终会为可见单元格留下 1,为不可见单元格留下 0。您可以选择隐藏此列。我们可以在多条件数组公式中针对这一列进行测试。

F1中的公式:

=MIN(IF((B2:B7="Z")*(D2:D7=1),C2:C7))

通过CtrlShiftEnter

确认

请参考this示例。

您可以根据您的其他需求(最大、平均)执行相同类型的公式

【讨论】:

以上是关于如何找到过滤列的条件最小值?的主要内容,如果未能解决你的问题,请参考以下文章

范围内数据框所有列的最小值

获取二维数组中某一列的最小值

Panda DF:在有条件的多列中查找最小值

按条件过滤大熊猫

计算系列中的最大值时出错

熊猫数据框:在固定其他列的列中提取具有特定标准/条件最小值的数据[重复]