2017-04-07 66 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

太好了,謝謝。 –