自动化帮助,excel或SPSS,需要为每五分之一的值计算中值

自动化帮助,excel或SPSS,需要为每五分之一的值计算中值,excel,automation,spss,vba,Excel,Automation,Spss,Vba,我有一个大的列,我需要列表中每五分之一值的中间值。我有excel和SPSS。如果不手动执行,我如何执行此操作?600个值。计算时,我应该有一列120个中值 如果您的数据在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" & R

我有一个大的列,我需要列表中每五分之一值的中间值。我有excel和SPSS。如果不手动执行,我如何执行此操作?600个值。计算时,我应该有一列120个中值

如果您的数据在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

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

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