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

如何在Google Sheets中提取多列匹配数据

提取Google Sheets中所有匹配表头的列

当表头存在多个相同名称(如多个"Sales"列)时,常规FILTER仅返回第一匹配列,可通过以下公式动态提取所有匹配列:

方法1:结合FILTER、TRANSPOSE与MMULT

假设数据范围为A1:Z100(表头在第1行),提取所有表头为"Sales"的列:

=FILTER(A1:Z100, TRANSPOSE(MMULT(--(A1:Z1="Sales"), SEQUENCE(COLUMNS(A1:Z1),1,1,0))))

原理说明

  • --(A1:Z1="Sales"):将表头行转换为布尔值数组,匹配"Sales"的位置为1,其余为0
  • MMULT(...):对每一列的匹配结果求和,匹配列会得到1,未匹配列得到0
  • TRANSPOSE:转置求和结果,让FILTER能按列维度判断筛选条件
  • FILTER:最终筛选出所有求和结果为1的列

方法2:使用QUERY函数实现

同样基于A1:Z100范围,公式如下:

=QUERY(A1:Z100, "select "&JOIN(", ", ARRAYFORMULA("Col"&FILTER(SEQUENCE(COLUMNS(A1:Z1)), A1:Z1="Sales")))

原理说明

  • FILTER(SEQUENCE(...), A1:Z1="Sales"):获取所有匹配"Sales"表头的列序号
  • ARRAYFORMULA("Col"&...):将列序号转换为QUERY可识别的Col1/Col2格式
  • JOIN(", ", ...):把所有目标列标识用逗号拼接,生成QUERY的查询字段
  • QUERY:按拼接后的字段查询,返回所有匹配列

注意事项

  • 替换公式中的A1:Z100为你的实际数据范围
  • 若表头不在第1行,将A1:Z1替换为对应表头行(如A2:Z2)
  • 两个公式均支持动态适配:新增匹配表头的列时,结果会自动包含新列

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 03:42:05