Excel 实战:统计奖金发放人数

某公司于月初发放了上个月员工奖金,包括销售奖励与全勤奖励两种。现在需要对奖金发放人数进行统计。有的员工既发放了销售奖金,还发放了全勤奖,所以统计时应该考虑到重复出现的员工姓名。打开“员工奖金发放统计.xlsx”工作簿,本例的原始数据如图18-100所示。下面介绍具体的操作步骤。

选中G2单元格,按“F2”键,在公式编辑栏中输入公式“=SUM(1/COUNTIF(A3:A14,A3:A14))”,输入完成后按“Ctrl+Shift+Enter”组合键将其转化为数组公式,并返回计算结果,如图18-101所示。

图18-100 原始数据

图18-101 计算结果

以上公式先利用COUNTIF函数返回单元格区域内某记录出现的次数的数组,取倒数,然后求和。如果姓名不重复出现,则得到1,如果重复出现2次,则得到1/2,求和之后仍然是1,这样可以实现不重复统计。经过以上操作,即实现了奖金发放人数的统计。

Excel 实战:产品销售量统计

2018年,某公司分别向4个超市连续供应了一年A商品,并在“产品销量统计.xlsx”工作簿中详细统计了该商品一年中在每个超市各月份的销售量。现在欲统计该商品在2018年一年中的最小销量、最大销量、销量众数、销量中数、销量平均值,以及分段销量的频率。打开“产品销量统计.xlsx”工作簿,本例的原始数据如图18-88所示。

下面根据基础销量统计数据分步详细介绍如何进行上述数据计算。

STEP01:定义数据区域。选中B3:E14单元格区域,切换至“公式”选项卡,在“定义的名称”组中单击“定义名称”下三角按钮,在展开的下拉列表中选择“定义名称”选项,如图18-89所示。

STEP02:随后会打开“新建名称”对话框,在“名称”文本框中输入“sales”,其他选项采用默认设置,单击“确定”按钮完成名称的定义,如图18-90所示。

STEP03:选中H1单元格,在编辑栏中输入公式“=MIN(sales)”,统计一年中商品销量的最小值,输入完成后按“Enter”键返回计算结果,如图18-91所示。

STEP04:选中H2单元格,在编辑栏中输入公式“=MAX(sales)”,统计一年中商品销量的最大值,输入完成后按“Enter”键返回计算结果,如图18-92所示。

基础销量统计数据

图18-88 基础销量统计数据

图18-89 选项“定义名称”选项

图18-90 定义名称

图18-91 计算最小销量

STEP05:选中H3单元格,在编辑栏中输入公式“=MODE(sales)”,统计一年中商品销量的众数,输入完成后按“Enter”键返回计算结果,如图18-93所示。

图18-92 计算最大销量

图18-93 计算众数

STEP06:选中H4单元格,在编辑栏中输入公式“=MEDIAN(sales)”,统计一年中商品销量的中数,输入完成后按“Enter”键返回计算结果,如图18-94所示。

STEP07:选中H5单元格,在编辑栏中输入公式“=AVERAGE(sales)”,统计一年中商品销量的平均值,输入完成后按“Enter”键返回计算结果,如图18-95所示。

计算中数

图18-94 计算中数

计算平均值

图18-95 计算平均值

STEP08:计算分段销量的频率。选中K2:K10单元格区域,按“F2”键,然后输入公式“=FREQUENCY(sales,J2:J10)”,输入完成后按“Ctrl+Shift+Enter”组合键将其转化为数组公式,并返回计算结果,如图18-96所示。

STEP09:计算分段销量的百分比。选中L2:L10单元格区域,按“F2”键,然后输入公式“=FREQUENCY(sales,J2:J10)/COUNT(sales)”,输入完成后按“Ctrl+Shift+Enter”组合键将其转化为数组公式,并返回计算结果,如图18-97所示。

计算分段销量的频率

图18-96 计算分段销量的频率

计算分段销量的百分比

图18-97 计算分段销量的百分比

STEP10:保持L2:L10单元格区域的选中状态,按“Ctrl+1”组合键打开如图18-98所示的“设置单元格格式”对话框。切换至“数字”选项卡,在“分类”列表框中选择“百分比”选项,然后将“小数位数”设置为1,最终单击“确定”按钮完成设置,如图18-98所示。最终结果如图18-99所示。

