那么简单的答案就是将公式中的 0(或 false)更改为 1(或 true),以便 VLOOKUP 匹配每个唯一值的最后一个条目
=ArrayFormula(iferror(VLOOKUP(unique(Data!D:D),{Data!D:D,Data!A:D}, {2,3,4,5},1 ),""))
这似乎确实适用于您的测试数据
但这还不是故事的结局。
如果您将 VLOOKUP 与此公式一起使用,则必须在查找列上对数据进行排序根据文档 https://support.google.com/docs/answer/3093318?hl=en但在上面的评论中,您说您不能假设数据在查找列上排序。如果你在未排序的数据上尝试这样做,事情确实会变得非常错误。所以你必须像这样在查找列上对其进行排序
=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")
数据之上。