【问题标题】:Sort and find Top and Bottom 5 values and their corresponding names排序并查找前 5 个值和后 5 个值及其对应的名称
【发布时间】:2021-03-18 23:12:17
【问题描述】:

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

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

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

【问题讨论】:

  • 什么版本的 Excel?展示你尝试了什么以及它是如何“搞砸”的。我不明白为什么您需要结果中的第 2 列或第 3 列。另外,您想如何处理重复的 P/L%?

标签: excel excel-formula spreadsheet


【解决方案1】:

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

要使用的公式


前 5 大赢家价值

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

Top 5 Gainer values

Top 5 Gainers 产品名称

=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

Top 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更好地理解。基本上,我使用这个公式将 gainerloser 产品名称的行放入 INDEX 函数中。

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


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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-27
    • 1970-01-01
    • 2019-03-25
    相关资源
    最近更新 更多