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

如何结合带条件的QUERY函数显示指定数量的末尾行?

Google Sheets QUERY函数:筛选特定列并仅显示符合条件的最后3行

需求说明

需要在Google Sheets中同时实现两个功能:

  • 筛选出符合指定条件的行,并展示特定列数据
  • 仅保留上述筛选结果中的最后3行

现有两个单独生效的公式,但无法同时满足需求:

  • 能筛选特定列符合条件数据,但无法限制行数:
    =ARRAYFORMULA(QUERY({A2:F8,ROW(A2:F8)},"select Col1,Col2,Col5,Col6 where Col3='"&$H$1&"'",1))
    
  • 能取最后3行,但无法筛选条件和特定列:
    =QUERY(A2:F8,"select * offset "&COUNT(A2:A)-3)
    

解决方案

方法1:双层QUERY(保持原顺序)

通过内层QUERY筛选并倒序取前3行,外层QUERY恢复原数据顺序:

=QUERY(QUERY(A2:F8,"select A,B,E,F,ROW(A) where C='"&$H$1&"' order by ROW(A) desc limit 3",1),"select Col1,Col2,Col3,Col4 order by Col5 asc",1)
  • 内层逻辑:筛选符合C列=H1条件的A、B、E、F列,同时带上行号,按行号倒序排列后取前3行(即原数据中最后3条符合条件的记录)
  • 外层逻辑:去掉行号列,按原行号正序排列,恢复数据原本的顺序

方法2:INDEX+QUERY(直接取最后3行)

先筛选所有符合条件的数据,再用INDEX定位最后3行:

=INDEX(QUERY(A2:F8,"select A,B,E,F where C='"&$H$1&"'",1),MAX(1,COUNTA(QUERY(A2:F8,"select A where C='"&$H$1&"'",1))-2):COUNTA(QUERY(A2:F8,"select A where C='"&$H$1&"'",1)),0)
  • 先用QUERY获取所有符合条件的特定列数据
  • 用COUNTA统计筛选结果的行数,通过MAX(1, 行数-2)确保当结果不足3行时不会出错
  • 用INDEX提取从倒数第3行到最后一行的所有列数据

简化版(无需保持原顺序)

如果不需要保留原数据的顺序,直接用单层QUERY倒序取前3行即可:

=QUERY(A2:F8,"select A,B,E,F where C='"&$H$1&"' order by ROW(A) desc limit 3",1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 05:54:58