基于单列ColA去除重复项的Google Sheets公式问题求助
Google Sheets 基于单列去重的解决方案
针对你需要基于Col1(第一列)去除重复项的需求,以下是几种可行的实现方式:
方法一:QUERY结合聚合函数(快速实现)
利用QUERY的GROUP BY语法,对需要保留的其他列使用MAX或MIN聚合函数(文本类型也适用),既能按Col1分组去重,又能保留对应列的内容:
=query(ARRAYFORMULA(clean(PROPER(TRIM({{Sheet1!A1:E,{"Employee";"Sheet1"&Sheet1!Z2:Z}}; {Sheet2!A2:E,"Sheet2"&Sheet2!Z2:Z}})))), "Select Col1, MAX(Col2), MAX(Col3), MAX(Col4), MAX(Col5) where Col1 is not null group by Col1",1)
- 注:
MAX会返回同一Col1分组下对应列的字典序最大值,若想取最小值可替换为MIN;如果同一Col1对应的其他列内容一致,两种聚合函数结果无差异。
方法二:保留Col1首次出现的完整行
如果需要严格保留Col1第一次出现时对应的整行内容,可使用LET+FILTER+MATCH组合实现,逻辑是只保留每个Col1值首次出现的行:
=LET( data, ARRAYFORMULA(clean(PROPER(TRIM({{Sheet1!A1:E,{"Employee";"Sheet1"&Sheet1!Z2:Z}}; {Sheet2!A2:E,"Sheet2"&Sheet2!Z2:Z}})))), col1, INDEX(data,,1), FILTER(data, MATCH(col1, col1, 0) = SEQUENCE(ROWS(col1))) )
- 优势:精准保留首次出现的记录,避免聚合函数可能带来的内容选择偏差;
LET函数让公式结构更清晰,便于维护。
方法三:直接使用UNIQUE(适合整行去重场景)
如果你的需求是整行完全重复才去重(而非仅Col1重复),可直接用UNIQUE函数简化公式:
=UNIQUE(ARRAYFORMULA(clean(PROPER(TRIM({{Sheet1!A1:E,{"Employee";"Sheet1"&Sheet1!Z2:Z}}; {Sheet2!A2:E,"Sheet2"&Sheet2!Z2:Z}})))))
内容的提问来源于stack exchange,提问作者HSHO
相关产品推荐
相关产品推荐

