在整个 table 中检查多行的唯一组合

Check multiple rows for a unique combination across a whole table

我正在使用 Excel 2016 并尝试根据所有行和列的值过滤一个简单的 table。 让我们假设以下 table:

ID Customer Work
1 Nancy Inspection
2 Peter Inspection
3 Peter Inspection
4 Anna Inspection
5 Nancy Tire Change
6 Anna Inspection
7 Tom Tire Change
8 Anna Tire Change
9 Anna Tire Change

我只想知道检查过的客户。一旦他们除了检查之外还进行了轮胎更换或仅更换轮胎(如汤姆),则应将其过滤掉。

所以结果应该是这样的:

ID Customer Work
2 Peter Inspection
3 Peter Inspection

彼得是唯一剩下的人,因为在所有行中他进行了检查,没有其他检查。

我尝试了多种方法来过滤重复项和不同的逻辑,但如果没有 vlookup 或类似的东西,它似乎无法解决,我不习惯。

嗯,这个有效:

在单元格 F2 中;

=UNIQUE($B:$B)

在单元格 G2 中:

=IF(COUNTIFS($B:$B,F2,$C:$C,"Inspection")-COUNTIFS($B:$B,F2,$C:$C,"Tire Change")>=1,1,"")

在单元格 A15 中:

=IFERROR(INDEX($F:$F,MATCH(B15,$G:$G,0)),"")

在单元格 B15 中:

=IFERROR(LARGE($G:$G,1),"")

随心所欲编辑吧。您可以添加另一个带有 match() 的 index() 来获取 ID...

解构公式将帮助您理解它的工作原理。

如果你有 excel 365(不需要内部人员),你可以使用这个公式(pr 列):

=FILTERXML("<t><s>"&TEXTJOIN("</s><s>",TRUE,IF(COUNTIFS($B2:$B10,$B2:$B10,$C2:$C10,"<>Inspection")=0,A2:A10,""))&"</s></t>","//s")

此公式适用于 A 列,其他列可以向右拖动