You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将计算滑动标准差再取中位数的两步操作合并为单个Excel公式?

Excel直接计算滑动子数组标准差的中位数(无需中间步骤)

完全可以跳过中间步骤,直接在C20单元格写入公式完成计算,且公式能自适应更大数据集。以下分Excel版本给出方案:

Excel 365/2021及以上版本(支持动态数组)

使用MEDIAN+MAP+INDEX的组合公式,非易失性且适配性强:

=MEDIAN(MAP(SEQUENCE(COUNTA(A:A)-5+1),LAMBDA(x,STDEV.S(INDEX(A:A,x):INDEX(A:A,x+4)))))

公式说明:

  • COUNTA(A:A)统计A列实际有数据的行数(若A列无空行,也可替换为ROWS(A:A));COUNTA(A:A)-5+1自动计算滑动子数组的总个数,适配任意长度的数据集。
  • MAP+SEQUENCE遍历每个子数组的起始位置x,通过INDEX精准定位从x开始的5个连续单元格(子数组)。
  • STDEV.S计算样本标准差,若需总体标准差,替换为STDEV.P即可。
  • 外层MEDIAN直接计算所有子数组标准差的中位数。

旧版Excel(无动态数组支持)

需使用数组公式(输入完成后按Ctrl+Shift+Enter确认):

=MEDIAN(IF(ROW(INDIRECT("1:"&COUNTA(A:A)-5+1))>0,STDEV.S(OFFSET(A1,ROW(INDIRECT("1:"&COUNTA(A:A)-5+1))-1,0,5,1))))

公式说明:

  • ROW(INDIRECT("1:"&COUNTA(A:A)-5+1))生成子数组起始位置的序列,自动适配数据集长度。
  • OFFSET(A1,行偏移,0,5,1)取出对应滑动子数组,行偏移为起始位置减1。
  • IF过滤无效值,STDEV.S计算标准差,最后MEDIAN取中位数。

通用调整技巧

如果需要修改滑动子数组的长度(比如从5改成7),只需:

  1. 将公式中的5替换为目标长度
  2. 将x+4(即x+5-1)替换为x+目标长度-1(旧版公式中OFFSET的5也同步替换)

内容的提问来源于stack exchange,提问作者Řídící

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 01:24:26