編者語:Excel是辦公室自動化中非常重要的一款軟體,很多巨型國際企業都是依靠Excel進行資料管理。它不僅僅能夠友善的處理表格和進行圖形分析,其更強大的功能展現在對資料的自動處理和計算,然而很多缺少理工科背景或是對Excel強大資料處理功能不了解的人卻難以進一步深入。編者以為,對Excel函數應用的不了解正是阻擋普通使用者完全掌握Excel的攔路虎,然而目前這一部份内容的教學文章卻又很少見,是以特别組織了這一個《Excel函數應用》系列,希望能夠對Excel進階者有所幫助。《Excel函數應用》系列,将每周更新,逐漸系統的介紹Excel各類函數及其應用,敬請關注!
Excel的統計工作表函數用于對資料區域進行統計分析。例如,統計工作表函數可以用來統計樣本的方差、資料區間的頻率分布等。是不是覺得好像是很專業範疇的東西?是的,統計工作表函數中提供了很多屬于統計學範疇的函數,但也有些函數其實在你我的日常生活中是很常用的,比如求班級平均成績,排名等。在本文中,主要介紹一些常見的統計函數,而屬于統計學範疇的函數不在此贅述,詳細的使用方法可以參考Excel幫助及相關的書籍。
Excel函數精彩回顧 |
● Excel函數應用之函數簡介 ● Excel函數應用之數學和三角函數 ● Excel函數應用之邏輯函數 ● Excel函數應用之文本/日期/時間函數 ● Excel函數應用之查詢與引用函數 |
在介紹統計函數之前,請大家先看一下附表中的函數名稱。是不是發現有些函數是很類似的,隻是在名稱中多了一個字母A?比如,AVERAGE與AVERAGEA;COUNT與COUNTA。基本上,名稱中帶A的函數在統計時不僅統計數字,而且文本和邏輯值(如TRUE 和 FALSE)也将計算在内。在下文中筆者将主要介紹不帶A的幾種常見函數的用法。
一、用于求平均值的統計函數AVERAGE、TRIMMEAN
1、求參數的算術平均值函數AVERAGE
文法形式為AVERAGE(number1,number2, ...)
其中Number1, number2, ...為要計算平均值的 1~30 個參數。這些參數可以是數字,或者是涉及數字的名稱、數組或引用。如果數組或單元格引用參數中有文字、邏輯值或空單元格,則忽略其值。但是,如果單元格包含零值則計算在内。
2、求資料集的内部平均值TRIMMEAN
函數TRIMMEAN先從資料集的頭部和尾部除去一定百分比的資料點,然後再求平均值。當希望在分析中剔除一部分資料的計算時,可以使用此函數。比如,我們在計算選手平均分數中常用去掉一個最高分,去掉一個最低分,XX号選手的最後得分,就可以使用該函數來計算。
文法形式為TRIMMEAN(array,percent)
其中Array為需要進行篩選并求平均值的數組或資料區域。Percent為計算時所要除去的資料點的比例,例如,如果 percent = 0.2,在 20 個資料點的集合中,就要除去 4 個資料點(20 x 0.2),頭部除去 2 個,尾部除去 2 個。函數 TRIMMEAN 将除去的資料點數目向下舍為最接近的 2 的倍數。
3、舉例說明:示例中也列舉了帶A的函數AVERAGEA的求解方法。
求選手Annie的參賽分數。在這裡,我們先假定已經将該選手的分數進行了從高到底的排序,在後面的介紹中我們将詳細了解排序的方法。
圖1
二、用于求單元格個數的統計函數COUNT
文法形式為COUNT(value1,value2, ...)
其中Value1, value2, ...為包含或引用各種類型資料的參數(1~30個),但隻有數字類型的資料才被計數。函數 COUNT 在計數時,将把數字、空值、邏輯值、日期或以文字代表的數計算進去;但是錯誤值或其他無法轉化成數字的文字則被忽略。
如果參數是一個數組或引用,那麼隻統計數組或引用中的數字;數組中或引用的空單元格、邏輯值、文字或錯誤值都将忽略。如果要統計邏輯值、文字或錯誤值,應當使用函數 COUNTA。
舉例說明COUNT函數的用途,示例中也列舉了帶A的函數COUNTA的用途。仍以上例為例,要計算一共有多少評委參與評分(用函數COUNTA),以及有幾個評委給出了有效分數(用函數COUNT)。
圖2
三、求區域中資料的頻率分布FREQUENCY
由于函數 FREQUENCY 傳回一個數組,必須以數組公式的形式輸入。
文法形式為FREQUENCY(data_array,bins_array)
其中Data_array為一數組或對一組數值的引用,用來計算頻率。如果 data_array 中不包含任何數值,函數 FREQUENCY 傳回零數組。Bins_array為一數組或對數組區域的引用,設定對 data_array 進行頻率計算的分段點。如果 bins_array 中不包含任何數值,函數 FREQUENCY 傳回 data_array 元素的數目。
看起來FREQUENCY的用法蠻複雜的,但其用處很大。比如可以計算不同工資段的人員分布,公司員工的年齡分布,學生成績的分布情況等。這裡以具體示例說明其基本的用法。
以計算某公司的員工年齡分布情況為例說明。在工作表裡列出了員工的年齡。這些年齡為 28、25、31、21、44、33、22 和 35,并分别輸入到單元格 C4:C11。這一列年齡就是 data_array。Bins_array 是另一列用來對年齡分組的區間值。在本例中,bins_array 是指 C13:C16 單元格,分别含有值 25、30、35、和 40。以數組形式輸入函數 FREQUENCY,就可以計算出年齡在 25歲以下、26~30歲、31~35歲、36~40歲和40歲以上各區間中的數目。本例中選擇了5個垂直相鄰的單元格後,即以數組公式輸入下面的公式。傳回的數組中的元素個數比 bins_array(數組)中的元素個數多 1。第五個數字1表示大于最高間隔 (40) 的數值(44)的個數。函數 FREQUENCY 忽略空白單元格和文本值。
{=FREQUENCY(C4:C11,C13:C16)}等于 {2;2;2;1;1}
圖3
四、一組用于求資料集的滿足不同要求的數值的函數
1、求資料集的最大值MAX與最小值MIN
這兩個函數MAX、MIN就是用來求解資料集的極值(即最大值、最小值)。函數的用法非常簡單。文法形式為 函數(number1,number2,...),其中Number1,number2,... 為需要找出最大數值的 1 到 30 個數值。如果要計算數組或引用中的空白單元格、邏輯值或文本将被忽略。是以如果邏輯值和文本不能忽略,請使用帶A的函數MAXA或者MINA 來代替。
2、求資料集中第K個最大值LARGE與第k個最小值SMALL
這兩個函數LARGE、SMALL與MAX、MIN非常想像,差別在于它們傳回的不是極值,而是第K個值。文法形式為:函數(array,k),其中Array為需要找到第 k 個最小值的數組或數字型資料區域。K為傳回的資料在數組或資料區域裡的位置(如果是LARGE為從大到小排,若為SMALL函數則從小到大排)。
說到這,大家可以想得到吧。如果K=1或者K=n(假定資料集中有n個資料)的時候,是不是就可以傳回資料集的最大值或者最小值了呢。
3、 求資料集中的中位數MEDIAN
MEDIAN函數傳回給定數值集合的中位數。所謂中位數是指在一組資料中居于中間的數,換句話說,在這組資料中,有一半的資料比它大,有一半的資料比它小。
文法形式為MEDIAN(number1,number2, ...)其中Number1, number2,...是需要找出中位數的 1 到 30 個數字參數。如果數組或引用參數中包含有文字、邏輯值或空白單元格,則忽略這些值,但是其值為零的單元格會計算在内。
需要注意的是,如果參數集合中包含有偶數個數字,函數 MEDIAN 将傳回位于中間的兩個數的平均值。
4、 求資料集中出現頻率最多的數MODE
MODE函數用來傳回在某一數組或資料區域中出現頻率最多的數值。跟 MEDIAN 一樣,MODE 也是一個位置測量函數。
文法形式為MODE(number1,number2, ...)其中Number1, number2, ... 是用于衆數(衆數指在一組數值中出現頻率最高的數值)計算的 1 到 30 個參數,也可以使用單一數組(即對數組區域的引用)來代替由逗号分隔的參數。
5、 以上函數的示例
以某機關年終獎金配置設定表為例說明。在示例中,我們将利用這些函數求解該機關年終獎金配置設定中的最高金額、最低金額、平均金額、中間金額、衆數金額以及第二高金額等。
詳細的公式寫法可從圖中清楚的看出,在此不再贅述。
圖4
五、用來排位的函數RANK、PERCENTRANK
1、一個數值在一組數值中的排位的函數RANK
數值的排位是與資料清單中其他數值的相對大小,當然如果資料清單已經排過序了,則數值的排位就是它目前的位置。資料清單的排序可以使用Excel提供的排序功能完成。
文法形式為RANK(number,ref,order) 其中Number為需要找到排位的數字;Ref 為包含一組數字的數組或引用。Order為一數字用來指明排位的方式。
如果 order 為 0 或省略,則Excel 将 ref 當作按降序排列的資料清單進行排位。
如果 order 不為零,Microsoft Excel 将 ref 當作按升序排列的資料清單進行排位。
需要說明的是,函數 RANK 對重複數的排位相同。但重複數的存在将影響後續數值的排位。嗯,這就好像并列第幾的概念啊。例如,在一列整數裡,如果整數 10 出現兩次,其排位為 5,則 11 的排位為 7(沒有排位為 6 的數值)。
2、求特定數值在一個資料集中的百分比排位的函數PERCENTRANK
此PERCENTRANK函數可用于檢視特定資料在資料集中所處的位置。例如,可以使用函數 PERCENTRANK 計算某個特定的能力測試得分在所有的能力測試得分中的位置。
文法形式為PERCENTRANK(array,x,significance) 其中Array為彼此間相對位置确定的數字數組或數字區域。X為數組中需要得到其排位的值。Significance為可選項,表示傳回的百分數值的有效位數。如果省略,函數 PERCENTRANK 保留 3 位小數。
3、與排名有關的示例
仍以某機關的年終獎金配置設定為例說明,這裡以員工Annie的排名為例說明公式的寫法。
獎金排名的公式寫法為:
=RANK(C3,$C$3:$C$12)
百分比排名的公式寫法為:
=PERCENTRANK($C$3:$C$12,C3)
圖5
以上我們介紹了Excel統計函數中比較常用的幾種函數,更多的涉及專業領域的統計函數可以參看附表以及各種相關的統計學書籍。
附表:
函數名稱 | 函數說明 | 文法形式 |
---|---|---|
AVEDEV | 傳回一組資料與其均值的絕對偏差的平均值,即離散度。 | AVEDEV(number1,number2, ...) |
AVERAGE | 傳回參數算術平均值。 | AVERAGE(number1,number2, ...) |
AVERAGEA | 計算參數清單中數值的平均值(算數平均值)。不僅數字,而且文本和邏輯值(如TRUE 和 FALSE)也将計算在内。 | AVERAGEA(value1,value2,...) |
BETADIST | 傳回 Beta 分布累積函數的函數值。Beta 分布累積函數通常用于研究樣本集合中某些事物的發生和變化情況。 | BETADIST(x,alpha,beta,A,B) |
BETAINV | 傳回 beta 分布累積函數的逆函數值。即,如果 probability = BETADIST(x,...),則 BETAINV(probability,...) = x。beta 分布累積函數可用于項目設計,在給定期望的完成時間和變化參數後,模拟可能的完成時間。 | BETAINV(probability,alpha,beta,A,B) |
BINOMDIST | 傳回一進制二項式分布的機率值。 | BINOMDIST(number_s,trials,probability_s,cumulative) |
CHIDIST | 傳回 γ2 分布的單尾機率。γ2 分布與 γ2 檢驗相關。使用 γ2 檢驗可以比較觀察值和期望值。 | CHIDIST(x,degrees_freedom) |
CHIINV | 傳回 γ2 分布單尾機率的逆函數。 | CHIINV(probability,degrees_freedom) |
CHITEST | 傳回獨立性檢驗值。函數 CHITEST 傳回 γ2 分布的統計值及相應的自由度。 | CHITEST(actual_range,expected_range) |
CONFIDENCE | 傳回總體平均值的置信區間。置信區間是樣本平均值任意一側的區域。 | CONFIDENCE(alpha,standard_dev,size) |
CORREL | 傳回單元格區域 array1 和 array2 之間的相關系數。使用相關系數可以确定兩種屬性之間的關系。 | CORREL(array1,array2) |
COUNT | 傳回參數的個數。利用函數 COUNT 可以計算數組或單元格區域中數字項的個數。 | COUNT(value1,value2, ...) |
COUNTA | 傳回參數組中非空值的數目。利用函數COUNTA 可以計算數組或單元格區域中資料項的個數。 | COUNTA(value1,value2, ...) |
COVAR | 傳回協方差,即每對資料點的偏差乘積的平均數,利用協方差可以決定兩個資料集之間的關系。 | COVAR(array1,array2) |
CRITBINOM | 傳回使累積二項式分布大于等于臨界值的最小值。此函數可以用于品質檢驗。 | CRITBINOM(trials,probability_s,alpha) |
DEVSQ | 傳回資料點與各自樣本均值偏差的平方和。 | DEVSQ(number1,number2,...) |
EXPONDIST | 傳回指數分布。使用函數 EXPONDIST 可以建立事件之間的時間間隔模型。 | EXPONDIST(x,lambda,cumulative) |
FDIST | 傳回 F 機率分布。使用此函數可以确定兩個資料系列是否存在變化程度上的不同。 | FDIST(x,degrees_freedom1,degrees_freedom2) |
FINV | 傳回 F 機率分布的逆函數值。 | FINV(probability,degrees_freedom1,degrees_freedom2) |
FISHER | 傳回點 x 的 Fisher 變換。該變換生成一個近似正态分布而非偏斜的函數。 | FISHER(x) |
FISHERINV | 傳回 Fisher 變換的逆函數值。使用此變換可以分析資料區域或數組之間的相關性。 | FISHERINV(y) |
FORECAST | 根據給定的資料計算或預測未來值。 | FORECAST(x,known_y's,known_x's) |
FREQUENCY | 以一列垂直數組傳回某個區域中資料的頻率分布。 | FREQUENCY(data_array,bins_array) |
FTEST | 傳回 F 檢驗的結果。F 檢驗傳回的是當數組 1 和數組 2 的方差無明顯差異時的單尾機率。可以使用此函數來判斷兩個樣本的方差是否不同。 | FTEST(array1,array2) |
GAMMADIST | 傳回伽瑪分布。可以使用此函數來研究具有偏态分布的變量。伽瑪分布通常用于排隊分析。 | GAMMADIST(x,alpha,beta,cumulative) |
GAMMAINV | 傳回伽瑪分布的累積函數的逆函數。 | GAMMAINV(probability,alpha,beta) |
GAMMALN | 傳回伽瑪函數的自然對數,Γ(x)。 | GAMMALN(x) |
GEOMEAN | 傳回正數數組或資料區域的幾何平均值。 | GEOMEAN(number1,number2, ...) |
GROWTH | 根據給定的資料預測指數增長值。 | GROWTH(known_y's,known_x's,new_x's,const) |
HARMEAN | 傳回資料集合的調和平均值。調和平均值與倒數的算術平均值互為倒數。 | HARMEAN(number1,number2, ...) |
HYPGEOMDIST | 傳回超幾何分布。 | HYPGEOMDIST(sample_s,number_sample, population_s,number_population) |
INTERCEPT | 利用已知的 x 值與 y 值計算直線與 y 軸的截距。 | INTERCEPT(known_y's,known_x's) |
KURT | 傳回資料集的峰值。 | KURT(number1,number2, ...) |
LARGE | 傳回資料集裡第 k 個最大值。使用此函數可以根據相對标準來選擇數值。 | LARGE(array,k) |
LINEST | 使用最小二乘法計算對已知資料進行最佳直線拟合,并傳回描述此直線的數組。 | LINEST(known_y's,known_x's,const,stats) |
LOGEST | 在回歸分析中,計算最符合觀測資料組的指數回歸拟合曲線,并傳回描述該曲線的數組。 | LOGEST(known_y's,known_x's,const,stats) |
LOGINV | 傳回 x 的對數正态分布累積函數的逆函數。 | LOGINV(probability,mean,standard_dev) |
LOGNORMDIST | 傳回 x 的對數正态分布的累積函數。 | LOGNORMDIST(x,mean,standard_dev) |
MAX | 傳回資料集中的最大數值。 | MAX(number1,number2,...) |
MAXA | 傳回參數清單中的最大數值。 | MAXA(value1,value2,...) |
MEDIAN | 傳回給定數值集合的中位數。中位數是在一組資料中居于中間的數。 | MEDIAN(number1,number2, ...) |
MIN | 傳回給定參數表中的最小值。 | MIN(number1,number2, ...) |
MINA | 傳回參數清單中的最小數值。 | MINA(value1,value2,...) |
MODE | 傳回在某一數組或資料區域中出現頻率最多的數值。 | MODE(number1,number2, ...) |
NEGBINOMDIST | 傳回負二項式分布。 | NEGBINOMDIST(number_f,number_s,probability_s) |
NORMDIST | 傳回給定平均值和标準偏差的正态分布的累積函數。 | NORMDIST(x,mean,standard_dev,cumulative) |
NORMINV | 傳回給定平均值和标準偏差的正态分布的累積函數的逆函數。 | NORMINV(probability,mean,standard_dev) |
NORMSDIST | 傳回标準正态分布的累積函數,該分布的平均值為 0,标準偏差為 1。 | NORMSDIST(z) |
NORMSINV | 傳回标準正态分布累積函數的逆函數。該分布的平均值為 0,标準偏差為 1。 | NORMSINV(probability) |
PEARSON | 傳回 Pearson(皮爾生)乘積矩相關系數,r,這是一個範圍在 -1.0 到 1.0 之間(包括 -1.0 和 1.0 在内)的無量綱指數,反映了兩個資料集合之間的線性相關程度。 | PEARSON(array1,array2) |
PERCENTILE | 傳回數值區域的 K 百分比數值點。可以使用此函數來建立接受閥值。例如,可以确定得分排名在 90 個百分點以上的檢測侯選人。 | PERCENTILE(array,k) |
PERCENTRANK | 傳回特定數值在一個資料集中的百分比排位。此函數可用于檢視特定資料在資料集中所處的位置。例如,可以使用函數 PERCENTRANK 計算某個特定的能力測試得分在所有的能力測試得分中的位置。 | PERCENTRANK(array,x,significance) |
PERMUT | 傳回從給定數目的對象集合中選取的若幹對象的排列數。排列可以為有内部順序的對象或為事件的任意集合或子集。排列與組合不同,組合的内部順序無意義。此函數可用于彩票計算中的機率。 | PERMUT(number,number_chosen) |
POISSON | 傳回泊松分布。泊松分布通常用于預測一段時間内事件發生的次數,比如一分鐘内通過收費站的轎車的數量。 | POISSON(x,mean,cumulative) |
PROB | 傳回一機率事件組中落在指定區域内的事件所對應的機率之和。如果沒有給出 upper_limit,則傳回 x _range 内值等于 lower_limit 的機率。 | PROB(x_range,prob_range,lower_limit,upper_limit) |
QUARTILE | 傳回資料集的四分位數。四分位數通常用于在銷售額和測量值資料集中對總體進行分組。例如,可以使用函數 QUARTILE 求得總體中前 25% 的收入值。 | QUARTILE(array,quart) |
RANK | 傳回一個數值在一組數值中的排位。數值的排位是與資料清單中其他數值的相對大小(如果資料清單已經排過序了,則數值的排位就是它目前的位置)。 | RANK(number,ref,order) |
RSQ | 傳回根據 known_y's 和 known_x's 中資料點計算得出的 Pearson 乘積矩相關系數的平方。有關詳細資訊,請參閱函數 REARSON。R 平方值可以解釋為 y 方差與 x 方差的比例。 | RSQ(known_y's,known_x's) |
SKEW | 傳回分布的偏斜度。偏斜度反映以平均值為中心的分布的不對稱程度。正偏斜度表示不對稱邊的分布更趨向正值。負偏斜度表示不對稱邊的分布更趨向負值。 | SKEW(number1,number2,...) |
SLOPE | 傳回根據 known_y's 和 known_x's 中的資料點拟合的線性回歸直線的斜率。斜率為直線上任意兩點的重直距離與水準距離的比值,也就是回歸直線的變化率。 | SLOPE(known_y's,known_x's) |
SMALL | 傳回資料集中第 k 個最小值。使用此函數可以傳回資料集中特定位置上的數值。 | SMALL(array,k) |
STANDARDIZE | 傳回以 mean 為平均值,以 standard-dev 為标準偏差的分布的正态化數值。 | STANDARDIZE(x,mean,standard_dev) |
STDEV | 估算樣本的标準偏差。标準偏差反映相對于平均值(mean)的離散程度。 | STDEV(number1,number2,...) |
STDEVA | 估算基于給定樣本的标準偏差。标準偏差反映數值相對于平均值(mean)的離散程度。文本值和邏輯值(如 TRUE 或 FALSE)也将計算在内。 | STDEVA(value1,value2,...) |
STDEVP | 傳回以參數形式給出的整個樣本總體的标準偏差。标準偏差反映相對于平均值(mean)的離散程度。 | STDEVP(number1,number2,...) |
STDEVPA | 計算樣本總體的标準偏差。标準偏差反映數值相對于平均值(mean)的離散程度。 | STDEVPA(value1,value2,...) |
STEYX | 傳回通過線性回歸法計算 y 預測值時所産生的标準誤差。标準誤差用來度量根據單個 x 變量計算出的 y 預測值的誤差量。 | STEYX(known_y's,known_x's) |
TDIST | 傳回學生 t- 分布的百分點(機率),t 分布中數值 (x) 是 t 的計算值(将計算其百分點)。t 分布用于小樣本資料集合的假設檢驗。使用此函數可以代替 t 分布的臨界值表。 | TDIST(x,degrees_freedom,tails) |
TINV | 傳回作為機率和自由度函數的學生 t 分布的 t 值。 | TINV(probability,degrees_freedom) |
TREND | 傳回一條線性回歸拟合線的一組縱坐标值(y 值)。即找到适合給定的數組 known_y's 和 known_x's 的直線(用最小二乘法),并傳回指定數組 new_x's 值在直線上對應的 y 值。 | TREND(known_y's,known_x's,new_x's,const) |
TRIMMEAN | 傳回資料集的内部平均值。函數 TRIMMEAN 先從資料集的頭部和尾部除去一定百分比的資料點,然後再求平均值。當希望在分析中剔除一部分資料的計算時,可以使用此函數。 | TRIMMEAN(array,percent) |
TTEST | 傳回與學生氏- t 檢驗相關的機率。可以使用函數 TTEST 判斷兩個樣本是否可能來自兩個具有相同均值的總體。 | TTEST(array1,array2,tails,type) |
VAR | 估算樣本方差。 | VAR(number1,number2,...) |
VARA | 估算基于給定樣本的方差。不僅數字,文本值和邏輯值(如 TRUE 和 FALSE)也将計算在内。 | VARA(value1,value2,...) |
VARP | 計算樣本總體的方差。 | VARP(number1,number2,...) |
VARPA | 計算樣本總體的方差。不僅數字,文本值和邏輯值(如 TRUE 和 FALSE)也将計算在内。 | VARPA(value1,value2,...) |
WEIBULL | 傳回韋伯分布。使用此函數可以進行可靠性分析,比如計算裝置的平均故障時間。 | WEIBULL(x,alpha,beta,cumulative) |
ZTEST | 傳回 z 檢驗的雙尾 P 值。Z 檢驗根據資料集或數組生成 x 的标準得分,并傳回正态分布的雙尾機率。可以使用此函數傳回從某總體中抽取特定觀測值的似然估計。 | ZTEST(array,x,sigma) |