自动化帮助,Excel或SPSS,需要计算每五个值的中位数

时间:2018-04-24 12:59:28

标签: excel-vba automation spss vba excel

我有一个大栏目,我需要列表中每五个/五个值的中位数。我有excel和SPSS。如果不手动完成,我怎么能这样做? 600个值。计算时,我应该有一个120中值的列。

2 个答案:

答案 0 :(得分:2)

如果您的数据在A栏中。中位数的结果将记录在c栏中。

Sub test()
    Dim rngDB As Range, rng As Range
    Dim vR() As Variant
    Dim i As Long, n As Long

    Set rngDB = Range("a1", Range("a" & Rows.Count).End(xlUp))

    For i = 1 To rngDB.Rows.Count Step 5
        Set rng = Range("a" & i).Resize(5)
        n = n + 1
        ReDim Preserve vR(1 To n)
        vR(n) = WorksheetFunction.Median(rng)
    Next i
    Range("c1").Resize(n) = WorksheetFunction.Transpose(vR)

End Sub

答案 1 :(得分:1)

这在spss中更容易做到。以下语法将使用计算的中位数创建一个新数据集(这将原始数据放在名为origVar的变量中):

compute grp=trunc(($casenum-1)/5)+1.
dataset declare medians.
aggregate /out='medians'/break=grp /groupMedian=MEDIAN(origVar).