说我有数据1,2,3,4,5。我需要VBA代码或一些聪明的excel工作来找到中位数(3),然后根据参数找到一个和两个,或四个和五个的中位数。
如果数据是1,2,3,3,4,5,我希望找到1,2,3和3,4,5的中位数。 但是如果数据是1,2,3,4,5,我希望它忽略3,并根据参数在3的任何一侧找到数据的中位数。
我希望这是有道理的,我知道一些C#但vba和excel对我来说是新的。感谢。
答案 0 :(得分:0)
我的第一个想法是你可以使用四分位数,但这并不能给出相同的答案。
如果你想忽略中间值(对于奇数个点)和中间两个值(偶数个点)你可以尝试找到这样的子范围的中位数: -
=MEDIAN(INDEX(A2:A10,1):INDEX(A2:A10,INT((COUNT(A2:A10)-1)/2)))
获得较低的中位数
=MEDIAN(INDEX(A2:A10,COUNT(A2:A10)-INT((COUNT(A2:A10)-1)/2)+1):INDEX(A2:A10,COUNT(A2:A10)))
获得上限中位数。
假设数据按升序排列。
忽略中间值但包含中间两个值: -
=MEDIAN(INDEX(A2:A10,1):INDEX(A2:A10,INT(COUNT(A2:A10)/2)))
和
=MEDIAN(INDEX(A2:A10,COUNT(A2:A10)-INT(COUNT(A2:A10)/2)+1):INDEX(A2:A10,COUNT(A2:A10)))