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

关于在超100单元格区域中计算前12个有效高尔夫成绩平均值的技术咨询

关于在超100单元格区域中计算前12个有效高尔夫成绩平均值的技术咨询

嗨,Curtis!我完全懂你统计高尔夫成绩时的痛点——毕竟不是每个人都能打满100轮,你只需要聚焦在已完成的轮次里,算出最近12次(或者指定的前12个有效成绩)的平均值对吧?下面给你适配不同Excel版本的实用解决方案,直接复制公式就能用:

适用Excel 365/2021(支持动态数组函数)

假设你的高尔夫成绩都存在A1:A100这个区域里:

  • 如果要算最近12次已打轮次的平均值(A1是最早成绩,A100是最近成绩):
    用这个公式:

    =AVERAGE(TAKE(FILTER(A1:A100, A1:A100<>""), -12))
    

    拆解一下逻辑:

    • FILTER(A1:A100, A1:A100<>"") 先把区域里所有非空的有效成绩筛选出来,自动跳过没打球的空单元格
    • TAKE(..., -12) 从筛选结果的末尾(也就是最新的12次成绩)提取12个值
    • 最后用AVERAGE计算这些值的平均数
  • 如果要算区域里从上到下的前12个有效成绩的平均值(比如最早的12轮):
    只需要把-12改成12:

    =AVERAGE(TAKE(FILTER(A1:A100, A1:A100<>""), 12))
    

适用旧版Excel(不支持动态数组)

旧版没有FILTER和TAKE函数,咱们用组合公式来实现:
同样假设成绩在A1:A100(A100是最近成绩):

=AVERAGE(OFFSET(A100, -MIN(12, COUNTA(A1:A100)-1), 0, MIN(12, COUNTA(A1:A100)), 1))

解释下:

  • COUNTA(A1:A100) 先统计区域里有多少个非空的有效成绩
  • MIN(12, COUNTA(...)) 做个兜底:如果总轮次不足12次,就自动取所有已有的轮次来算平均,不会出错
  • OFFSET 精准定位到最近的12个(或全部)有效成绩的区域,最后用AVERAGE计算平均值

小提示

如果你的成绩区域里有0值:

  • 如果0是有效成绩,那上面的公式都能直接用
  • 如果0代表没打球需要排除,把筛选条件改成A1:A100>0就行,比如把第一个公式改成=AVERAGE(TAKE(FILTER(A1:A100, A1:A100>0), -12))

备注:内容来源于stack exchange,提问作者Curtis Munson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 13:48:00