图18-98 “设置单元格格式”对话框

分段销量的百分比结果

图18-99 分段销量的百分比结果

Excel 计算数字排位:RANK函数详解

RANK函数用于计算一个数字在数字列表中的排位。数字的排位是其大小与列表中其他值的比值(如果列表已排过序,则数字的排位就是它当前的位置)。RANK函数的语法如下:


RANK(number,ref,order)

其中,number参数为需要找到排位的数字。ref参数为数字列表数组或对数字列表的引用,ref参数中的非数值型参数将被忽略。order参数为一数字,指明排位的方式,如果order参数为0(零)或省略,Excel对数字的排位是基于ref参数为按照降序排列的列表;如果order参数不为零,Excel对数字的排位是基于ref参数为按照升序排列的列表。下面通过实例详细讲解该函数的使用方法与技巧。

打开“RANK函数.xlsx”工作簿,切换至“Sheet1”工作表,本例中的原始数据如图18-85所示。该工作表中记录了一组数据,要求计算出指定数值在数据集中的排位。具体的操作步骤如下。

图18-85 原始数据

STEP01:选中A8单元格,在编辑栏中输入公式“=RANK(A3,A2:A6,1)”,用于计算5.8在上表中的排位,输入完成后按“Enter”键返回计算结果,如图18-86所示。

STEP02:选中A9单元格,在编辑栏中输入公式“=RANK(A2,A2:A6,1)”,用于计算11.6在上表中的排位,输入完成后按“Enter”键返回计算结果,如图18-87所示。

图18-86 计算5.8的排位

图18-87 计算11.6的排位

函数RANK对重复数的排位相同。但重复数的存在将影响后续数值的排位。例如,在一列按升序排列的整数中,如果整数10出现两次,其排位为5,则11的排位为7(没有排位为6的数值)。

由于某些原因,用户可能使用考虑重复数字的排位定义。在前面的示例中,用户可能要将整数10的排位改为5.5。这可通过将下列修正因素添加到按排位返回的值来实现。该修正因素对于按照升序计算排位(顺序=非零值)或按照降序计算排位(顺序=0或被忽略)的情况都是正确的。

重复数排位的修正因素=[COUNT(ref)+1–RANK(number,ref,0)–RANK(number,ref,1)]/2。

在上面的示例中,RANK(A2,A1:A5,1)等于3。修正因素是(5+1–2–3)/2=0.5,考虑重复数排位的修改排位是3+0.5=3.5。如果数字仅在ref出现一次,由于不必调整RANK,因此修正因素为0。

Excel 计算百分比排位:PERCENTRANK函数

PERCENTRANK函数用于计算特定数值在一个数据集中的百分比排位。此函数可用于查看特定数据在数据集中所处的位置。例如,可以使用函数PERCENTRANK计算某个特定的能力测试得分在所有的能力测试得分中的位置。PERCENTRANK函数的语法如下:


PERCENTRANK(array,x,signifi cance)

其中,array参数为定义相对位置的数组或数字区域。x为数组中需要得到其排位的值。significance参数为可选项,表示返回的百分数值的有效位数,如果省略,函数PERCENTRANK保留3位小数。下面通过实例详细讲解该函数的使用方法与技巧。

打开“PERCENTRANK函数.xlsx”工作簿,切换至“Sheet1”工作表,本例中的原始数据如图18-80所示。该工作表中记录了一组数据列表,要求计算出指定的数字在列表中的百分比排位。具体的操作步骤如下。

图18-80 原始数据

STEP01:选中A13单元格,在编辑栏中输入公式“=PERCENTRANK(A2:A11,9)”,用于计算9在上面数据列表中的百分比排位,输入完成后按“Enter”键返回计算结果。因为该数据集中小于9的值有4个,而大于9的值有5个,因此为4/(4+5)=0.444,如图18-81所示。

STEP02:选中A14单元格,在编辑栏中输入公式“=PERCENTRANK(A2:A11,8)”,用于计算8在上面数据列表中的百分比排位,输入完成后按“Enter”键返回计算结果,如图18-82所示。

计算9的百分比排位

图18-81 计算9的百分比排位

