在一列中search所有匹配值,如果相邻列包含“X”,则返回“Y”

我有一个大的数据集,其中包含一个ID,然后子ID和子ID的状态列。 仅供参考; 一个子ID可以有两个状态。 我想要一个公式来查看列A,并find所有匹配的值,如果任何等于“x”的状态,则返回一个定义的值。

例:

ABC 1-001 0550 UD 1-001 0550 DV 1-001 0003 UD 1-001 0001 UD 1-001 1 1-003 0550 UD 1-003 0003 UD 1-003 0001 UD 1-003 1 1-005 0550 UD 1-005 0550 DV 1-005 0027 UD 1-005 0026 UD 1-005 0024 UD 1-005 0023 UD 1-005 0017 UD 1-005 0014 UD 1-005 0012 UD 1-005 0011 UD 1-005 0003 UD 1-005 0001 UD 1-005 1 

我试过了

 =IFERROR(INDEX($A$2:$A$7390, SMALL(IF(ISNUMBER(SEARCH(A9,$A$2:$A$7697)),MATCH(ROW($A$2:$A$7697),ROW($A$2:$A$7697))),ROW(A8))),"") 

但那不是我真正需要的…..

简单Countifs将做的伎俩。 在单元格D1中使用此公式并复制下来:

 =IF(COUNTIFS(A:A,A1,C:C,"DV")>0,"HBP","") 

你可以使用数组公式和一个简单的条件来实现这个。 公式看起来像以下假设身份证在列A,列B的状态,并专门寻找“1-005”:

 =OR(IF(A:A="1-005",C:C,"")="DV") 

这是按CTRL + SHIFT + ENTER作为数组公式ENTER 。 if将每个单元格与search项进行比较,并在列C中输出相应的状态或以数组的forms输出空string。 然后,将该数组与“定义的值”进行比较将输出一个布尔值数组,我们将其join一个OR中,如果至less有一个状态等于定义值,则该值为TRUE。 希望这是有道理的。 干杯。