(注意:我在这里找到了类似的问题,但是他们都没有在Google表格中使用花括号,因此我的问题可能针对的是不同的情况)
我在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
包含任何“TU维也纳”或“维也纳大学TECHN”等,给予额外的标准,即A5:A
是1
。
我的问题:如果一个单元格同时包含“ TU Wien”和“ Vienna Univ Techn”(或花括号中的任何其他值),则此代码将两次计数一次。
我想要的是:即使一个单元格中有多个匹配项,它也应该只对每行计数一次。
测试表:在这里。
鉴于您的示例的具体细节,这将是我在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将对单元格文本进行计数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句