Google Sheets多标签匹配筛选:排除含指定值的行
解决方案
可以用Google Sheets的数组公式或Lambda函数实现需求,以下提供两种可行方案:
方案1:使用LET+FILTER(清晰易维护)
在「List Needed」标签的A2单元格输入以下公式:
=LET( src, 'Source 1'!A:E, ids, INDEX(src,,1), names, INDEX(src,,4), vals, INDEX(src,,5), has_val, vals<>"", dup_names, COUNTIF(names, names)>1, exclude_rows, has_val*dup_names, FILTER(src, dup_names*NOT(exclude_rows)) )
逻辑说明:
- 用
LET定义变量简化公式,src指代「Source 1」的全量数据 - 分别提取ID列、名称列(D列)、值列(E列)
- 标记出E列非空的行(
has_val)和D列名称重复的行(dup_names) - 定位需要排除的行:既是重复名称且E列有值的行
- 最后筛选出重复名称且不在排除列表里的行
方案2:使用QUERY函数(简洁高效)
同样在「List Needed」的A2单元格输入:
=QUERY('Source 1'!A:E, "SELECT * WHERE D IN (SELECT D FROM 'Source 1'!A:E GROUP BY D HAVING COUNT(D)>1) AND E = ''", 1)
逻辑说明:
- 子查询先找出所有D列存在重复的名称
- 主查询筛选出D列属于这些重复名称、且E列为空的行,参数
1表示保留表头
两个公式都能得到「Should look like this」标签里的预期结果。
内容的提问来源于stack exchange,提问作者LemNick
相关产品推荐
相关产品推荐

