比较两列与复数条件

我不能让我的头缠绕在两列之间的多条件。 我有两个列A和B,但希望使用一些公式来比较列A的每个“分组”。例如,在列A中,如果所有“组2”的所有列B值均为Pass,则为通过。

编辑:我已经更新了一些更多的规则,因为这只是一个更复杂的包装我的头。

只有5个标准:

  • PASS,PROG,UNAVAIL,IGNORE,“BLANK”

规则:

  1. 如果子组有1个或更多失败,则失败
  2. IGNORE如果子组有1个或更多的忽略
  3. 如果全部通过或通过和UNAVAIL组合,则通过
  4. 如果不失败,则编程为PASS,UNAVAIL,PROG
  5. “空白”被视为UNAVAIL

在这里输入图像说明

感谢您的帮助,谢谢!

(答案已更改,以反映新的标准)

此表格:

在这里输入图像说明

用以下两个公式创build(使用AC中名称在第一行中的命名范围):

在C1我input(然后复制)

 =CONCATENATE(TRIM(A2),"-", IF(LEN(TRIM(B2)) > 0, TRIM(B2), "UNAVAIL")) 

在F2我input(然后复制)

 =IF(COUNTIF(Tag, E2 &"-FAIL") >0, "FAIL",IF(COUNTIF(Tag, E2 &"-IGNORE") >0,"IGNORE",IF(COUNTIF(Group,E2) = COUNTIF(Tag, E2 &"-PASS") + COUNTIF(Tag, E2 &"-UNAVAIL"),"PASS","PROG"))) 

第四种情况就像在交换机底部的其他情况 – 不需要明确检查条件。

沿相同的行添加一个C列,如果结果是通过值为0,结果是失败值将是-100000左右(大负)不确定使用一些阴性像-3 /然后使用数据透视表和使用值的总和那么你可以使用公式来推断不同的条件。

如果所有结果都是不确定的,只要它们不小于-100000左右的范围重叠,就可以使用大的负数。 无论如何,你明白了。

在这里输入图像说明

此公式可能工作(作为数组公式CTRL-ENTERinput):

 =IF(SUM(IF(IF($A$2:$A$23=$E2,$B$2:$B$23,"OUT_OF_GROUP")="FAIL",1,0))>0,"FAIL",IF(SUM(IF(IF($A$2:$A$23=$E2,$B$2:$B$23,"OUT_OF_GROUP")="IGNORE",1,0))>0,"IGNORE",IF(SUM(IF(IF($A$2:$A$23=$E2,$B$2:$B$23,"OUT_OF_GROUP")="PASS",1,0))+SUM(IF(IF($A$2:$A$23=$E2,$B$2:$B$23,"OUT_OF_GROUP")="UNAVAIL",1,0))+SUM(IF(IF($A$2:$A$23=$E2,$B$2:$B$23,"OUT_OF_GROUP")=0,1,0))=SUM(IF($A$2:$A$23=$E2,1,0)),"PASS","PROG"))) 

这里Group和Result分别是$ A $ 2:$ A $ 23和$ B $ 2:$ B $ 23。 E2:E11保持“s1”到“s10”。 我认为规则3意味着UNAVAIL和空白的组合是一个通行证 – 逻辑可以修改,使一个PROG。