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

如何修改Google Sheets多条件Index Match数组公式实现日期排序

Google Sheets 数组公式实现筛选+按日期排序

最终公式(两种可选方案)

方案1:FILTER + SORT + INDEX(推荐,简洁高效)

=ARRAYFORMULA(IFERROR(INDEX(SORT(FILTER({INDIRECT("'"&$B$5&" 2023'!C:C"), INDIRECT("'"&$B$5&" 2023'!AY:AY")}, ISLOGICAL(INDIRECT("'"&$B$5&" 2023'!CA:CA"))), 2, TRUE),,1), ""))

方案2:QUERY函数(逻辑更直观)

=ARRAYFORMULA(IFERROR(QUERY(INDIRECT("'"&$B$5&" 2023'!C:C,AY:AY,CA:CA"), "SELECT Col1 WHERE Col3 IS TRUE OR Col3 IS FALSE ORDER BY Col2 ASC", 1), ""))

公式解释

核心逻辑拆解

  1. 动态引用工作表:INDIRECT("'"&$B$5&" 2023'!X:X") 根据B5单元格内容,自动拼接目标工作表的引用(比如B5是"销售部",则引用'销售部 2023'工作表的对应列)
  2. 筛选符合条件的行:
    • 方案1中,FILTER({销售列, 日期列}, ISLOGICAL(标记列)) 筛选出CA列为TRUE/FALSE的行,同时保留销售名称和关联日期
    • 方案2中,QUERY的WHERE Col3 IS TRUE OR Col3 IS FALSE 实现相同筛选逻辑
  3. 按日期排序:
    • 方案1中,SORT(..., 2, TRUE) 对筛选结果按第二列(AY列日期)升序排序,改为FALSE可切换为降序
    • 方案2中,ORDER BY Col2 ASC 直接指定按日期列升序排序
  4. 提取销售名称:
    • 方案1用INDEX(..., ,1) 提取排序结果的第一列(销售名称)
    • 方案2通过SELECT Col1 直接选择销售名称列
  5. 错误处理:IFERROR(..., "") 确保无符合条件数据时返回空值,避免显示#N/A错误

替换原公式的优势

原公式用INDEX+SMALL+IF仅能按行号提取内容,无法直接实现排序。改用FILTER+SORT或QUERY的方式,既简化了公式结构,又原生支持排序需求,同时保留了动态引用工作表的功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 13:05:19