比COUNTIFS更高一步,我提出了一个挑战,即编写一个没有VBA代码的公式。基本数据由1000行组成:
为此,我们假设,我们正在查看A列中值为“1”的所有单元格,它们在B列中符合值“5”。要查找所有匹配项,我们将使用COUNTIFS命令。
1 1
2 5
1 5
1 7
1 10
3 45
2 12
1 2
2 1
=COUNTIFS(A1:A9;1;B1:B9;5)
答案是1。
接下来,B列中的“5”属于一个组,例如从1到9的分组。在这个例子中计算所有匹配的最佳方法是什么,这样对于A列中的所有“1”,我们必须找到所有匹配值为1到9的所有匹配。 B栏?!在上面的示例中,将导致“4”。显而易见的解决方案是使用一系列IF命令,但这样做效率很高,很容易出错,这很容易被监督。
=COUNTIFS(A1:A9;1;B1:B9;"<="&9)
仅作为上限使用。如果我将第三个条件范围和条件指定为“&gt; =”&amp; 1则不起作用 - 返回0.
加斯珀
答案 0 :(得分:1)
当你说给出第三个标准范围时,你的意思是:
= COUNTIFS(A1:A9; 1; B1:B9;&#34;&LT; =&#34;和9,B1:B9;&#34;&GT; = 1&#34)
如果是,请尝试:
= COUNTIFS(A1:A9; 1; B1:B9;以及(&#34;&LT; =&#34;和9,;&#34;&GT; = 1&#34))
即具有两个条件范围,第二个范围具有与AND()
组合的两个条件答案 1 :(得分:1)
当数据在A1:B9中时,使用D1中的查找表:E10,列D中的字母AJ和E列中的数字0到9以及B11中的以下公式引用在A11和A12中输入的字母:
= COUNTIFS(A1:A9,1,B1:B9,&#34;&GT; =&#34;&安培; VLOOKUP(A11,$ d $ 1:$ E $ 10,2,FALSE),B1:B9, &#34;&LT; =&#34;&安培; VLOOKUP(A12,$ d $ 1:$ E $ 10,2,FALSE))
有效,更改A11和A12中的字母会根据它们在D1:E10中的对应内容给出正确的计数。
答案 2 :(得分:0)
也许你想要的(编辑)是:
=COUNTIFS(A:A;1;B:B;">=1";B:B;"<=9")
答案 3 :(得分:-1)
几乎就在那里。我注意到只有当我使用&#34; =&#34;时,三个标准范围和条件才有效。签到一个条件。我一使用
=COUNTIFS(A1:A9;1;B1:B9;"<="&9,B1:B9;">=1")
它返回0.我的目标是最终使用VLOOKUP命令替换条件中的数字,因此最终的等式应该像是
=COUNTIFS(A1:A9;1;B1:B9;"<="&VLOOKUP(...),B1:B9;">=VLOOKUP(...)")
但&#34;&lt;&#34;和&#34;&gt;&#34;标志一塌糊涂。仍在寻找解决方案。
答案 4 :(得分:-1)
这是我的整行,如果它提供任何进一步的指示。 AND()命令结束 - 它仍然导致0
=COUNTIFS(INDIRECT(CONCATENATE("baza!$";SUBSTITUTE(ADDRESS(1;MATCH("card_type_id";baza!$A$1:$AAA$1;0);4);"1";"");"$2:$";SUBSTITUTE(ADDRESS(1;MATCH("card_type_id";baza!$A$1:$AAA$1;0);4);"1";"");"$15000"));IF(C6="računska";1;0);INDIRECT(CONCATENATE("baza!$";SUBSTITUTE(ADDRESS(1;MATCH(IF($C$4="CC_SI_klasifikacija";"building_classification_id";0);baza!$A$1:$AAA$1;0);4);"1";"");"$2:$";SUBSTITUTE(ADDRESS(1;MATCH(IF($C$4="CC_SI_klasifikacija";"building_classification_id";0);baza!$A$1:$AAA$1;0);4);"1";"");"$15000"));AND("<="&VLOOKUP($C$5;$K$203:$N$223;4;FALSE);">="&VLOOKUP($C$5;$K$203:$N$223;3;FALSE)))