統計得票最多的姓名

問題情境

如下樣表,記錄了每個人的得票情況:

Excel310 | 統計得票最多的姓名

求統計得票最多的姓名。

公式實現

在D2單元格輸入公式:

=IFERROR(INDEX(B$2:B$16,SMALL(MODE.MULT(MATCH(B$2:B$16,B$2:B$16,)),ROW(A1))),"")

即得得票最多的姓名。

如果得票最多的不止一位,可向下填充公式,得出其它姓名。

如下圖:

Excel310 | 統計得票最多的姓名

公式解析

  • 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級以後,再沒有得票最多姓名時出現空值。



分享到:


相關文章: