You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多列布尔值数组排序:仅保留每列顶部TRUE值

解决方法

你可以直接用FILTER函数筛选出每列中的TRUE值,替代原公式里的SORT,这样就能只保留TRUE而排除FALSE。

简化版公式(适用于Excel 365/Google Sheets)

利用BYCOL函数批量处理所有列,无需重复写11次公式:

=BYCOL(INDIRECT(B5), LAMBDA(col, FILTER(col, col=TRUE)))
  • BYCOL会遍历INDIRECT(B5)指向的区域的每一列
  • LAMBDA(col, ...)定义对每一列的处理逻辑:用FILTER筛选出该列中等于TRUE的单元格

兼容旧版本的手动写法

如果你的Excel版本不支持BYCOL,可以对每一列单独写FILTER公式,再用大括号组合:

={FILTER(INDEX(INDIRECT(B5),0,1),INDEX(INDIRECT(B5),0,1)=TRUE),
  FILTER(INDEX(INDIRECT(B5),0,2),INDEX(INDIRECT(B5),0,2)=TRUE),
  FILTER(INDEX(INDIRECT(B5),0,3),INDEX(INDIRECT(B5),0,3)=TRUE),
  FILTER(INDEX(INDIRECT(B5),0,4),INDEX(INDIRECT(B5),0,4)=TRUE),
  FILTER(INDEX(INDIRECT(B5),0,5),INDEX(INDIRECT(B5),0,5)=TRUE),
  FILTER(INDEX(INDIRECT(B5),0,6),INDEX(INDIRECT(B5),0,6)=TRUE),
  FILTER(INDEX(INDIRECT(B5),0,7),INDEX(INDIRECT(B5),0,7)=TRUE),
  FILTER(INDEX(INDIRECT(B5),0,8),INDEX(INDIRECT(B5),0,8)=TRUE),
  FILTER(INDEX(INDIRECT(B5),0,9),INDEX(INDIRECT(B5),0,9)=TRUE),
  FILTER(INDEX(INDIRECT(B5),0,10),INDEX(INDIRECT(B5),0,10)=TRUE),
  FILTER(INDEX(INDIRECT(B5),0,11),INDEX(INDIRECT(B5),0,11)=TRUE)}

两种方法最终都会输出仅包含TRUE值的11列数据,每列的TRUE会自动连续排列在顶部,完全符合你的需求。

内容的提问来源于stack exchange,提问作者Spency

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 12:58:01