图18-82 计算8的百分比排位

STEP03:选中A15单元格,在编辑栏中输入公式“=PERCENTRANK(A2:A11,11)”,用于计算11在上面数据列表中的百分比排位,输入完成后按“Enter”键返回计算结果,如图18-83所示。

STEP04:选中A16单元格,在编辑栏中输入公式“=PERCENTRANK(A2:A11,25)”,用于计算25在上面数据列表中的百分比排位,输入完成后按“Enter”键返回计算结果,如图18-84所示。

图18-83 计算11的百分比排位

计算25的百分比排位

图18-84 计算25的百分比排位

如果数组为空,函数PERCENTRANK返回错误值“#NUM!”。如果参数significance<1,函数PERCENTRANK返回错误值“#NUM!”。如果数组里没有与x相匹配的值,函数PERCENTRANK将进行插值以返回正确的百分比排位。

Excel 计算数据集峰值:KURT函数详解

KURT函数用于返回数据集的峰值。峰值反映与正态分布相比某一分布的尖锐度或平坦度。正峰值表示相对尖锐的分布。负峰值表示相对平坦的分布。KURT函数的语法如下:


KURT(number1,number2,...)

其中,参数number1、number2……是用于计算峰值的1~255个参数。也可以不用这种用逗号分隔参数的形式,而用单个数组或对数组的引用。下面通过实例详细讲解该函数的使用方法与技巧。

打开“KURT函数.xlsx”工作簿,切换至“Sheet1”工作表,本例中的原始数据如图18-78所示。该工作表中记录了一组数据,要求计算出上述数据集的峰值。具体的操作步骤如下。

选中A13单元格,在编辑栏中输入公式“=KURT(A2:A11)”,用于计算给定数据集的峰值,输入完成后按“Enter”键返回计算结果,如图18-79所示。

图18-78 原始数据

图18-79 计算峰值

参数可以是数字或者包含数字的名称、数组或引用。逻辑值和直接键入参数列表中代表数字的文本被计算在内。如果数组或引用参数包含文本、逻辑值或空白单元格,则这些值将被忽略;但包含零值的单元格将计算在内。如果参数为错误值或为不能转换为数字的文本,将会导致错误。如果数据点少于4个,或样本标准偏差等于0,函数KURT返回错误值“#DIV/0!”。峰值的计算公式如下:

s为样本的标准偏差。

Excel 计算数据集间相关系数:CORREL函数

CORREL函数用于计算单元格区域array1和array2之间的相关系数。使用相关系数可以确定两种属性之间的关系。例如,可以检测某地的平均温度和空调使用情况之间的关系。CORREL函数的语法如下:


CORREL(array1,array2)

其中,array1参数为第1组数值单元格区域,array2参数为第2组数值单元格区域。下面通过实例详细讲解该函数的使用方法与技巧。

打开“CORREL函数.xlsx”工作簿,切换至“Sheet1”工作表,本例中的原始数据如图18-76所示。该工作表中记录了两组数据集,要求计算这两个数据集的相关系数。具体的操作步骤如下。

选中A8单元格,在编辑栏中输入公式“=CORREL(A2:A6,B2:B6)”,用于计算两个数据集的相关系数,输入完成后按“Enter”键返回计算结果,如图18-77所示。

图18-76 原始数据

图18-77 计算相关系数

如果数组或引用参数包含文本、逻辑值或空白单元格,则这些值将被忽略;但包含零值的单元格将计算在内。如果array1参数和array2参数的数据点的个数不同,函数CORREL返回错误值“#N/A”。如果array1参数或array2参数为空,或者其数值的s(标准偏差)等于零,函数CORREL返回错误值“#DIV/0!”。相关系数的计算公式为:

其中x和y是样本平均值AVERAGE(array1)和AVERAGE(array2)。

Excel 计算或预测未来值:FORECAST函数

FORECAST函数用于根据已有的数值计算或预测未来值。此预测值为基于给定的x值推导出的y值。已知的数值为已有的x值和y值,再利用线性回归对新值进行预测。可以使用该函数对未来销售额、库存需求或消费趋势进行预测。FORECAST函数的语法如下:


FORECAST(x,known_y's,known_x's)

