Google Sheets如何筛选全量匹配指定条件的唯一值
Google Sheets 全记录匹配的唯一ID筛选方案
需求背景
处理3万行量级双列表格时,需筛选左列标识符中每一次出现对应的右列值都满足指定条件的唯一值,排除同一标识符下只要存在任意一条不满足条件记录的条目。
原有公式=UNIQUE(FILTER(A2:A,B2:B>0))仅能筛出单条记录满足条件的ID,无法排除同ID下存在违规值的情况,例如示例数据中ID2、ID5同时存在数值2和3,不应出现在最终结果中。
示例数据结构:
| 「唯一」标识符(可重复) | 数值 |
|---|---|
| 1 | 2 |
| 2 | 3 |
| 3 | 2 |
| 4 | 2 |
| 5 | 3 |
| 6 | 2 |
| 1 | 2 |
| 2 | 2 |
| 3 | 2 |
| 4 | 2 |
| 5 | 2 |
| 6 | 2 |
上述示例中符合要求的ID为1、3、4、6,其所有关联的数值均为2;ID2、ID5因存在数值3的记录被排除。
可用公式
核心逻辑:对每个ID,统计其全表关联记录中不符合条件的条目数,仅保留不符合条目数为0的ID后去重。该组合公式在3万行数据下计算流畅,无明显卡顿。
通用场景公式(示例中要求所有数值=2)
在空白单元格输入以下公式即可自动输出结果:
=UNIQUE(FILTER(A2:A,COUNTIFS(A2:A,A2:A,B2:B,"<>2")=0))
实际业务场景适配
业务要求为筛选所有仅存在Good品相、无任何Very Good品相的Catalog ID,对应公式为:
=UNIQUE(FILTER(A2:A,COUNTIFS(A:A,A2:A,B:B,"Very Good")=0))
如果业务要求更严格:Catalog ID下所有记录的品相必须为
Good,不允许出现任何其他品相(包括Poor、Fair等),可使用以下公式:=UNIQUE(FILTER(A2:A,COUNTIFS(A:A,A2:A,B:B,"<>Good")=0))
其他条件适配
如果判断条件为数值阈值,例如要求所有关联数值都大于5,只需将COUNTIFS中的判断规则替换为统计不符合条件(数值<=5)的记录数为0即可:
=UNIQUE(FILTER(A2:A,COUNTIFS(A2:A,A2:A,B2:B,"<=5")=0))
内容的提问来源于stack exchange,提问作者jondesu
相关产品推荐
相关产品推荐

