Google Sheets 按两列重复值分组 按第三列指定内容筛选方法
Google Sheets 分组筛选SKU实现方案
注意:如果你的实际数据源范围不是A3:C,只需要修改公式第一行source_data, A3:C里的单元格范围即可,其余逻辑不需要调整。
直接在结果输出起始单元格(比如你之前测试用的M3)粘贴以下公式即可,无需提前排序、无需辅助列,一步满足所有规则:
=LET( source_data, A3:C, // 第一步:永久过滤SKU含ADD-ON的行 filtered_no_addon, FILTER(source_data, NOT(REGEXMATCH(INDEX(source_data,,2), "ADD-ON"))), date_col, INDEX(filtered_no_addon,,1), sku_col, INDEX(filtered_no_addon,,2), email_col, INDEX(filtered_no_addon,,3), // 生成日期+邮箱的分组唯一键 group_id, date_col & "|" & email_col, // 标记每个分组是否存在含BUNDLE的SKU group_has_bundle, MAP(group_id, LAMBDA(g, COUNTIFS(group_id, g, sku_col, "*BUNDLE*")>0)), // 标记当前行是否为BUNDLE行 is_bundle_line, REGEXMATCH(sku_col, "BUNDLE"), // 最终筛选:无BUNDLE的组保留全部行,有BUNDLE的组仅保留BUNDLE行 FILTER(filtered_no_addon, NOT(group_has_bundle) + is_bundle_line) )
公式逻辑说明
- 基础过滤规则完全对齐你已调试通过的ADD-ON排除逻辑,不会漏过或错删非ADD-ON数据
- 分组维度严格使用A列日期+C列邮箱作为唯一判定依据,和预期的归并规则一致
- 自动识别每个分组的SKU特征:
- 分组内存在SKU含
BUNDLE的行时,自动过滤组内其他非BUNDLE行,仅返回BUNDLE条目 - 分组内无BUNDLE类SKU时,返回该分组下所有过滤完ADD-ON的有效行
- 分组内存在SKU含
- 最终返回结果无重复无效值,不需要二次去重
你之前使用的
SORTN方案仅能返回分组排序后的首行数据,无法动态识别BUNDLE行的优先级,所以必须依赖预排序才能拿到近似结果,上述公式通过LET函数封装全流程计算,不存在该限制。
内容的提问来源于stack exchange,提问作者darren
相关产品推荐
相关产品推荐

