我尝试根据一列删除重复项并保留最后一项。现在我的公式保持第一个值。
我使用了这篇文章中的公式: Selecting all rows with distinct column values - Google query language
答案 0 :(得分:2)
简而言之,只是将公式中的0(或false)更改为1(或者为真),以便VLOOKUP匹配每个唯一值的最后一个条目
=ArrayFormula(iferror(VLOOKUP(unique(Data!D:D),{Data!D:D,Data!A:D}, {2,3,4,5},1 ),""))
这似乎适用于您的测试数据
但这不是故事的结尾。
如果您对此公式使用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
上按降序排序的相同测试数据这给出了正确的结果(但没有标题)
您只需添加
即可添加标题=query(Data1!A:D,"select * limit 0")
高于数据。