Google sheets 返回列A唯一或重复值最后出现的行

Google sheets 返回列A唯一或重复值最后出现的行,google-sheets,Google Sheets,我在这张纸上输入了一些假数据,显示了我想要的结果 “数据”表包含我的原始数据 “过滤器”表包含我根本不想在结果中显示的值 “结果”表显示了我正在寻找的结果 我想使用查询公式筛选“数据”表中的行,该查询公式只返回列a唯一或列a是重复值最后一次出现的行 然后,我要删除列A包含在“Filter!”中找到的值的所有行:A:A'专栏 最终结果应该类似于“结果”表。为了简单描述所有数据都在一张表中的情况,我将解释分为两部分:A:B列包含原始数据,D列包含需要过滤的数据。在单元格F1中输入以下公式,该公式将创

我在这张纸上输入了一些假数据,显示了我想要的结果

“数据”表包含我的原始数据

“过滤器”表包含我根本不想在结果中显示的值

“结果”表显示了我正在寻找的结果

我想使用查询公式筛选“数据”表中的行,该查询公式只返回列a唯一或列a是重复值最后一次出现的行

然后,我要删除列A包含在“Filter!”中找到的值的所有行:A:A'专栏


最终结果应该类似于“结果”表。

为了简单描述所有数据都在一张表中的情况,我将解释分为两部分:A:B列包含原始数据,D列包含需要过滤的数据。在单元格F1中输入以下公式,该公式将创建一个ID列表,不会重复,也会过滤掉D的内容:

=unique(filter(filter(A:A, len(A:A)), isna(match(filter(A:A, len(A:A)), filter(D:D, len(D:D)), 0))))
按长度排序的过滤器排除空单元格。当在D列中找不到Id时,
match
返回N/A。外部过滤器仅返回N/A,条件为
isna(match(…)
。最后,
unique
消除了重复

创建唯一ID列表后,是时候将数据放在它旁边了。这在单元格G1中完成:

=arrayformula(vlookup(filter(F:F, len(F:F)), sort({A:B, row(A:A)}, 3, false), 2, false))

主要思想是使用
vlookup
从表A:B中的A列查找每个Id。它返回找到的最后一个条目。由于您希望找到最后一个条目,因此表A:B中的顺序是颠倒的,方法是按行号按降序排序:
sort({A:B,行(A:A)},3,false)
。然后
arrayformula(vlookup(…)
对F列的每个条目执行查找,返回水果名称

除了汤的答案,假设你的数据是A:B,看看这是否有效

=ArrayFormula(iferror(vlookup(unique(A:A), sort({A:B, row(A:A) }, 3, 0), {1,2}, 0)))