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

如何在Excel中从含频数的表格计算均值、中位数与众数?

加权分数的均值、中位数、众数计算方法(Excel)

假设你的分数列是A2:A8(4到10),对应出现次数列是B2:B8,以下是无需展开所有分数的直接计算方法:

均值(加权平均)

直接使用加权平均公式,通过SUMPRODUCT计算总分和,再除以总次数:

=SUMPRODUCT(A2:A8, B2:B8)/SUM(B2:B8)

SUMPRODUCT(A2:A8, B2:B8)会计算每个分数乘以对应次数的总和,SUM(B2:B8)是总次数,两者相除就是加权均值——这比普通的AVERAGE函数更适配加权数据场景。

中位数

Excel 365及以后版本(动态数组支持)

用动态数组公式直接计算:

=MEDIAN(INDEX(A2:A8, MATCH(SEQUENCE(SUM(B2:B8)), SCAN(0, B2:B8, LAMBDA(a,b,a+b)), 1)))

公式逻辑:

  • SUM(B2:B8)计算总次数
  • SEQUENCE(...)生成从1到总次数的位置序列
  • SCAN(...)计算次数的累计值,确定每个分数对应的位置区间
  • MATCH(...)匹配序列位置对应的分数行号,INDEX提取对应分数
  • 最后用MEDIAN取中位数

旧版Excel

  1. 先计算累计次数:在C2输入=B2,C3输入=C2+B3,下拉到C8
  2. 计算总次数N=SUM(B2:B8)
  3. 若N为奇数,中位数位置是(N+1)/2,用公式提取对应分数:
    =INDEX(A2:A8, MATCH((N+1)/2, C2:C8, 1))
    
  4. 若N为偶数,取N/2和N/2+1位置对应分数的平均值:
    =(INDEX(A2:A8, MATCH(N/2, C2:C8, 1)) + INDEX(A2:A8, MATCH(N/2+1, C2:C8, 1)))/2
    

众数

众数是出现次数最多的分数,直接定位最高次数对应的分数即可:

=INDEX(A2:A8, MATCH(MAX(B2:B8), B2:B8, 0))

MAX(B2:B8)获取最高出现次数,MATCH找到该次数对应的行号,INDEX提取对应分数——这比MODE.SNGL更高效,因为后者需要展开所有分数才能识别众数。


内容的提问来源于stack exchange,提问作者Ohto Nordberg

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 01:05:15