求Excel中计算列内包含首个单元格的每隔n个单元格平均值的公式
计算Excel中每隔n个单元格的平均值(从首个单元格开始)
当然有啦!我来给你分享几个实用的公式方案,适配不同版本的Excel,轻松搞定这个需求👇
方案1:适用于Excel 365/2021(支持SEQUENCE函数)
这个版本的公式最简洁直观,一步到位:=AVERAGE(INDEX(A:A, SEQUENCE(ROUNDUP(COUNTA(A:A)/n,0),1,1,n)))
公式拆解:
COUNTA(A:A):先统计A列里非空单元格的总数,帮我们确定有多少个符合条件的单元格ROUNDUP(COUNTA(A:A)/n,0):计算需要提取的间隔单元格数量,向上取整避免遗漏最后一个可能不足n间隔的单元格SEQUENCE(...,1,1,n):生成一个从1开始、步长为n的序列(比如n=5时,就是1,6,11,...)INDEX(A:A, ...):根据这个序列精准提取对应的单元格AVERAGE:最后计算这些单元格的平均值
举个例子,如果你要计算A列每隔5个单元格的平均值,直接把公式里的n换成5就行:=AVERAGE(INDEX(A:A, SEQUENCE(ROUNDUP(COUNTA(A:A)/5,0),1,1,5)))
就能得到你说的2.75这个结果啦。
方案2:兼容旧版Excel(不支持SEQUENCE函数)
如果你的Excel版本比较旧,用SUMPRODUCT搭配MOD的组合公式也能实现:=SUMPRODUCT((MOD(ROW(A:A)-ROW(A1),n)=0)*A:A)/SUMPRODUCT((MOD(ROW(A:A)-ROW(A1),n)=0)*1)
公式拆解:
ROW(A:A)-ROW(A1):计算每个单元格相对于A1的行偏移量(A1的偏移量是0,A6是5,A11是10...)MOD(...,n)=0:判断偏移量是否是n的倍数,符合条件的单元格会返回TRUE(也就是1),不符合的返回FALSE(0)- 第一个
SUMPRODUCT:把所有符合条件的单元格数值加总 - 第二个
SUMPRODUCT:统计符合条件的单元格数量 - 两者相除就得到了平均值
如果A列有空白单元格,不想把它们当作0计算,可以调整公式排除空白:=SUMPRODUCT((MOD(ROW(A:A)-ROW(A1),n)=0)*(A:A<>"")*A:A)/SUMPRODUCT((MOD(ROW(A:A)-ROW(A1),n)=0)*(A:A<>""))
小技巧
- 把公式里的
n替换成你实际需要的间隔数就行 - 如果你的数据不是从A1开始(比如从A2),只需要把公式里的
ROW(A1)改成ROW(A2),同时方案1里SEQUENCE的起始值改成2就可以啦
内容的提问来源于stack exchange,提问作者Jonathon Brown
相关产品推荐
相关产品推荐

