Excel FILTER筛选Top10排序后如何跳过无关列仅返回指定列
Excel 取指定列Top10后自定义返回列的实现方案
你原有公式的筛选排序逻辑可以直接复用,只需要调整数据源范围、外层嵌套列选择函数即可实现自定义列返回,具体操作如下:
- 第一步:调整FILTER函数的数据源范围
你原公式中FILTER(A3:I437,...)仅覆盖了A到I列,R、S、T、U、V列不在选中范围内,首先把第一个参数改成覆盖所有需用到列的范围,比如需要用到V列的话就改为A3:V437。 - 第二步:用列选择函数指定返回内容
365/2021及以上版本Excel直接用CHOOSECOLS嵌套在原有公式最外层即可,函数最后按顺序填写你需要返回的列在数据源范围内的相对序号(注意是相对选中范围的序号,不是工作表原生列号:选中范围的第一列为1,依次向后计数)。
不同列组合的公式示例
假设你调整后的数据源范围为A3:V437,各目标列对应的相对序号为:R列=18、S列=19、T列=20、U列=21、V列=22
- 返回R列+T列:
=CHOOSECOLS(SORT(FILTER(A3:V437,C3:C437>=LARGE(C3:C437,10)),3,-1),18,20)
- 返回R列+S列:
=CHOOSECOLS(SORT(FILTER(A3:V437,C3:C437>=LARGE(C3:C437,10)),3,-1),18,19)
- 返回R列+U列:
=CHOOSECOLS(SORT(FILTER(A3:V437,C3:C437>=LARGE(C3:C437,10)),3,-1),18,21)
- 返回R列+V列:
=CHOOSECOLS(SORT(FILTER(A3:V437,C3:C437>=LARGE(C3:C437,10)),3,-1),18,22)
如果需要返回更多列,直接在CHOOSECOLS的参数末尾追加对应列的相对序号即可,比如要返回R+S+T三列就把最后参数改为18,19,20。
注意:如果你调整了FILTER的起始列,比如把数据源改为B3:V437,那么所有列的相对序号都要重新计数(此时B为第1列,R列对应序号变为17),不要直接套用上述示例里的数字,避免返回错列。
老版本Excel兼容方案
如果你用的是2019及更早版本Excel,没有内置CHOOSECOLS函数,可以用INDEX配合数组常量实现相同效果,比如返回R+T列的公式为:
=INDEX(SORT(FILTER(A3:V437,C3:C437>=LARGE(C3:C437,10)),3,-1),,{18,20})
修改大括号内的列序号即可切换返回的列组合,逻辑和CHOOSECOLS方案完全一致。
内容的提问来源于stack exchange,提问作者Ikthezeus
相关产品推荐
相关产品推荐

