我在Excel 2013中有一个大型数据表,类似于以下内容:
A(Include?) B(Name) C(Region)
1 John Doe North
0 Jim Stevens South
0 Tom Brooks West
1 Bob Smith West
1 Mike Thomas North
0 Steve Adams East
1 John Smith Northwest
我需要帮助提出一个Excel公式,它会显示最常出现的区域名称的计数,但前提是相应的包含?值相等到1。
在此示例中,我需要的公式将输出数字2,因为North是 Region 列中最常出现的条目,而只计算包含?<的条目/ strong> value等于1.
我已经能够使用以下数组函数找到最常出现的区域(不考虑包含列):
=INDEX(C:C,MODE(IF(C:C<>"",MATCH(C:C,C:C,0))))
然后,我可以使用以下命令查找此值在列中显示的次数:
=COUNTIF(C:C,INDEX(C:C,MODE(IF(C:C<>"",MATCH(C:C,C:C,0)))))
但是,当我尝试考虑包含?列时,我得不到正确答案。我最好的猜测是:
=COUNTIFS(C:C,C:C,INDEX(C:C,MODE(IF(C:C<>"",MATCH(C:C,C:C,0)))),A:A,1)
看来这个公式仍然找到了原来的区域,只是告诉我在包含?等于1的行中发生的次数,不基于此额外限制重新计算最常发生的区域。
我期望所需的公式会以某种方式合并COUNTIFS
和/或SUMIFS
和/或某些INDEX+MATCH
组合,但我会对其他选项持开放态度。
答案 0 :(得分:1)
试试这个:
=COUNTIFS(A:A,1,C:C,INDEX(C:C,MODE(IF(C:C<>"",MATCH(C:C,C:C,0)))))
这是一个数组公式,所以按 ctrl + shift + 输入来计算公式。
告诉我它是否有效。
我在我的示例工作表中尝试了这个公式,我得到了预期的结果。
答案 1 :(得分:1)
=INDEX(C:C,MODE(IF(A:A=1, MATCH(C:C,C:C,0))))
你非常接近。如果更改数组函数以检查列A是否等于1而不是检查列C是否为空,那么您需要做的就是这对您有效。我测试了一些不同的场景。
注意:输入公式后,您必须在PC上按SHIFT + CTRL + ENTER或在Mac上按COMMAND + ENTER。
答案 2 :(得分:0)
公式:
=COUNTIFS($A:$A,1,$C:$C,MODE.SNGL(VALUE($C$2:$C$7)))
此公式计算Include?
等于1的行,Region
是Region
中值的模式。我利用了这个地区名称都有不同的第一个字母的事实。
注意:如果是&#34;领带&#34;在模式功能中,它取最接近工作表顶部的值。
答案 3 :(得分:0)
标准(非数组)公式,用于检索列C中的重复项的最大出现次数(例如北,南,西等),其中A列是 1 。
=MAX(INDEX((A2:A99=1)*COUNTIFS(A2:A99, 1, C2:C99, C2:C99), , ))