根据一列删除重复项并保留最后一项

时间:2017-04-07 20:05:21

标签: google-sheets

我尝试根据一列删除重复项并保留最后一项。现在我的公式保持第一个值。

我使用了这篇文章中的公式: Selecting all rows with distinct column values - Google query language

1 个答案:

答案 0 :(得分:2)

简而言之,只是将公式中的0(或false)更改为1(或者为真),以便VLOOKUP匹配每个唯一值的最后一个条目

=ArrayFormula(iferror(VLOOKUP(unique(Data!D:D),{Data!D:D,Data!A:D}, {2,3,4,5},1 ),""))

这似乎适用于您的测试数据

enter image description here

但这不是故事的结尾。

如果您对此公式使用VLOOKUP,则必须在查阅列according to the documentation上对数据进行排序,但在上面的注释中,您说您不能假设数据在查阅列上排序。如果您对未分类的数据进行尝试,那么事情就会发生严重错误。因此,您必须在查找列上对其进行排序,如此

=ArrayFormula(iferror(VLOOKUP(sort(unique(Data1!D2:D),1,true),sort({Data1!D2:D,Data1!A2:D},1,true), {2,3,4,5},1 )))

唯一的缺点是,这不包括标题(因为它们会被排序到数据的末尾)。

以下是在ID

上按降序排序的相同测试数据

enter image description here

这给出了正确的结果(但没有标题)

enter image description here

您只需添加

即可添加标题
=query(Data1!A:D,"select * limit 0")

高于数据。