【问题标题】:COUNTIFs once per row, with multiple criteria in curly braces in ARRAYFORMULA (Google Sheets)每行一次 COUNTIF,ARRAYFORMULA 中的花括号中有多个条件(Google 表格)
【发布时间】:2021-02-25 07:34:02
【问题描述】:

(注意:我在这里发现了类似的问题,但他们都没有使用 Google Sheets 中的花括号,所以我的问题可能针对不同的情况)

我在 Google 表格中有以下代码:

=IF(B3,
   ArrayFormula(
       SUM(
           COUNTIFS($A$5:$A, "1",
               $B$5:$B, {"*TU Wien*", "*Vienna Univ Techn*", "*Tech?Univ?Wien*", "*TU Vienna*"}
           )
        )
    ),
 "")

解释B3 是一个复选框。如果勾选,我想检查 B5:B 是否包含 either "TU Wien" 或 "Vienna Univ Techn" 等,因为附加标准 A5:A1

我的问题:如果单元格同时包含“TU Wien”“Vienna Univ Techn”(或花括号中的任何其他值)。

我想要什么:它应该只计算每一行一次,即使一个单元格中有多个匹配项。

测试表Here.

【问题讨论】:

    标签: google-sheets google-sheets-formula array-formulas countif curly-braces


    【解决方案1】:

    鉴于您的示例的具体细节,这将是我在 C3 中的方法:

    =ArrayFormula(IF(B3<>TRUE,,COUNTA(FILTER(B5:B,A5:A=1,NOT(ISERROR(REGEXEXTRACT(B5:B,"[vVwW]ien")))))))
    

    IF 仍在评估复选框是否被勾选。如果没有,什么也不做。如果是,则处理公式的其余部分。

    COUNTA 将获得 FILTER 选择的项目的计数。

    FILTER 将通过两个测试运行 B5:B 中的数据。首先,仅在 A5:A 为 1 的行中进行规则。第二个规则仅在满足 REGEXEXTRACT 条件的剩余元素中进行 [即,NOT(ISERROR(...)) 表示满足 REGEXEXTRACT 条件]。

    REGEXEXTRACT 正在寻找“[vVwW]ien”的匹配项;用简单的英语,这意味着“匹配任何以'v'或'w'(大写或小写)开头然后有'ien'的东西(即,它将匹配'vien''Vien''wien'或'Wien') .

    如果满足所有条件,则 COUNTA 计算单元格文本。

    【讨论】:

    • 谢谢;我将正则表达式更改为(TU [WV]ien|Vienna Univ Tech|Tech Univ [WV]ien),效果很好。
    • @anpami,只有你知道你可能的数据集的细节。如果您认为 B 列中会有其他条目以某种方式引用维也纳,那么,是的,您需要像以前那样缩小范围。但是,如果您看到较小的独特图案,最好使用它。看起来这所特定的学校可能会出现比您在 REGEXEXTRACT 的“或”集中列出的更多变化;虽然您可以继续添加,但最好考虑一下 B 列中会出现什么和不会出现什么,然后在这些参数范围内尽可能宽泛地使用 REGEX 类型的公式。
    猜你喜欢
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    • 2021-03-29
    • 1970-01-01
    • 2020-08-15
    • 1970-01-01
    • 1970-01-01
    • 2019-04-09
    相关资源
    最近更新 更多