Excel公式优化请求:解决排名并列时的SPILL问题并添加总分排序规则
解决方案
针对你遇到的并列排名SPILL问题,同时实现总分作为决胜项的需求,可以修改公式如下(假设总分列是$K$25:$K$30,如果你的总分列不是K,请替换为实际列标):
=LET( score_group, LARGE($J$25:$J$30, $H16), filtered_companies, FILTER($H$25:$H$30, $J$25:$J$30=score_group), filtered_totals, FILTER($K$25:$K$30, $J$25:$J$30=score_group), sorted_list, SORTBY(filtered_companies, filtered_totals, -1), INDEX(sorted_list, ROW(A1)) )
公式说明
LET函数:定义变量简化公式,避免重复计算score_group:获取当前排名($H16)对应的目标分数filtered_companies:筛选出所有得分为score_group的公司名称filtered_totals:同步筛选出这些公司对应的总分
SORTBY函数:将筛选出的公司按总分降序(-1代表降序)排列,实现总分决胜的逻辑INDEX+ROW(A1):逐个提取排序后的公司,下拉公式时会依次返回第1、2、3...个结果,彻底解决SPILL溢出问题
如果你的Excel版本不支持LET函数,可使用兼容版公式:
=INDEX(SORTBY(FILTER($H$25:$H$30,$J$25:$J$30=LARGE($J$25:$J$30,$H16)),FILTER($K$25:$K$30,$J$25:$J$30=LARGE($J$25:$J$30,$H16)),-1),ROW(A1))
原公式问题分析
原公式=FILTER($H$25:$H$30,$J$25:$J$30=LARGE($J$25:$J$30,$H16))在遇到并列得分时,FILTER会返回多个结果触发SPILL溢出;修改后的公式先对并列公司按总分排序,再通过INDEX逐个输出,既实现了决胜规则,又避免了溢出问题。
内容的提问来源于stack exchange,提问作者chironex
相关产品推荐
相关产品推荐

