Excel常用统计分析函数分享
文章目錄
- 1 平均值計算
- 1.1 無條件平均值計算:AVERAGE
- 1.2 單一條件下的平均值計算:AVERAGEIF
- 1.3 多條件下的平均值計算:AVERAGEIFS
- 2 按指定條件計數
- 2.1 條件判斷介紹
- 2.2 單字段多條件計數
- 2.3 多字段多條件計數
- 3 認識COUNTA與COUNTBLANK函數
- 3.1 檢查數據填寫的完整性
- 3.2 空與非空的判斷
- 4 應用SUMPRODUCT函數計算
- 4.1 應用SUMPRODUCT函數進行多條件求和計算
- 4.2 應用SUMPRODUCT函數進行多條件計數計算
- 4.3 應用SUMPRODUCT函數進行排序
- 5 按指定條件求和
- 5.1 單字段多條件求和
- 5.2 多字段多條件求和
- 5.3 二維區域條件求和
- 6 FREQUENCY函數技巧二則
- 6.1 認識FREQUENCY函數
- 6.2 分段統計數值結果
- 6.3 計算連續相同值的最多個數
- 7 RANK函數
- 7.1 使用RANK函數對學生成績排名
- 7.2 認識RANK.EQ函數和RANK.AVG函數
- 8 計算百分位排名
- 9 剔除極值,計算平均得分
- 10 眾數的妙用
1 平均值計算
1.1 無條件平均值計算:AVERAGE
通常我們習慣直接使用AVERAGE函數進行數據的平均值計算,其實該函數可以與其他函數組合運用,來滿足更復雜的平均值計算。
實例:如圖數據所示,要求在不進行排序的情況下計算出銷量前5名銷售的平均銷量。
思路解析:在B16單元格輸入數組公式:{=AVERAGE(LARGE(B3:B13,ROW(1:5)))},公式先利用LARGE函數求得銷量前5名銷售的銷量數組,再用AVERAGE函數求出平均值。
涉及的函數:ROW、LARGE、AVERAGE
思考:如果需求改為“要求在不進行排序的情況下計算出銷量末尾5名銷售的平均銷量”,該如何實現?
答案:在B19單元格輸入數組公式:{=AVERAGE(SMALL(B3:B13,ROW(1:5)))},該公式和上述公式類似,只是將large函數換成了small函數。
注意:需按Ctrl+Shift+Enter三鍵輸入數組公式,才能得到想要的結果。
1.2 單一條件下的平均值計算:AVERAGEIF
AVERAGEIF函數:AVERAGEIF(條件區域,條件,[求平均值區域])
下面數據是一份銷售報表,由于星期六、星期日為休息日,無銷售額發生,因此金額欄中的值為0(用“-”代替)。
需求1:分別計算星期一至星期五的平均銷售額,用于分析星期一至星期五的平均銷售額變動情況。
思路:在N4單元格輸入公式:=AVERAGEIF($H$3:$H$30,M4,$I$3:$I$30),然后向下填充公式,公式以具體星期作為條件,使用AVERAGEIF函數計算平均值。
思考:如果上述問題使用AVERAGE函數實現,要怎么做?
答案:在O4單元格輸入數組公式:{=AVERAGE(IF($H$3:$H$30=M4,$I$3:$I$30))},然后向下填充公式,公式結合IF函數用邏輯判斷H3到H30單元格區域的內容是否與M4單元格的內容相等,然后返回I3到I30單元格區域中屬于M4單元格的值,最后用AVERAGE函數求平均值。
需求2:計算2014年5月1日至28日之間有效工作日的日均銷售額。
思路:在N12單元格輸入公式:=AVERAGEIF(I3:I30,">0"),這里的有效工作日是指非周六周日,因此只需要計算金額列非0單元格的平均值即可。
注意:當AVERAGEIF函數省略第三參數時,將使用第一參數同時作為條件判斷與數值計算的區域。
1.3 多條件下的平均值計算:AVERAGEIFS
AVERAGEIF函數:AVERAGEIFS(求平均值區域,條件區域1,條件1,[條件區域2,條件2],[條件區域3,條件3],……)
需求3:沿用1.2的數據,要求計算中旬有效工作日的平均銷售額。
思路:該需求有兩個條件,一個是中旬(即11日至20日),一個是有效工作日(即金額列非0的單元格),因此在N16單元格輸入公式:=AVERAGEIFS(I3:I30,G3:G30,">=2014年5月11日",G3:G30,"<=2014年5月20日",I3:I30,">0")。
注意:AVERAGEIFS函數的條件區域和條件值組成一組條件參數,最多允許設置127組條件參數(一般不會設置這么多條件)。
2 按指定條件計數
2.1 條件判斷介紹
COUNTIF函數和COUNTIFS函數可以統計滿足一定條件的單元格個數,條件參數中可以使用比較運算符和通配符。上面展示了COUNTIF函數常用的公式用法,這些公式同樣適用于COUNTIFS函數,在僅有一個條件參數的情況下,兩者的運算結果完全相同。
設置COUNTIF函數或COUNTIFS函數的條件參數時,需要注意以下一些情況:
- 判斷條件 “<>”:這個條件參數表示不等于 ”真空”,“真空”表示單元格內沒有任何數據,是真正的空單元格,設置這個判斷條件可統計非真空單元格的個數;
- 判斷條件 “><”:這個條件參數僅表示統計大于 “<”符號的文本,注意區分 “<>”和 “><”的區別;
- 判斷條件 “=”:這個條件參數表示等于 “真空”,可用于統計真正空單元格的個數;
- 判斷條件“”:這個條件參數表示包含真空單元格及空文本,其中的 “空文本”一般是指由公式計算得到的結果;
- 判斷條件 “*”:這個條件參數代表所有文本,包括空格以及空文本,但不包含真空單元格,也不包含數值、邏輯值、錯誤值等數據單元格;
- 判斷條件 “<>”””:這個條件參數的含義并不代表“不等于空文本”,而僅僅只表示不等于單個雙引號 (“ );
- 判斷條件 “?*”:這個條件參數表示統計所有單元格長度不為0的文本單元
2.2 單字段多條件計數
數據:
需求1:統計銷售量大于等于1000且小于1300的記錄個數。
思路:該需求屬于單個字段列多個條件的類型,可使用COUNTIFS函數進行統計,其參數中每兩個參數形成一組關聯條件區域和條件表達式(最大可以包含127組條件),因此在K15單元格輸入公式: =COUNTIFS(L2:L10,">=1000",L2:L10,"<1300") *得到結果。
擴展:上述需求除了可以用COUNTIFS函數直接統計外,還可以通過兩個COUNTIF函數分別統計再算差額,在K16單元格輸入公式:=COUNTIF(L2:L10,">=1000")-COUNTIF(L2:L10,">=1300") 得到結果;也可以在COUNTIF函數中運用數組參數作為計數條件,然后與數組相乘取得求和運算中的正負符號,最后用SUM函數求和得到差額。在K17單元格輸入公式:=SUM(COUNTIF(L2:L10,">="&{1000,1300})*{1,-1}) 得到結果。
2.3 多字段多條件計數
需求2:沿用2.2的數據,統計工號以A或E開頭的員工的汽油銷售筆數。
思路:該需求屬于多字段(工號和商品)多條件的類型,可直接使用COUNTIFS函數實現,分別統計工號以 “A”開頭的員工的“汽油”銷售筆數以及工號以 “E”開頭的員工的“汽油”銷售筆數,相加即可得到結果。在K22單元格輸入公式:=COUNTIFS(J2:J10,“A*”,K2:K10,"*汽油")+COUNTIFS(J2:J10,“E*”,K2:K10,"*汽油") 得到結果。
擴展:上述需求也可以運用COUNTIFS函數對“工號”和“商品”兩個字段進行多字段多條件計數,條件為模糊條件,需要運用通配符“*”代表任意字符,對于“工號”字段條件,運用數組解決邏輯“或”的關系,計算結果為數組{2,2},最后用SUM函數求和。在K23單元格輸入公式:=SUM(COUNTIFS(J2:J10,{“A*”,“E*”},K2:K10,"*汽油")) 得到結果。
3 認識COUNTA與COUNTBLANK函數
3.1 檢查數據填寫的完整性
COUNTA函數可以返回單元格區域非空單元格個數;COUNTBLANK函數可以統計指定單元格區域中空白單元格的個數。
實例:如上表所示,固定資產清單中存在一些缺項,運用COUNTA和COUNTBLANK函數確認固定資產清單是否填寫完畢。
要求:運用COUNTA和COUNTBLANK函數,從“內容是否完整”和“是否存在空值”兩個不同的角度實現數據檢查的功能。
思路:
(1)用COUNTA函數統計當前行中的字段填寫個數,如果非空單元格個數與第二行中的標題個數相同,則返回空值(表示已填寫完整),如果有缺項,則返回“缺項”。在K3單元格輸入公式:=IF(COUNTA(A3:I3)=COUNTA($A$2:$I$2),"",“缺項”) ,然后向下填充得到結果。
(2)用COUNTBLANK函數統計當前行中是否存在空值,如果計算結果大于0,即有空值,表示填寫未完成,公式返回“缺項”,否則返回空文本。在L3單元格輸入公式:=IF(COUNTBLANK($A3:$I3),“缺項”,""),然后向下填充得到結果。
3.2 空與非空的判斷
運用COUNTA和COUNTBLANK函數進行數據統計時,需要注意數據表中空值和非空值的判斷。
實例:如圖所示,從表面上看,員工信息表中的性別字段均無內容,但實際上已被設置了6種真假空的情況。
核查思路:
(1)用COUNTA函數統計當前行中的字段填寫個數,如果非空單元格的個數為4,則返回空值(表示已填寫完整),如果有缺項,則返回“缺項”。在U3單元格輸入公式:=IF(COUNTA($O3:$R3)=4,"",“缺項”) ,然后向下填充得到結果。
(2)用COUNTBLANK函數統計當前行中是否存在空值,如果計算結果大于0,即有空值,表示填寫未完成,公式返回“缺項”,否則返回空文本。在V3單元格輸入公式:=IF(COUNTBLANK($O3:$R3),“缺項”,""),然后向下填充得到結果。
注意:
(1)COUNTA函數返回包含文本、假空單元格、邏輯值或錯誤值的結果,只有真空單元格不被計數,其參數可以是引用,也可以內存數組(指按Ctrl+shift+enter得到的結果)。
(2)而COUNTBLANK函數則返回單元格區域中單元格為空單元格或公式計算結果為空文本的個數,其參數只能是單元格引用,不能是內存數組。
4 應用SUMPRODUCT函數計算
4.1 應用SUMPRODUCT函數進行多條件求和計算
SUMPRODUCT函數將給定的幾組數組中數組間對應的元素相乘,并返回乘積之和。利用這一特性,可以用該函數進行多條件求和、計數以及其他相關的數值計算。
數據:
需求1:根據上面數據明細,按品種、站點對“金額”進行分類匯總。
思路:
在I3單元格輸入公式:=SUMPRODUCT(($B$2:$B$24=$H3)*($C$2:$C$24=I$2),$D$2:$D$24),將公式填充至K3單元格,然后向下填充至K7單元格。
(1)構造數組1,用于判斷數據表中的區域單元格引用是否為對應單元格給定的油品品種;構造數組2,用于數據表中的區域單元格引用是否為對應單元格給定的站點名稱。兩個數據條件相乘,數據均滿足這兩個條件時返回1,如果有一個或一個以上不滿足,則返回0。
(2)SUMPRODUCT函數將兩個條件數組乘積再與目標計算字段“金額”所在的單元格區域進行數據相乘,并將乘積求和,得到計算結果。
注意:
(1)用SUMPRODUCT函數進行多條件計算,要求條件單元格引用區域與目標計算字段單元格引用的數據區域大小相同。
(2)用SUMPRODUCT函數進行多條件求和計算,也可以使用如下公式:=SUMPRODUCT((條件數組1)*(條件數組2)*……*(條件數組n)*(求和數據區域))。
即多個“條件數組”與“求和數據區域”直接連乘。為了避免目標計算字段數據中存在空格或其他文本項造成計算出現#VALUE!的情況,建議使用通用格式:
=SUMPRODUCT((條件數組1)*(條件數組2)*……*(條件數組n),(求和數據區域))
4.2 應用SUMPRODUCT函數進行多條件計數計算
需求2:沿用4.1的數據,統計0號輕柴油單筆加油量在2000以上的筆數。
思路:使用SUMPRODUCT函數計算時,如果想要得到滿足條件記錄的個數,只需用多個條件數組相乘。在I12單元格輸入公式:=SUMPRODUCT(($B$2:$B$24=“0號輕柴油”)*($D$2:$D$24>=2000)) 得到結果。
4.3 應用SUMPRODUCT函數進行排序
需求3:根據對應日期的經營總額進行排序
思路:
在J17輸入公式:=SUMPRODUCT(($I17<$I$17:$I$21)*1)+1 得到結果
(1)用“對應日期的經營總額”在“全部日期經營總額單元格區域”中進行比較,當“對應日期的經營總額”<“全部日期經營總額單元格區域值”成立時,返回TRUE,否則返回FALSE,所以比較結果返回一個由TRUE和FALSE構成的邏輯數組,然后將邏輯數組乘以1,得到一個由0和1構成的新數組。
(2)SUMPRODUCT再對由0和1構成的新數組求和,表示在“全部日期經營總額單元格數據區域”中比“對應日期經營總額”大的數據個數,所以“對應日期經營總額”在“全部日期經營總額單元格數據區域”內排列的位次,應該是比“對應日期經營總額”大的數據個數加1。
(3)再將公式向下復制,則依次對“全部日期經營總額單元格數據區域”中每一個數據重復進行上述判斷求和,從而排除數據區域中每一個數據的位次。如果區域中有相同的數,則計算結果也是相同的,因而排出來的位次也相同。
5 按指定條件求和
5.1 單字段多條件求和
需求:根據評分表、評分規則、系數表計算出各油站的月綜合得分,以此考核油站的當月工作情況。
思路:
在B16單元格輸入數組公式:{=SUM((B$3:B$11=A16)*SUMIF(G$3:G$6,C$3:E$11,H$3:H$6)*TRANSPOSE(H$9:H$11))} ,然后向下填充得到結果。
(1)轉換等級為對應分值:利用SUMIF函數與COUNTIF函數類似“單字段多條件計數”的原理,使用C3:E11單元格的評分等級進行條件求和,轉換為對應分值,計算結果為與C3:E11對應的9行3列的數組;
(2)計算評分項目系數:將SUMIF得到的評分分值乘以每個項目對應的系數,得到實際得分值。由于系數為3行1列,而SUMIF的結果為3列,因此使用TRANSPOSE函數進行轉置。
(3)條件求和:將SUMIF與系數相乘的結果再乘以加油站名稱判斷,得到對應加油站的考評分項的分值。
(4)最后用SUM函數求和,得到對應加油站的綜合得分。
5.2 多字段多條件求和
需求:計算7月份工號以G或P開頭的員工汽油的銷售量。
解析:該需求涉及了三個字段的條件:日期、工號、商品
思路:
在L14單元格輸入公式:=SUM(SUMIFS(N2:N10,K2:K10,IF(MONTH(K2:K10)=7,K2:K10),L2:L10,{“G*”,“P*”},M2:M10,"*汽油")) 得到結果。
公式運用SUMIFS函數進行多字段多條件求和,其中日期條件使用IF函數和MONTH函數,計算得到月份為“7月”的一組數組條件,而“工號”和“商品”兩個字段條件為模糊條件,需要運用通配符“*”進行模糊匹配,對于“工號”字段條件,運用橫向數組解決邏輯“或”的關系,最后用SUM函數求和,得到數組計算結果。
注意:SUMIFS和SUMIF的參數順序不同,SUMIFS中將求和區域作為第一參數,而在SUMIF中則是第三參數,使用時注意區分。
5.3 二維區域條件求和
SUMIF函數除了可以在一維數據區域中進行條件求和外,還可以在二維數據表中進行條件求和。
需求1:統計所有“康師傅”方便面的銷售量合計。
在S15單元格輸入公式:=SUMIF(T3:Z11,“康師傅”,U3:AA11) 得到結果。
需求2:統計所有工號為A開頭的銷售量合計。
在S18單元格輸入公式:=SUMIF(S3:Y11,“A*”,U3:AA11) 得到結果。
思路:在條件區域中查找滿足條件的值,如在T3:Z11數據區域中查找值為“康師傅”的單元格,然后根據滿足條件值,在第三參數所指定的目標區域中求和運算。
注意:使用SUMIF函數進行二維區域條件求和時,要求條件區域與求和區域需要尺寸相同,且相對位置要保持一一對應,這樣才能得到正確結果,否則將不能得到正確結果。
6 FREQUENCY函數技巧二則
6.1 認識FREQUENCY函數
FREQUENCY函數的作用是計算一組數據的頻率分布,該函數的語法格式如下:
FREQUENCY(data_array,bins_array)
參數說明:
- data_array:參數data_array為一數組或對一組數組的引用,用于計算頻率。如果data_array中不包含任何數值,函數FREQUENCY返回零數組。
- bins_array:參數bins_array為間隔的數組或對間隔的引用,該間隔用于對data_array中的數值進行分組。如果bins_array中不包含任何數值,函數FREQUENCY返回data_array中元素的個數。
函數特性:
(1)該函數的兩個參數均支持數組和單元格區域的引用,當第二參數為二維數組或引用時,采用“先行后列”的方式進行統計。
(2)分段點若有重復,只在首次分段點統計數值出現的個數,其余分段點返回0。
(3)函數會忽略文本、邏輯值和空單元格,只對數值進行統計。
6.2 分段統計數值結果
需求:統計各分數段(即[0,60)、[60,70)、[70,80)、[80,90)、[90,100])的人數。
思路:
根據規則,在H2:H6單元格區域設置各分數段的分段點,然后同時選中I2:I6單元格區域,輸入多單元格數組,公式如下:
{=FREQUENCY($D$2:$D$21,$H$2:$H$5-0.001)}
需要注意這里的花括號{}不是輸入內容,而是編寫完等號及左邊的公式后按Ctrl+shift+enter鍵得到。
FREQUENCY函數返回的元素個數會比bins_array參數中的元素個數多1個,多出來的元素表示超出最大間隔的數值個數。
此外,在按間隔統計時,FREQUENCY函數是按包括間隔上限,但不包括下限進行統計(即左閉右開)。
根據該函數的這些特征,設計公式時,需要在給出的間隔區間數據基礎上進行必要修正,才能得到正確的結果:
- 間隔區間要少取一個,取H2:H5數據區域,而不是表中顯示的H2:H6;
- 在給出的間隔區間上限值的基礎上減去一個較小的值0.001,調整間隔區間上下限的開閉區間關系。
6.3 計算連續相同值的最多個數
需求:根據上圖的NBA籃球賽連勝場次統計數據中,計算兩個球隊各自的比賽最長連勝(得3分)的場次。
思路:
根據需求,在W3單元格輸出如下數組公式:
{=MAX(FREQUENCY(IF(M3:V3=3,COLUMN(M3:V3)),IF(M3:V3<>3,COLUMN(M3:V3))))}
然后向下拖動公式。
該數組公式中的IF公式分別表示滿足條件的數據賦值“列號”,其他賦值FALSE,忽略邏輯值后,以列號用作間隔區間,對第一參數中的連續列號進行分段統計個數,最后通過MAX函數取得最大值。
7 RANK函數
7.1 使用RANK函數對學生成績排名
**RANK函數語法:RANK(number,ref,order) ,其中Number 為需要找到排位的數字,Ref 為數字列表數組或對數字列表的引用(Ref 中的非數值型參數將被忽略),Order 為一數字,指明排位的方式。 **
- 如果 order 為 0(零)或省略,WPS表格對數字的排位是基于 ref 為按照降序排列的列表。
- 如果 order 不為零,WPS表格對數字的排位是基于 ref 為按照升序排列的列表。
需求:根據考試成績表,按總分分別進行班級內部排名和全年級排名。
思路:
班級內部排名:在I3單元格輸出如下公式:=RANK(H3,$H$3:$H$7),然后向下拖動公式。二班的排名類似,只需將調整排名數據。
年級內排名:全年級成績區域包含一班和二班兩個數據區域,中間不連續。RANK函數可以忽略引用區域中的非數值參數,而該函數的第二參數引用區域可以為單一數據區域,也可以是聯合屬于區域,因此公式可以為=RANK(H3,($H$3:$H$7,$H$10:$H$15))(聯合區域)或者 =RANK(H3,$H$3:$H$15)(完整區域)。
注意:RANK函數重復數的排名相同,但重復數會影響后續數值的排名,從出現跳躍式名次。
7.2 認識RANK.EQ函數和RANK.AVG函數
RANK.EQ函數和RANK.AVG函數是RANK函數的升級版,其中:
- RANK.EQ函數:返回一列數字的數字排位。 其大小與列表中其他值相關;如果多個值具有相同的排位,則返回該組值的最高排位。
- RANK.AVG函數:返回一列數字的數字排位:數字的排位是其大小與列表中其他值的比值;如果多個值具有相同的排位,則將返回平均排位。
RANK函數、RANK.EQ函數、RANK.AVG函數這三者的語法類似。
RANK.EQ函數和RANK.AVG函數兩者的共同點:
(1)可以對數據進行升序或降序排名;
(2)排名范圍只能是單元格引用,不支持數組引用;
(3)支持聯合單元格區域,如使用公式 =RANK.AVG(B2,Sheet1:Sheet3!B:B)來實現多表聯合排名
說明:RANK.EQ函數和RANK.AVG函數在相同數值中出現不同排名是由其返回值決定的。
8 計算百分位排名
PERCENTRANK 函數用于返回特定數值在一個數據組中的百分比排位,利用該函數可以對目標數據按一定數量比例進行分級。
PERCENTRANK 函數語法:
*PERCENTRANK(array,x,significance) *
參數:
(1)Array:定義相對位置的數組或數字區域。
(2)x:數組中需要得到其排位的值。
(3)Significance:可選,一個用來標識返回的百分比值的有效位數的值。如果省略,函數PERCENTRANK保留三位小數。
說明:
(1)若數組array為空,則PERCENTRANK 返回錯誤值 #NUM!。
(2)若 significane < 1,則PERCENTRANK 返回錯誤值 #NUM!。
(3)若數組里沒有與x相匹配的值,則PERCENTRANK 將進行插值以返回正確的百分比排位
需求:按各公司營業額的大小排序,排名前20%的公司評定為A級單位,在級別列填入評定結果。
思路:在C2單元格中輸入如下公式,并填充至C15單元格:
=IF(PERCENTRANK($B$2:$B$15,B2,2)>=0.8,“A級單位”,"")
該公式使用PERCENTRANK函數計算B2單元格的值在B2:B15單元格區域的數據組中的百分比排位,保留2位小數后的結果為0.92(B2:B15單元格區域中小于B2單元格值得個數有12個,大于B2單元格值的個數有1個,百分比排位計算過程為12/(1+12)≈0.92),最后用IF函數判斷大于或等于0.8時為“A級單位”。
9 剔除極值,計算平均得分
TRIMMEAN 函數返回數據集的內部平均值:先從數據集的頭部和尾部除去一定百分比的數據點,然后再求平均值。
語法:TRIMMEAN(array,percent)
參數:
(1)array 為需要進行整理并求平均值的數組或數值區域。
(2)percent 為計算時所要除去的數據點的比例,例如,如果 percent = 0.3,在 20 個數據點的集合中,就要除去 6 個數據點 (20 x 0.3):頭部除去3個,尾部除去 3 個。
**說明 **
- 如果 percent < 0 或 percent > 1,函數 TRIMMEAN 返回錯誤值 #NUM!。
- 函數 TRIMMEAN 將除去的數據點數目向下舍入為最接近的 2 的倍數。如果 percent = 0.1,30 個數據點的 10% 等于 3 個數據點。函數 TRIMMEAN 將對稱地在數據集的頭部和尾部各除去一個數據。
需求:根據上面的評分表,要求在最終得分列計算“去掉一個最高分和一個最低分”后的平均得分。
思路:在J2單元格填入公式 =TRIMMEAN(B2:I2,2/COUNTA(B2:I2)),然后向下填充,公式中的2/COUNTA(B2:I2)作為百分比參數,表示從B2到I2的非空單元格中去除2個數據點。
注意:當存在多個相同極值(最大值或最小值)時,TRIMMEAN函數只會按要求各剔除其中一個,然后求平均值
10 眾數的妙用
眾數是指一組數值中出現頻率最高(次數最多)的數值。
需求:根據上面的選手評分表計算出每個選手得分頻率最高的分值。
思路:在J2單元格輸入公式=MODE(B2:I2),然后向下填充。
擴展:MODE函數還可以在數值和字符混合的數據表中計算出現頻率最高的內容。
如上面數據表所示,計算出現頻率最高的內容,P1單元格的公式如下:
{=INDEX(M2:M20,MODE(MATCH(M2:M20,M2:M20,0)))}
MODE函數只能對數值進行計算,要在數值和字符混合的數據表中計算出現頻率最高的內容,首先需要用MATCH函數將數據表中的值全部轉為數值,其計算結果表示每一個數據在整個數據表中出現的位次,再用MODE函數從中計算出頻率最高的位次,最后用INDEX函數,在數據表中查找對應定位的值,從而得到出現頻率最高的值。
如果需要對數據列表中存在的空值等情況進行容錯,公式可改為=INDEX(M2:M20,MODE(MATCH(M2:M20&"",M2:M20&"",0)))。
如果空值不計算在有效數據內,公式可改為=INDEX(M2:M20,MODE(IF(M2:M20<>"",MATCH(M2:M20,M2:M20,0))))
注意*:當數據表中的多個數字出現最高頻率相同時,則MODE函數按照先列后行、從上到下的原則返回第1個出現頻率最高的數值。
以上分享的干貨均來自書籍《Excel2013實戰技巧精粹》,更多技巧可自行查閱原書。
總結
以上是生活随笔為你收集整理的Excel常用统计分析函数分享的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端学习(1837):前端面试题之变量提
- 下一篇: 前端学习(1439):vue的hello