
用vba编制自定义函数可以实现。
例如有数据表如图:
现要求计算按G列的分组情况,计算各组的中位数。
第一步:点击开发工具-visual basic。
第二步:插入模块。
第三步:编制自定函数。代码如下:
Function zws(a As Range, b As Range, C As String) As Double
Dim ZZ As Integer
Dim ARR(1 To 100) As Double
ZZ = 0
zws = 0
i = aCount
J = bCount
If i <> J Then
Exit Function
End If
For k = 1 To i
If bCells(k) = C Then
ZZ = ZZ + 1
ARR(ZZ) = aCells(k)
End If
Next k
'11-22对arr数组排序
Dim xx As Double
For i = 1 To ZZ - 1
For J = i + 1 To ZZ
If ARR(J) < ARR(i) Then
xx = ARR(i)
ARR(i) = ARR(J)
ARR(J) = xx
End If
Next J
Next i
'判断zz奇数还是偶数
k = ZZ Mod 2
If k = 1 Then
zws = ARR((ZZ - 1) / 2 + 1)
Else
zws = (ARR(ZZ / 2) + ARR(ZZ / 2 + 1)) / 2
End If
End Function
第四步:在M7输入公式:=ROUND(ZWS(B$2:B$100,G$2:G$100,J7),2)。结果如图:
可以用MODE求数据区域中出现频率最多的数值(众数)。用MEDIAN求数据区域中居于中间的数值(中数)。
1、MODE函数:
语法
MODE(number1,number2,)
Number1,
number2,
是用于众数计算的
1
到
30
个参数,也可以使用单一数组(即对数组区域的引用)来代替由逗号分隔的参数。
说明
参数可以是数字,或者是包含数字的名称、数组或引用。
如果数组或引用参数包含文本、逻辑值或空白单元格,则这些值将被忽略;但包含零值的单元格将计算在内。
如果数据集合中不含有重复的数据,则
MODE
数返回错误值
N/A。
在一组数值中,众数是出现频率最高的数值,而中位数是位于中间的值,平均数是平均后的值,所有这些求中函数都不能单独地完全描绘所有数据。例如,假设数据分布在三个区域中,其中一半分布在一个较小数值区中,另外一半分布在两个较大数值区中。函数
AVERAGE
和函数
MEDIAN
可能会返回位于数据点稀疏处的中间值;而函数
MODE
则会返回位于数据点密集处的较小值。
2、MEDIAN函数
语法
MEDIAN(number1,number2,)
Number1,
number2,
要计算中值的
1
到
30
个数值。
说明
参数应为数字,或者是包含数字的名称、数组或引用。Microsoft
Excel
会检查每一数组参数或引用中的所有数字。
如果数组或引用参数包含文本、逻辑值或空白单元格,则这些值将被忽略;但包含零值的单元格将计算在内。
如果参数集合中包含偶数个数字,函数
MEDIAN
将返回位于中间的两个数的平均值。
excel中如何计算中位数呢?很多人都不会,下面我来教大家。
01首先,我们打开我们电脑上面的excel,然后在表格中输入一些数据;
02之后我们选中图示中的单元格,然后我们在里面输入=;
03之后我们输入MEDIAN(B3:B7),然后我们按回车键;
04结果如图所示,这样就算出中位数了,还是比较简单的,相信大家现在已经学会了。
1极差不匀(又名相对极差)
极差是指一组数据的最大值与一组数据的最小值之差。
相对极差一般是指极差(绝对极差)/数值平均值。
可以使用公式。
=ROUND((MAX(A2:A4)-MIN(A2:A4))/AVERAGE(A2:A4)100,2)&"%"
如下图所示。
2平均差不匀(又名相对平均偏差):
可以使用公式
=ROUND(AVEDEV(A1:A13)/AVERAGE(A1:A13)100,2)&"%"
如下图所示。
3均方差不匀(又名相对标准偏差):
可以使用公式
=ROUND(STDEV(A1:A13)/AVERAGE(A1:A13)100,2)&"%"
如下图所示。
没有看见数据表,很难准确解答,猜测如下:
1、假定所谓的分类汇总是使用 sumif类函数进行汇总,数据并不规律(因为数据规律上面解答应该能解决问题);
2、参考图示 *** 作:
参考中位数(i4单元格)公式:
=LARGE(IF($A$4:$A$26=E4,$B$4:$B$26,0),COUNTIF($A$4:$A$26,E4)/2)
注意是数组公式,必须一起按 ctrl+shift+enter
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)