2017-04-07 53 views
1

我试图删除基于一个塔副本,并保持最后一个条目。现在我的公式保持第一个值。删除基于一个塔副本,并保持最后一项

我使用的是在这个帖子中发现的公式: Selecting all rows with distinct column values - Google query language

+0

在您使用的答案排序喜欢你的数据吗? –

+0

没有,我的数据是从列A到Y排序,我找了重复的列是列N.我使用的公式为: = ARRAYFORMULA(IFERROR(VLOOKUP(唯一的(数据N:N!) ,{Data!N:N,Data!A:Y},{2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18, 19,20,21,22,23,24,25,26,27,28},0))) – dsalzman

+0

我觉得应该是做,能,但可以用短短的行和列嘲讽了一些数据确实做测试一个可能的答案。 –

回答

1

那么简单的答案仅仅是你的公式更改为0(或假)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") 

以上的数据。

+0

太谢谢你了!非常有帮助! – dsalzman

+0

太好了,谢谢。 –