excel函数技巧:countif+mod解决分组问题-趣帮office教程网

如图,每个编号下面有好几个人,想根据优先级确定发展人应该是谁,公式如下:=INDEX(C:C,

MOD(

MAX(

COUNTIF(OFFSET(F:F,,{0,1,2}), IF(D$2:D$34=K2,C$2:C$34))*10^{6,5,4}

COUNTIFS(C:C, IF(D$2:D$34=K2,C$2:C$34),D:D,K2)/1%

ROW($2:$34)

),

100)

)

这是第一次这么写公式,目的只有一个分层级将公式展开,便于分析。

函数思路:利用countif函数找出编号所有人在f:h列,即每一个级别的位置,并对每一个级别的数据分别乘以10万,1万,1千,这样第一优先级别的数就会最大。

再次利用countif函数对编号所有人在F:H列出现的次数进行统计,并乘以100,这样在优先级相同的情况下实现出现次数越多,赋值越大。

用row函数对H:F列的数据进行排序,顺序与姓名在C列中的位置相一致。

最后将三个数字相加取最大的数。然后取这个数除以100的余数。得到的正式最大值的排序位置。