Excel - 根据标准查找第 n 个最大值

标签 excel

这是对这个问题的一种扩展:Excel - Sum values from the data set based on criteria

我有一张这样的 table :

Country Region    Code  Name of product Year   Value
Sweden  Stockholm 52    Apple           1995   1000
Sweden  Malmö     25    Pancake         1991   1500
Sweden  Malmö     52    Apple           1992   2470
Finland Helsinki  21    Candy           1987   2500
Denmark Copenhagen 52   Apple           1987   2571

我想做的是制作一个代码,它可以给我在特定国家/地区销售的第 n 个最大值(value)的总和。

也就是说,如果我想得到最高的value对于 products售于 Sweden它应该返回 Apple和售出苹果的总和,3470 .

编辑:Glitch_Doctor 的解决方案:

enter image description here

最佳答案

首先,对于值:

两个公式都是数组公式,请在公式栏中按Ctrl+Shift+Enter确认公式
=MAX(SUMIFS($F$2:$F$6,$A$2:$A$6,$I2,$D$2:$D$6,$D$2:$D$6))
这将构建 SUMIFS() 的数组单元格中的国家/地区结果$I2然后每个产品名称获取 MAX()结果。

和产品名称:
=INDEX($D$2:$D$6,SMALL(IF(SUMIFS($F$2:$F$6,$A$2:$A$6,$I2,$D$2:$D$6,$D$2:$D$6)=$K2,ROW($D$2:$D$6)-1),1))
现在使用最大值 SUMIFS()结果,我们引用了SUMIFS()的列表结果并获取产品的行(偏移到 INDEX() 的开头)并检索最小的行号。

enter image description here

您可以调整MAX()在第一个公式中为 LARGE(,n)其中 n 是第 n 个最大的结果。

关于Excel - 根据标准查找第 n 个最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52330699/

相关文章:

VBA Excel - 如果范围内有任何单元格

c# - Range[] 而不是 get_Range()

java - 使用 Java 在 Excel 中进行验证

excel - 在 Excel 中使用 VBA 将分隔字符串拆分并替换为新行

Excel 新数据类型

java - 我想从java中的excel表中删除重复的值

python - Excel错误可能是pandas写的还是大数据导致的?需要建议

excel - 变量类型的自定义类的父对象

mysql - UPDATE 查询语法错误

vba - 将工作表从一个工作簿复制到另一个工作簿时出错