Q:如下圖1所示,在工作表列A中有很多數(shù)據(jù)(為方便表述,示例中只放置了9個數(shù)據(jù)),這些數(shù)據(jù)中有很多重復(fù)數(shù)據(jù),我想得到重復(fù)次數(shù)最多的數(shù)據(jù)是那個,示例中可以看出是“Excel”重復(fù)的次數(shù)最多,如何獲得這個數(shù)據(jù)?
圖1
A:可以使用一個數(shù)組公式:
=INDEX($A$1:$A$9,MODE(MATCH($A$1:$A$9,$A$1:$A$9,0)))
注意,數(shù)組公式是在公式輸入完后,同時按下Ctrl+Shift+Enter組合鍵,Excel會自動在公式兩側(cè)加上花括號。
在上面的公式中:
MATCH($A$1:$A$9,$A$1:$A$9,0)
在單元格區(qū)域A1:A9中依次分別查找A1至A9單元格中的數(shù)據(jù),得到這些數(shù)據(jù)第1次出現(xiàn)時所在的行號,從而形成一個由該區(qū)域所有數(shù)據(jù)第一次出現(xiàn)的行號組組成的數(shù)字?jǐn)?shù)組。
MODE函數(shù)從上面的數(shù)組中得到出現(xiàn)最多的1個數(shù)字,也就是重復(fù)次數(shù)最多的數(shù)據(jù)在單元格區(qū)域所在的行。將這個數(shù)字作為INDEX函數(shù)的參數(shù),得到想應(yīng)的數(shù)據(jù)值。
有興趣的朋友可以使用“公式求值”功能一步步查看數(shù)組公式的實現(xiàn)過程,來理解這個數(shù)組公式原理。
如果將單元格區(qū)域命名為MyRange,那么上述數(shù)組公式可寫為:
=INDEX(MyRange,MODE(MATCH(MyRange,MyRange,0)))
但是,如果單元格區(qū)域中有幾個數(shù)據(jù)重復(fù)次數(shù)相同且都出現(xiàn)次數(shù)最多,則上述公式只會獲取第1個數(shù)據(jù),其他的數(shù)據(jù)怎么得到呢?