查找有条件的第一次和第二次出现

时间:2018-11-12 16:50:09

标签: excel lookup

我有下表...

Key   Result
1       T
2       G
2       T
3       T
3       T
4       G
4       T
4       T
5       G
5       T
5       T

我需要执行一个查找,该查找将找到Key并检查Key是否有Result的T或G,如果为1,否则为0。

因此对于上表,我的两个公式应返回以下内容...

Key   T   G
1     1   0
2     1   1
3     1   0
4     1   1
5     1   1

显然VLOOKUP无效,因为它只能找到第一个匹配项,因此我尝试使用INDEX-MATCH

=INDEX($B:$B,MATCH($A2,$A:$A,0),1)

上面的公式为每个Result返回Key,但是如果结果为T,我将如何修改它以返回1,否则返回0?

编辑:解决方案

=IF(COUNTIFS(A:A,E2,B:B,F1)>0,"1","0")

enter image description here

3 个答案:

答案 0 :(得分:1)

有很多方法可以实现这一目标,下面是其中两个示例:

假设查找表位于Sheet2!A:C

MATCH()中的字符串串联

=--ISNUMBER(MATCH($A2&"T",$A:$A&$B:$B,0))

=--ISNUMBER(MATCH($A2&B$1,Sheet1!$A:$A&Sheet1!$B:$B,0))

使用COUNTIF()

=--(COUNTIFS($A:$A,$A2,$B:$B,"T")>0)

=--(COUNTIFS(Sheet1!$A:$A,$A2,Sheet1!$B:$B,B$1)>0)

您可以使用IF([],1,0)代替--

答案 1 :(得分:0)

假设Key在A1中,请构造输出的标头(例如在D1中使用Key),然后在E2中构建

=1*(COUNTIFS($A:$A,$D2,$B:$B,E$1)>0)

复制到F6。

答案 2 :(得分:0)

您听说过array (CTRL + Enter) formulas吗?

假设您只想知道一个键是否有G 结果,这就是我建议您使用的:

  1. 对键和您的值进行比较。

    =($A$2:$A$12=KEY)*($B$2:$B$12=RESULT) (其中KEY和RESULT是实际值的单元格(1,2,3 ...是KEY,T或G是RESULT),然后按CTRL + ENTER。如果使用Evaluate Formula button,则我会很容易理解它的工作原理。

  2. 如果您仅在此数组上执行MAX,那么如果您的请求(即,如果您的“表”中同时具有KEY和RESULT),则最终将得到1,否则,您将获得0。

使用这种方法,但是将MAX更改为SUM,将为您提供符合条件的次数。

记住要在完成数组公式的编辑后始终按CTRL + ENTER!

最终公式=MAX(($A$2:$A$12=$A19)*($B$2:$B$12=B$18))