这是对这个问题的一种扩展: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](https://i.sstatic.net/d0SO2.png)
最佳答案
首先,对于值:
两个公式都是数组公式,请在公式栏中按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()
的开头)并检索最小的行号。
您可以调整MAX()
在第一个公式中为 LARGE(,n)
其中 n 是第 n 个最大的结果。
关于Excel - 根据标准查找第 n 个最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52330699/