2017-10-15 124 views
-1

我有一个Google表格,其中有几列数据,我想知道有多少行匹配两个条件,其中一个条件与两个值中的任意一个匹配。Google表格有多个标准计数

下面是数据的一个例子,我有:

enter image description here

我想要做的是事情,如:得到的计数多少行A列有“是”,无论是“A “或”C“。或者有多少行是”否“以及”I“或”X“。

我想出这个:

=COUNTIFS($A1:$A21,"Yes",B1:B21,"="&"A")+COUNTIFS($A1:$A21,"Yes",B1:B21,"="&"C")

...但是,这感觉笨重,并使得如果我决定游移列更难更新。还真别说不好,如果我想的多比特信息组合成单个细胞,比如这个:

=(COUNTIFS($A1:$A21,"Yes",B1:B21,"="&"A")+COUNTIFS($A1:$A21,"Yes",B1:B21,"="&"C")) & "/" & (COUNTIFS($A1:$A21,"No",B1:B21,"="&"A")+COUNTIFS($A1:$A21,"No",B1:B21,"="&"C"))

我的意思是,这只是可怕。它有效,但它很糟糕。

我试过使用OR()没有成功,也尝试了没有成功的大括号语法。我完全承认我可能已经完成了他们两人的错误,但如果是这样的话,我可以想出我错过了什么。任何表款专家都愿意对一位老先生表示同情,并向我展示一种更加明智的方式来做到这一点?

回答

1

最短的一个,到目前为止:

=SUMPRODUCT(REGEXMATCH(A1:A8&B1:B8,"(?i)Yes(A|C)")) 

CONCATENATE使用&和两列对结果使用REGEX

  • (?i)不区分大小写
  • yes(A|C) YES,随后按A或C
  • SUM了所有的trues。

对于一个复杂的条件下,

=ARRAYFORMULA(SUM(--REGEXMATCH(A1:A8&B1:B8,"(?i)yes(A|C)"))&"/"&SUM(--REGEXMATCH(A1:A8&B1:B8,"(?i)no(I|X)"))) 

需要注意的是,应该之前AC等,如果有,则使用TRIM是以下yes/No没有尾随空格,没有前导空格。

+1

美丽。谢谢! –

1

I'm not sure if this is exactly what you're looking for,但您可以通过创建一个“配对”列表来简化它。

E2:=COUNTIFS(A:A,$C2,B:B,$D2)

E3:=COUNTIFS(A:A,$C3,B:B,$D3)

...

E6:=SUM(E2:E5)

的好处是,它非常灵活 - 只要你想以后你可以添加尽可能多的配对。此外,没有数组公式的复杂性。

-1

简化:

  • 创建一个列C是TRUE,如果B是A或C,否则返回FALSE。

    如果B是I或X,则创建一个为TRUE的列D,否则为FALSE。

    如果A为“是”且C为真,则创建列E为TRUE。

    创建F列是TRUE,如果A是 “否”,d是TRUE

    创建G列是列E或F.柱

    萨姆向上在列中的值G.

0

对于复杂逻辑,使用更强大的命令,如queryfilter

在列A中使用“是”计数的行中,并且或者“A”或“C”在列B

变得

=query(A:C, "select count(A) where A='Yes' and (B='A' or B='C')") 

=query(A:C, "select count(A) where A='Yes' and (B='A' or B='C') label count(A) ''") 

如果您不想拥有诸如“count”之类的列标题。

这几乎说明了英语的目标(以及它的SQL版本)。

+0

这个有趣的事情是我得到了一个细胞,说“计数”,然后在它下面,一个正确的结果(4)的细胞。我正在寻找只有4个。真的,真的很接近! –

+0

现在我获得#VALUE !.做了一个直接的复制粘贴,并用'A:C'或'A:B'获得了相同的结果。 –

0

我会用变量查询。在F1中输入:

=query(A:B,"select count(A) where A ='"&C2&"' AND B='"&D2&"' OR A ='"&C2&"' AND B='"&E2&"'") 

在C2中输入“是”或“否”,然后在D2和E2中输入B字母(或保留空白)。在C1,D1和E1中输入你想要的标题。