如何在Google Sheets中用函数移除重复项并保留最大值所在行?
解决Google Sheets中重复社交数据保留指标最大值行的问题
方法一:先排序再用SORTN去重
这是最简洁高效的方案,先将数据按帖子唯一标识列分组,再按目标指标列降序排序,确保每个帖子的最大值行排在该组首位,最后用SORTN分组去重保留每组第一行:
=SORTN(SORT(data!A2:O, 1, TRUE, 12, FALSE), 9^9, 2, 1, TRUE)
参数说明:
SORT(data!A2:O, 1, TRUE, 12, FALSE):1:按第1列(帖子唯一标识列,如Post ID)升序排序12:按第12列(目标指标列,如Engagements)降序排序(FALSE代表降序)
SORTN(..., 9^9, 2, 1, TRUE):9^9:保留所有符合条件的行2:启用分组去重模式1:按第1列(帖子唯一标识列)分组TRUE:分组依据列的排序方向与外层SORT保持一致
如果你的目标指标列不是第12列,只需修改SORT里的12为对应列号;若帖子唯一标识列不是第1列,同步调整两个函数中的列号参数即可。
方法二:用QUERY匹配最大值行
如果需要更直观的逻辑表达,可以先通过子查询获取每个帖子的最大指标值,再匹配回原数据提取对应整行:
=QUERY(data!A2:O, "SELECT * WHERE Col12 = (SELECT MAX(Col12) FROM data!A2:O WHERE Col1 = data!A2:A)", 0)
参数说明:
Col1:帖子唯一标识列(对应原数据A列)Col12:目标指标列(对应原数据L列)0:表示数据范围不含表头行(若你的数据包含表头,改为1)
这个方案逻辑清晰,但数据量较大时性能会略逊于方法一。
内容的提问来源于stack exchange,提问作者Reid
相关产品推荐
相关产品推荐

