根据多个条件返回最频繁出现的string的计数

我在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列中最频繁出现的条目,而只计算Include? 值等于1。

我已经能够使用下面的数组函数find最频繁发生的区域(不考虑包含列):

 =INDEX(C:C,MODE(IF(C:C<>"",MATCH(C:C,C:C,0)))) 

然后,我可以使用以下命令find该值出现在列中的次数:

 =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) 

看来,这个公式仍然在find原始的区域 ,并且只是告诉我在包含哪个行中发生的次数 等于1,而不是根据这个额外的限制重新计算最频繁发生的区域。

我期望所需的公式将以某种方式结合COUNTIFS和/或SUMIFS和/或一些INDEX+MATCH组合,但我会打开其他选项。

试试这个:

 =COUNTIFS(A:A,1,C:C,INDEX(C:C,MODE(IF(C:C<>"",MATCH(C:C,C:C,0))))) 

这是一个数组公式,所以按Ctrl + Shift + Enter计算公式。
告诉我,如果它不起作用。 我在我的示例工作表中试过这个公式,我得到了预期的结果。

 =INDEX(C:C,MODE(IF(A:A=1, MATCH(C:C,C:C,0)))) 

你非常接近。 所有你需要做的,如果改变你的数组函数检查列A是否等于1反对检查列C是否不是空白,这将为你工作。 我testing了一些不同的场景。

注意:input公式后,您必须在PC上按SHIFT + CTRL + ENTER或在Mac上按COMMAND + ENTER。

标准( 非数组 )公式来检索A列为1的 C列(如North,South,West等 )中出现重复次数的最大次数。

 =MAX(INDEX((A2:A99=1)*COUNTIFS(A2:A99, 1, C2:C99, C2:C99), , )) 

式:
=COUNTIFS($A:$A,1,$C:$C,MODE.SNGL(VALUE($C$2:$C$7)))

这个公式计算Include?Include? 等于1, RegionRegion中的值的模式。 我利用区域名称都有不同的第一个字母的事实。

注意:如果模式function中出现“Tie”,则取最接近表格顶部的值。