首页 > 解决方案 > 排序并查找前 5 个值和后 5 个值及其对应的名称

问题描述

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

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

示例电子表格屏幕截图

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

标签: excelexcel-formulaspreadsheet

解决方案


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

使用的公式


前 5 名赢家价值观

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

前 5 大赢家价值观

Top 5 Gainers 产品名称

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

Top 5 Gainers 产品名称

前 5 个失败者值

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

前 5 个失败者值

Top 5 Loosers 产品名称

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

Top 5 Loosers 产品名称

简短说明

当您想要获取数据数组中的最大值或最小值时,您必须使用LARGESMALL函数。

AGGREGATE函数在这里解释起来有点复杂,所以我建议你这个链接更好地理解。基本上,我使用这个公式将增益或宽松产品名称的放入INDEX函数

ROWS($H$3:H3)返回 1,但是当您复制此公式时,您会得到 2、3,依此类推。如果您需要超过前 5 个值,这是扩展查询的好方法。


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


推荐阅读