Excel统计得票最多的姓名

问题情境
如下样表 , 记录了每个人的得票情况:

Excel统计得票最多的姓名

文章插图
求统计得票最多的姓名 。
【Excel统计得票最多的姓名】公式实现
在D2单元格输入公式:
=IFERROR(INDEX(B$2:B$16,SMALL(MODE.MULT(MATCH(B$2:B$16,B$2:B$16,)),ROW(A1))),””)
即得得票最多的姓名 。
如果得票最多的不止一位 , 可向下填充公式 , 得出其它姓名 。
如下图:
Excel统计得票最多的姓名

文章插图
公式解析
MATCH(B$2:B$16,B$2:B$16,):
在B2:B16区域 , 依次匹配B2:B16单元格中每一位姓名出现的位置 。MATCH函数匹配位置 , 只能匹配第一次出现时的位置 , 比如“王一” , 虽然出现在第1、6、7、11、13位上 , 但MATCHA的返回值都是1 , 所以本部分返回的是各个姓名第一次出现位置的数组:
{1;2;2;4;4;1;1;2;9;2;1;9;1;2;10}
MODE.MULT(MATCH(B$2:B$16,B$2:B$16,):
MODE.MULT计算出现最多的位次 , 即{1;2};
SMALL(MODE.MULT(MATCH(B$2:B$16,B$2:B$16,)),ROW(A1)):
因为有两个出现最多的位次 , 所以在D2显示ROW(A1)即第一个位次的姓名 , D3显示ROW(A2)即第二个位次的姓名;
INDEX(B$2:B$16,SMALL(MODE.MULT(MATCH(B$2:B$16,B$2:B$16,)),ROW(A1))):
用INDEX函数显示B2:B16区域中对应位次的姓名;
IFERROR(INDEX(B$2:B$16,SMALL(MODE.MULT(MATCH(B$2:B$16,B$2:B$16,)),ROW(A1))),””):
屏蔽错误值 , 当公式下拉到D4级以后 , 再没有得票最多姓名时出现空值 。

    推荐阅读