Google sheets 使用多个条件计算Google工作表

Google sheets 使用多个条件计算Google工作表,google-sheets,formulas,Google Sheets,Formulas,我有一个Google工作表,其中有几列数据,我想计算有多少行匹配两个条件,其中一个条件匹配两个值中的任何一个 以下是我掌握的数据示例: 我想做的是:计算a列中有多少行是“是”,B列中有多少行是“a”或“C”。或者有多少行是“否”,有多少行是“I”或“X” 我想到了这个: =COUNTIFS($A1:$A21,“是”,B1:B21,“=”和“A”)+COUNTIFS($A1:$A21,“是”,B1:B21,“=”和“C”) …但这让我感觉笨重,如果我决定改变栏目,更新就更难了。如果我想将多个信

我有一个Google工作表,其中有几列数据,我想计算有多少行匹配两个条件,其中一个条件匹配两个值中的任何一个

以下是我掌握的数据示例:

我想做的是:计算a列中有多少行是“是”,B列中有多少行是“a”或“C”。或者有多少行是“否”,有多少行是“I”或“X”

我想到了这个:

=COUNTIFS($A1:$A21,“是”,B1:B21,“=”和“A”)+COUNTIFS($A1:$A21,“是”,B1:B21,“=”和“C”)

…但这让我感觉笨重,如果我决定改变栏目,更新就更难了。如果我想将多个信息位组合到一个单元格中,更不用说非常糟糕,例如:

=(COUNTIFS($A1:$A21,“是”,B1:B21,“=”和“A”)+COUNTIFS($A1:$A21,“是”,B1:B21,“=”和“C”)&“/”和($A1:$A21,“否”,B1:B21,“=”和“A”)+COUNTIFS($A1:$A21,“否”,B1:B21,“=”和“C”))

我是说,那太糟糕了。这很有效,但很糟糕

我尝试过使用
或()
但没有成功,也尝试过花括号语法但没有成功。我完全承认我可能两个都做错了,但如果是这样,如果我能找出我错过了什么,那就糟了。有谁愿意同情一个老家伙,给我一个更聪明的方法来做这件事?

,但你可以通过创建一个“配对”列表来简化它

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

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

E6:
=总和(E2:E5)

好处是它很灵活——您可以在以后添加任意数量的配对。此外,数组公式也不复杂。

,但您可以通过创建“配对”列表来简化它

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

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

E6:
=总和(E2:E5)

好处是它很灵活——您可以在以后添加任意数量的配对。此外,数组公式不复杂。

简化:

  • 创建一个列C,如果B是a或C,则为TRUE,否则为FALSE

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

    如果a为“是”,C为真,则创建一个为真的列E

    如果a为“否”且D为真,则创建一个为真的F列

    创建一个G列,即E列或F列

    将G列中的值相加

简化:

  • 创建一个列C,如果B是a或C,则为TRUE,否则为FALSE

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

    如果a为“是”,C为真,则创建一个为真的列E

    如果a为“否”且D为真,则创建一个为真的F列

    创建一个G列,即E列或F列

    将G列中的值相加


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

在A列中用“是”计数行,在B列中用“A”或“C”计数行

变成

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

如果您不想使用列标题,如“count”


这基本上是用英语表述目标(好吧,是SQL版本的)。

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

在A列中用“是”计数行,在B列中用“A”或“C”计数行

变成

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

如果您不想使用列标题,如“count”


这基本上是用英语表述目标(好吧,是SQL版本的)。

我将使用带变量的查询。在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中输入所需的任何标题。

我将使用带变量的查询。在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中输入所需的任何标题。

到目前为止最短的标题:

=SUMPRODUCT(REGEXMATCH(A1:A8&B1:B8,"(?i)Yes(A|C)"))
使用
&
连接两列,并对结果使用
REGEX

  • (?i)
    不区分大小写
  • yes(A | C)
    yes后跟A或C
  • 求和
    把所有的事实加起来
对于复杂的情况

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


请注意,
yes
/
no
后面不应有尾随空格,在
A
C
等前面不应有前导空格。如果有,请使用迄今为止最短的
TRIM
空格:

=SUMPRODUCT(REGEXMATCH(A1:A8&B1:B8,"(?i)Yes(A|C)"))
使用
&
连接两列,并对结果使用
REGEX

  • (?i)
    不区分大小写
  • yes(A | C)
    yes后跟A或C
  • 求和
    把所有的事实加起来
对于复杂的情况

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


请注意,
yes
/
no
后面不应该有尾随空格,
A
C
等前面不应该有前导空格。如果有,请使用
TRIM

这一个有趣的地方是我得到了一个表示“count”的单元格,然后在它下面是一个结果正确的单元格(4)。我只想找4个。真的,真的很接近!现在我得到了#值!。做了一次直接复制粘贴,得到了与
a:C
a:B
相同的结果。这一次有趣的是,我得到了一个单元格,上面写着“count”,然后在它下面是一个结果正确的单元格(4)。我只想找4个。真的,真的很接近!现在我得到了#值!。做了一次直接拷贝粘贴,并得到了与
a:C
a:B
相同的结果。非常感谢。美女非常感谢。