excel - Excel - 从基于非唯一条件的范围内返回多个唯一查询,即相似排名
问题描述
我很难找到正确的公式来准确返回所有场景中排名前三的结果。当排名不相等时,1、2、3、4、5 总是好的。但是,当前 2 或 3 个结果并列第一时,比如 1、1、1、4、5,我找不到正确的公式来准确返回所有前 3。
E3:E6 处的数组“Helper”公式范围与 F3:F6 处的“前 3”范围完美配合,因此排名排序逻辑工作正常。
在 G3:G6 创建“前 3 名列表”范围的最后一步是出错的地方。我尝试了许多变体,包括我不熟悉的数组公式,但没有一个有效。迄今为止最好的是 MATCH & SMALL 组合,但不适合重复。(见下文)
如果有人知道即使有重复排名也会返回准确的“前 3 名列表”的公式?谢谢!
PS:这是我的第一个请求帖子。Stackoverflow 帮助了我很多次
解决方案
此答案将按照它们在您的列表中出现的顺序返回前三个结果。甚至可以消除辅助列,但我没有测试那么远。我重新排列了您的列表,以便它不仅仅是抓住前三行。否则,它就像对列表进行排序并链接到前三行一样简单。
帮手栏目抢分前三
=AGGREGATE(14,6,$C$4:$C$8,ROW(A1))
它假设您的数据位于 B4:C8 中。将公式向下复制,直到将其分成三行。与 14 聚合会将您的列表从大到小排序。Row(A1) 将返回排序列表中的第一个值。当它被复制下来时,它将增加到行(A2),因此它将返回排序列表中的第二个值,依此类推。
将排序后的分数与名称匹配
这假设您的前三个分数列表在 E4:E6 中
=INDEX(B:B,AGGREGATE(15,6,ROW($C$4:$C$8)/($C$4:$C$8=E4),COUNTIF($E$4:E4,E4)))
它查找与排序的前三个列表中的数字匹配的所有行号。当有重复时,由于计数,它会前进到匹配列表中的下一个行号。然后将行号传递给 INDEX,后者反过来提取名称。
推荐阅读
- excel - 搜索匹配,复制整行,粘贴到对应的
- office-js - Word加载项多生产环境
- ios - 更改 iOS 中 INUIAddVoiceShortcutViewController 上添加到 Siri 按钮的颜色?
- c# - Asp.net Core 中的简单计数器增量
- acumatica - UploadDialog 中的 AllowedFileTypes 是否允许多种文件类型,如果允许,格式是什么?
- c++ - 如何使 std::string 与 char* 兼容?
- python - 为什么我的类方法没有更新属性?
- rcpp - 我有一个数据框,其中的列没有名称,我想在 RCPP 中命名它们?我该怎么做?
- python - Pyspark:在不同的日子里发牢骚
- windows - 在 Win32 中平滑 WM_NCPAINT