如何基于其他两列的条件使用or语句从一列中提取唯一值?

时间:2019-07-18 08:05:18

标签: excel list indexing excel-formula unique

我的数据集看起来像这样:

ID  Name1   Name2
1   Jack    Tom
1   Tom     Tom
1   Lisa    Tom
2   Tom 
2   Tom 
3   Frank   Frank
3   John    Frank
3   Frank   Frank
3   John    Frank
4           Tom
4           Tom
5   Lisa    
5   Jack    

,我想要以下输出:

Result
1
2
4

注意:如果“ Tom”显示在两个名称列之一中,则我需要Tom的唯一ID。

我尝试使用以下公式:

IFERROR(INDEX(INDIRECT($B$14); MATCH(0; IF($B$10=INDIRECT($B$16); IF($B$10=INDIRECT($B$15); COUNTIF($E$27:E27; INDIRECT($B$14)); "")); 0));"")

问题在于,这只会给我ID nr 1作为输出,因为在这种情况下,Tom都出现在两列中。我认为我需要对该公式实施OR语句。

我的公式的解释:

  • 间接(B14):呼叫ID的数组。 B14包含此数组的名称。
  • B10:包含我要匹配的名称(即“汤姆”)
  • 间接(B16):Name1列
  • 间接(B15):Name2列

好的答案将得到奖励:)

1 个答案:

答案 0 :(得分:1)

我使用了您的公式(没有INDIRECT语句)并添加了ISNUMBER和FIND,以便在B和C列的组合中找到“ Tom”:

这是一个数组公式(Ctrl + Shift + Enter):

=IFERROR(INDEX($A$1:$A$14,MATCH(0,COUNTIF($F$1:F1,IF(ISNUMBER(FIND("Tom",$B$1:$B$14&$C$1:$C$14)),$A$1:$A$14,"")),0)),"")

结果:

enter image description here

我无法使用INDIRECT引用,因为我不确定它们到底指向什么(即范围和列名是什么)。希望您修改我的公式以匹配您的引用不会太困难。

希望有帮助!干杯。