其中,x参数为需要进行预测的数据点,known_y’s参数为因变量数组或数据区域,known_x’s参数为自变量数组或数据区域。下面通过实例详细讲解该函数的使用方法与技巧。

打开“FORECAST函数.xlsx”工作簿,切换至“Sheet1”工作表,本例中的原始数据如图18-74所示。该工作表中记录了一组给定的X和Y值,要求基于给定的X值25预测一个Y值。具体的操作步骤如下。

选中A8单元格,在编辑栏中输入公式“=FORECAST(25,A2:A6,B2:B6)”,基于给定的X值25预测一个Y值,输入完成后按“Enter”键返回计算结果,如图18-75所示。

图18-74 原始数据

图18-75 计算预测值

如果x为非数值型,函数FORECAST返回错误值“#VALUE!”。如果known_y’s和known_x’s为空或含有不同个数的数据点,函数FORECAST返回错误值“#N/A”。如果known_x’s的方差为零,函数FORECAST返回错误值“#DIV/0!”。函数FORECAST的计算公式为a+bx,式中:

且:

且其中x和y是样本平均值AVERAGE(known_x’s)和AVERAGE(known_y’s),n是样本的大小。

Excel计算线性趋势参数:LINEST函数

LINEST函数用于使用最小二乘法对已知数据进行最佳直线拟合,然后返回描述此直线的数组。也可以将LINEST与其他函数结合,以便计算未知参数中其他类型的线性模型的统计值,包括多项式、对数、指数和幂级数。因为此函数返回数值数组,所以必须以数组公式的形式输入。LINEST函数的语法如下:


LINEST(known_y's,known_x's,const,stats)

其中,known_y’s参数是关系表达式y=mx+b中已知的y值集合。如果数组known_y’s在单独一列中,则known_x’s的每一列被视为一个独立的变量。如果数组known_y’s在单独一行中,则known_x’s的每一行被视为一个独立的变量。

known_x’s参数是关系表达式y=mx+b中已知的可选x值集合。数组known_x’s可以包含一组或多组变量。如果仅使用一个变量,那么只要known_x’s参数和known_y’s参数具有相同的维数,则它们可以是任何形状的区域。如果用到多个变量,则known_y’s参数必须为向量(即必须为一行或一列)。如果省略known_x’s参数,则假设该数组为{1,2,3,…},其大小与known_y’s参数相同。

const参数为一逻辑值,用于指定是否将常量b强制设为0。如果const参数为TRUE或省略,b将按正常计算。如果const参数为FALSE,b将被设为0,并同时调整m值使y=mx。stats参数为一逻辑值,指定是否返回附加回归统计值。如果stats参数为TRUE,则LINEST函数返回附加回归统计值,这时返回的数组为{mn,mn-1,…,m1,b;sen,sen-1,…,se1,seb;r2,sey;F,df;ssreg,ssresid}。如果stats参数为FALSE或省略,LINEST函数只返回系数m和常量b。

直线的公式为:y=mx+b或y=m1x1+m2x2+…+b(如果有多个区域的x值)。

其中,因变量y是自变量x的函数值。m值是与每个x值相对应的系数,b为常量。注意y、x和m可以是向量。LINEST函数返回的数组为{mn,mn-1,…,m1,b}。LINEST函数还可返回附加回归统计值。

附加回归统计值如表18-1所示。

表18-1 附加回归统计值

附加回归统计值

打开“LINEST函数.xlsx”工作簿,切换至“Sheet1”工作表,本例中的原始数据如图18-72所示。已知某公司1月~6月的产品销售额,要求估算第8个月的销售值。具体的操作步骤如下。

选中A9单元格,在编辑栏中输入公式“=SUM(LINEST(B2:B7,A2:A7)*{8,1})”,用于估算第8个月的销售值,输入完成后按“Enter”键返回计算结果,如图18-73所示。

图18-72 原始数据

图18-73 估算销售值

需要注意的有以下几点:

1)可以使用斜率和y轴截距描述任何直线。

斜率(m)通常记为m,如果需要计算斜率,则选取直线上的两点,(x1,y1)和(x2,y2);斜率等于(y2-y1)/(x2-x1)。

Y轴截距(b)通常记为b,直线的y轴的截距为直线通过y轴时与y轴交点的数值。

