https://docs.google.com/spreadsheets/d/15xzwTJxxTuvWoMOgwGyMZk2BSknc9wD6iEUaZcOk03M/edit?usp=sharing
我在此表中输入了一些虚假数据,显示了我想要的结果。
'数据'表格包含原始数据。
“过滤器”表格包含我不想在结果中显示的值。
“结果”表显示了我正在寻找的结果。
我想使用查询公式过滤“数据”表格中的行,该查询公式仅返回列A唯一的行或列A是重复值的最后一次出现。
然后我想删除列A包含在'Filter!:A:A'列中找到的值的所有行。
最终结果应该与“结果”表相似。
答案 0 :(得分:0)
我将解释分为两部分,为了简单描述所有数据在一张表中的情况: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.只有这些由外部过滤器返回,条件为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, row(A:A)}, 3, false)
来反转。然后arrayformula(vlookup(...))
对F列的每个条目执行查找,返回水果名称。
答案 1 :(得分:0)
除了汤的回答,并假设您的数据在A:B中,看看是否有效?
=ArrayFormula(iferror(vlookup(unique(A:A), sort({A:B, row(A:A) }, 3, 0), {1,2}, 0)))