如何在Google Sheets中按关键词将多行导入不同工作表?
Google Sheets 按业务单元自动分表解决方案
核心方案:使用QUERY函数批量筛选导入
假设原始数据存储在名为Database的工作表中,业务单元信息位于B列(可根据实际列位置调整),在对应名称的目标工作表(如Banking)的A1单元格输入以下公式:
Banking工作表公式
=QUERY(Database!A:Z, "SELECT * WHERE B CONTAINS 'Banking' AND A IS NOT NULL", 1)
Energy & Utilities工作表公式
=QUERY(Database!A:Z, "SELECT * WHERE B CONTAINS 'Energy & Utilities' AND A IS NOT NULL", 1)
Retail工作表公式
=QUERY(Database!A:Z, "SELECT * WHERE B CONTAINS 'Retail' AND A IS NOT NULL", 1)
公式参数说明
Database!A:Z:指定原始数据所在的工作表和数据范围,可根据实际列数调整(比如数据到Y列就写A:Y)"SELECT * WHERE B CONTAINS 'Banking'":筛选逻辑,B是业务单元所在列,CONTAINS表示模糊匹配(若需精确匹配,替换为=,如B = 'Banking')AND A IS NOT NULL:过滤空行,避免目标表出现无意义的空数据- 最后的
1:表示原始数据包含1行表头,QUERY会自动保留表头
之前函数失败的原因
- VLOOKUP/XLOOKUP/INDEX/MATCH:这类函数仅适合单值查找,无法批量导入整行数据,不满足需求
- QUERY(IMPORTRANGE)失败:大概率是未完成跨文档授权,或列索引引用错误(IMPORTRANGE需用
ColX格式指定列,比如Col2对应第二列)
额外注意事项
- 公式会自动同步原始数据的更新,无需手动刷新
- 若原始数据存在合并单元格,建议先取消合并,否则QUERY可能无法正确解析数据
- 若需区分大小写匹配,将
CONTAINS替换为MATCHES并添加正则标记,比如WHERE B MATCHES '(?i)Banking'((?i)表示忽略大小写,去掉则区分)
内容的提问来源于stack exchange,提问作者DanH99
相关产品推荐
相关产品推荐

