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

如何无需额外列,用单个公式反转Filter函数输出顺序?

问题:如何用单个公式反转FILTER+UNIQUE的输出顺序?

我使用以下公式生成项目列表:

=UNIQUE(FILTER(T15:T&"Q "&U15:U,S15:S=TRUE))

待过滤的数据如下:

ColSColTColU
TRUE32022
TRUE32022
TRUE42022
FALSE42022
TRUE42022
TRUE12023
FALSE12023
TRUE12023
FALSE22023
TRUE22023
TRUE22023
FALSE32023
FALSE32023
FALSE32023
FALSE42023
FALSE42023
FALSE42023

当前输出结果:

3Q 2022
4Q 2022
1Q 2023
2Q 2023

期望的反转顺序输出:

2Q 2023
1Q 2023
4Q 2022
3Q 2022

请问能否不新建额外列,仅用单个公式实现该需求?


解决方案

可以实现,根据Excel版本不同,有两种简洁的单公式方案:

1. Excel 365/2021(支持动态数组)

直接通过INDEX配合SEQUENCE生成倒序索引来反转结果,公式如下:

=INDEX(UNIQUE(FILTER(T15:T&"Q "&U15:U,S15:S=TRUE)),SEQUENCE(ROWS(UNIQUE(FILTER(T15:T&"Q "&U15:U,S15:S=TRUE))),,ROWS(UNIQUE(FILTER(T15:T&"Q "&U15:U,S15:S=TRUE))),-1))

如果想让公式更简洁易读,用LET函数封装中间结果:

=LET(
    unique_filtered, UNIQUE(FILTER(T15:T&"Q "&U15:U,S15:S=TRUE)),
    INDEX(unique_filtered, SEQUENCE(ROWS(unique_filtered),,ROWS(unique_filtered),-1))
)

原理:先通过UNIQUE+FILTER得到原始去重列表,再用SEQUENCE生成从列表最后一行到第一行的倒序行号,最后用INDEX按倒序行号提取内容,自动溢出全部结果。

2. 旧版Excel(无动态数组支持)

使用INDEX+COUNTA组合,输入公式后按Ctrl+Shift+Enter作为数组公式,再下拉填充:

=INDEX(UNIQUE(FILTER(T15:T&"Q "&U15:U,S15:S=TRUE)),COUNTA(UNIQUE(FILTER(T15:T&"Q "&U15:U,S15:S=TRUE)))-ROW(A1)+1)

原理:用COUNTA获取去重列表的总行数,通过ROW(A1)的递增特性,依次提取从最后一行到第一行的内容。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 16:35:09