excel - 排序并查找前 5 个值和后 5 个值及其对应的名称
问题描述
我知道这不是第一次有人问类似的问题,但我试图执行我在其他答案中发现的内容并没有完全按照我想要的方式工作。我希望这里有人可以帮助我。
我有四列,第一列是产品名称,最后一列是它的 P/L%。我想整理出顶部和底部 5 P/L% 值及其对应的产品名称。如果您无法理解我解释的内容,我会附上示例场景的屏幕截图。
我尝试了在其他地方找到的 (sort(filter)) 方法,但它实际上搞砸了第二列和第三列。我希望这里有人可以给我一些简单的方法。
解决方案
我的解决方案考虑了多个产品在 P/L% 中具有相同值并且我使用 Table 对象来显示数据的情况。
使用的公式
前 5 名赢家价值观
=LARGE(ProductTable[P/L%]; ROWS($H$3:H3)),然后复制下来
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))),然后复制下来
前 5 个失败者值
=SMALL(ProductTable[P/L%];ROWS($H$3:H3)),然后复制下来
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))),然后复制下来
简短说明
当您想要获取数据数组中的最大值或最小值时,您必须使用LARGE和SMALL函数。
AGGREGATE函数在这里解释起来有点复杂,所以我建议你这个链接更好地理解。基本上,我使用这个公式将增益或宽松产品名称的行放入INDEX函数中。
ROWS($H$3:H3)返回 1,但是当您复制此公式时,您会得到 2、3,依此类推。如果您需要超过前 5 个值,这是扩展查询的好方法。
推荐阅读
- angular - “可观察”类型上不存在“地图”
' 原生脚本 - android - 检查应用内订阅是否在我的无服务器 android 应用中处于活动状态
- python - 如何从 Python 中的 Unicoded JSONObject 中提取字符串?
- react-native - 世博会日历 createEventAsync 不工作
- regex - 从 Jenkins 的提交消息中提取用户故事
- php - php发送电子邮件不起作用
- html - z-index 不适用于相对父级和后/前元素
- jquery - jQuery.ajax 在 IE11 中返回空响应文本
- python - 如何在所有 xml 文件上调用 .py?
- bash - 使用 sed 提取行块