排序并查找 Top 和 Bottom 5 值及其对应的名称

Sort and find Top and Bottom 5 values and their corresponding names

我知道这不是第一次有人问类似的问题,但我尝试执行我在其他答案中发现的内容并没有完全按照我想要的方式工作。我希望这里有人能帮助我。

我有四列,第一列是产品名称,最后一列是它的 P/L%。我想整理出顶部和底部的 5 P/L% 值及其相应的产品名称。我附上了示例场景的屏幕截图,以防您无法理解我所解释的内容。

我尝试了在其他地方找到的 (sort(filter)) 方法,但它实际上弄乱了第二列和第三列。希望这里有人能给我一些简单的方法。

我的解决方案考虑了多个产品在 P/L% 中具有相同值并且我使用 Table 对象显示数据的情况。

要使用的公式


前 5 个获得者价值

=LARGE(ProductTable[P/L%]; ROWS($H$3:H3)),然后向下复制

Top 5 Gainer values

前 5 名涨幅产品名称

=INDEX(ProductTable[Product Name];AGGREGATE(14;6;(ROW(ProductTable[P/L%])-ROW (D$2)+1)/(ProductTable[P/L%]=H3);COUNTIF($H$3:H3;H3))),然后向下复制

Top 5 Gainers products name

前 5 个 Loosers 值

=SMALL(ProductTable[P/L%];ROWS($H$3:H3)),向下复制

Top 5 Loosers values

前 5 名 Loosers 产品名称

=INDEX(ProductTable[Product Name];AGGREGATE(14;6;(ROW(ProductTable[P/L%])-ROW (D$2)+1)/(ProductTable[P/L%]=K3);COUNTIF($K$3:K3;K3))),然后向下复制

Top 5 Loosers products name

简短说明

你必须使用 LARGESMALL 函数来获取数据数组中的最大值或最小值。

AGGREGATE 函数在这里解释起来有点复杂,所以我建议您 this link 更好地理解。基本上,我使用这个公式将 gainerlooser 产品名称的行放入 INDEX 函数.

ROWS($H$3:H3) returns 1,但是当你把这个公式抄下来的时候,你会得到2、3,等等。如果您需要前 5 个以上的值,这是扩展查询的好方法。


类似问题: https://www.excelforum.com/excel-formulas-and-functions/1208726-index-match-large-and-duplicates.html