直线的公式为y=mx+b。如果知道了m和b的值,将y或x的值代入公式就可计算出直线上的任意一点。还可以使用TREND函数计算。

2)当只有一个自变量x时,可直接利用下面公式得到斜率和y轴截距值。

斜率:


=INDEX(LINEST(known_y's,known_x's),1)

Y轴截距:


=INDEX(LINEST(known_y's,known_x's),2)

3)数据的离散程度决定了LINEST函数计算的精确度。数据越接近线性,LINEST模型就越精确。LINEST函数使用最小二乘法来判定最适合数据的模型。当只有一个自变量x时,m和b是根据下面的公式计算出的。

其中x和y是样本平均值,例如x=AVERAGE(knownx’s)和y=AVERAGE(known_y’s)。

4)直线和曲线函数LINEST和LOGEST可用来计算与给定数据拟合程度最高的直线或指数曲线,但需要判断两者中哪一个更适合数据。可以用函数TREND(known_y’s,known_x’s)来计算直线,或用函数GROWTH(known_y’s,known_x’s)来计算指数曲线。这些不带参数new_x’s的函数可在实际数据点上根据直线或曲线来返回y的数组值,然后可以将预测值与实际值进行比较。还可以用图表方式来直观地比较二者。

5)回归分析时,Excel计算每一点的y的估计值和实际值的平方差。这些平方差之和称为残差平方和(ssresid)。然后Excel计算总平方和(sstotal)。当const=TRUE或被删除时,总平方和是y的实际值和平均值的平方差之和。当const=FALSE时,总平方和是y的实际值的平方和(不需要从每个y值中减去平均值)。回归平方和(ssreg)可通过公式ssreg=sstotal-ssresid计算出来。残差平方和与总平方和的比值越小,判定系数r2的值就越大,r2是表示回归分析公式的结果反映变量间关系的程度的标志。r2=ssreg/sstotal。

6)在某些情况下,一个或多个X列可能没有出现在其他X列中的预测值(假设Y’s和X’s位于列中)。换句话说,删除一个或多个X列可能导致同样精度的y预测值。在这种情况下,这些多余的X列应该从回归模型中删除。这种现象被称为“共线”,因为任何多余的X列可表示为多个非多余X列的和。LINEST将检查是否存在共线,并在识别出来之后从回归模型中删除任何多余的X列。由于包含0系数以及0se’s,所以已删除的X列能在LINEST输出中被识别出来。如果一个或多个多余的列被删除,则将影响df,原因是df取决于被实际用于预测目的的X列的个数。如果由于删除多余的X列而更改了df,则也会影响sey和F的值。

实际上,出现共线的情况应该相对很少。但是,如果某些X列仅包含0’s和1’s作为一个实验中的对象是否属于某个组的指示器,则很可能引起共线。如果const=TRUE或被删除,则LINEST可有效地插入所有1’s的其他X列,以便模型化截取。如果在一列中,1对应于每个男性对象,0对应于非男性对象;而在另一列中,1对应于每个女性对象,0对应于非女性对象,那么后一列就是多余的,因为其中的项可通过从所有1’s(由LINEST添加)的另一列中减去“男性指示器”列中的项来获得。

7)df的计算方法如下所示(没有X列由于共线而从模型中被删除)。如果存在known_x’s的k列和const=TRUE或被删除,那么df=n–k–1。如果const=FALSE,那么df=n–k。在这两种情况下,每次由于共线而删除一个X列都会使df加1。

8)对于返回结果为数组的公式,必须以数组公式的形式输入。

当输入一个数组常量(如known_x’s)作为参数时,以逗号作为同一行中各数值的分隔符,以分号作为不同行中各数值的分隔符。分隔符可能因“控制面板”的“区域和语言选项”中区域设置的不同而有所不同。

9)如果y的回归分析预测值超出了用来计算公式的y值的范围,它们可能是无效的。

函数LINEST中使用的下层算法与函数SLOPE和INTERCEPT中使用的下层算法不同。当数据未定且共线时,这些算法之间的差异会导致不同的结果。例如,如果参数known_y’s的数据点为0,参数known_x’s的数据点为1:

LINEST返回值0。LINEST算法用来返回共线数据的合理结果,在这种情况下至少可找到一个答案。

