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

如何让Google Sheets的UNIQUE公式忽略指定列(列C)

嘿,这个需求我经常碰到!原生的UNIQUE(A:F)会检查所有列的内容,所以要忽略C列的话,得换个思路——核心是让公式只把A、B、D、E、F列作为判断“唯一”的依据,不管C列是什么。下面给你几个实用的方案,按需选择:

方案1:用QUERY分组(最直观易读)

如果你不介意C列取每组的某个统计值(比如第一个出现的值、最小值/最大值),这个方法最容易上手:

=QUERY(A:F, "SELECT A,B,MIN(C),D,E,F GROUP BY A,B,D,E,F", 1)
  • 细节说明:
    • GROUP BY A,B,D,E,F 会把这五列完全相同的行归为一组;
    • MIN(C) 表示取每组里C列的最小值,你可以换成 MAX(C) 取最大值,或者FIRST(C)保留该组第一行的C列值(需要开启Google Sheets的「新函数」功能);
    • 最后那个1代表你的数据有表头,如果没有表头就改成0。

方案2:用UNIQUE+XLOOKUP(保留原行完整结构)

如果你想保留原数据中符合条件的完整行(比如每组保留第一出现的那一行),可以用这个组合公式:

=BYROW(UNIQUE(CHOOSECOLS(A:F,1,2,4,5,6)), LAMBDA(u, XLOOKUP(TEXTJOIN("|",TRUE,u), TEXTJOIN("|",TRUE,CHOOSECOLS(A:F,1,2,4,5,6)), A:F, "", 0, 1)))
  • 细节说明:
    • CHOOSECOLS(A:F,1,2,4,5,6) 先提取出A、B、D、E、F列的内容;
    • UNIQUE得到这些列的唯一组合;
    • BYROW遍历每个唯一组合,用XLOOKUP在原数据中找到第一个匹配的完整行并返回,完美保留原行的C列值。

方案3:用LAMBDA+UNIQUE(简洁的新版函数写法)

如果你的Google Sheets支持LAMBDA系列函数,还可以直接构造一个忽略C列的“唯一判断逻辑”:

=UNIQUE(BYROW(A:F, LAMBDA(row, IF(COUNTA(row)=0, "", TEXTJOIN("|", TRUE, INDEX(row,1), INDEX(row,2), INDEX(row,4), INDEX(row,5), INDEX(row,6)) & "|" & TEXT(row, "@")))))
  • 细节说明:
    • BYROW遍历每一行,把A、B、D、E、F列拼接成一个唯一标识字符串,再附加整行的文本化内容;
    • UNIQUE会基于这个标识去重——只要A/B/D/E/F列相同,不管C列是什么,都会被视为重复行合并。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:35:01