SLOPE和INTERCEPT返回错误#DIV/0!。SLOPE和INTERCEPT算法用来查找一个且仅一个答案,在这种情况下可能有多个答案。

10)除了使用LOGEST计算其他回归分析类型的统计值外,还可以使用LINEST计算其他回归分析类型的范围,方法是将x和y变量的函数作为LINEST的x和y系列输入。例如,下面的公式:


=LINEST(yvalues,xvalues^COLUMN($A:$C))

将在使用y值的单个列和x值的单个列计算下面的方程式的近似立方(多项式次数3)值时运行:


y=m1*x+m2*x^2+m3*x^3+b

可以调整此公式以计算其他类型的回归,但是在某些情况下,需要调整输出值和其他统计值。

Excel 计算线性回归线截距:INTERCEPT函数

INTERCEPT函数用于利用现有的x值与y值计算直线与y轴的截距。截距为穿过已知的known_x’s和known_y’s数据点的线性回归线与y轴的交点。当自变量为0(零)时,使用INTERCEPT函数可以决定因变量的值。例如,当所有的数据点都是在室温或更高的温度下取得的,可以用INTERCEPT函数预测在0℃时金属的电阻。INTERCEPT函数的语法如下:


INTERCEPT(known_y's,known_x's)

其中,known_y’s参数为因变的观察值或数据集合,known_x’s参数为自变的观察值或数据集合。下面通过实例详细讲解该函数的使用方法与技巧。

打开“INTERCEPT函数.xlsx”工作簿,切换至“Sheet1”工作表,本例中的原始数据如图18-70所示。该工作表中记录了一组x、y值,要求计算直线与y轴的截距。具体的操作步骤如下。

选中A8单元格,在编辑栏中输入公式“=INTERCEPT(A2:A6,B2:B6)”,利用上面已知的x值与y值计算直线与y轴的截距,输入完成后按“Enter”键返回计算结果,如图18-71所示。

图18-70 原始数据

图18-71 计算截距

参数可以是数字,或者包含数字的名称、数组或引用。如果数组或引用参数包含文本、逻辑值或空白单元格,则这些值将被忽略;但包含零值的单元格将计算在内。如果known_y’s和known_x’s所包含的数据点个数不相等或不包含任何数据点,则函数INTERCEPT返回错误值“#N/A”。回归线a的截距公式为:

公式中斜率b计算如下:

其中x和y是样本平均值AVERAGE(known_x’s)和AVERAGE(known_y’s),n为样本大小。

Excel 线性回归法预测标准误差:STEYX函数

STEYX函数用于计算通过线性回归法计算每个x的y预测值时所产生的标准误差。标准误差用来度量根据单个x变量计算出的y预测值的误差量。STEYX函数的语法如下:


STEYX(known_y's,known_x's)

其中,known_y’s参数为因变量数据点数组或区,known_x’s参数为自变量数据点数组或区域。下面通过实例详细讲解该函数的使用方法与技巧。

打开“STEYX函数.xlsx”工作簿,切换至“Sheet1”工作表,本例中的原始数据如图18-68所示。该工作表中记录了一组x、y值,要求用线性回归法计算每个x的y预测值时所产生的标准误差。具体的操作步骤如下。

选中A10单元格,在编辑栏中输入公式“=STEYX(A2:A8,B2:B8)”,用线性回归法计算每个x的y预测值时所产生的标准误差,输入完成后按“Enter”键返回计算结果,如图18-69所示。

图18-68 原始数据

图18-69 计算标准误差

参数可以是数字或者包含数字的名称、数组或引用。逻辑值和直接键入参数列表中代表数字的文本被计算在内。如果数组或引用参数包含文本、逻辑值或空白单元格,则这些值将被忽略;但包含零值的单元格将计算在内。如果参数为错误值或为不能转换成数字的文本,将会导致错误。如果known_y’s和known_x’s的数据点个数不同,函数STEYX返回错误值“#N/A”。如果known_y’s和known_x’s为空或其数据点个数小于3,函数STEYX返回错误值“#DIV/0!”。预测值y的标准误差计算公式如下:

其中x和y是样本平均值AVERAGE(known_x’s)和AVERAGE(known_y’s),且n是样本大小。