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

如何对不同数据点数量的3组数据集求平均值并绘制连贯平均曲线

解决多组不等长数据求平均后图表尖刺问题

问题根源

图表出现尖刺的核心原因是:部分时间点仅有单组数据存在,AVERAGE/AVERAGEIF直接计算时会把单个数据当作该时间点的平均值,和前后有多个数据点的平均值形成大幅落差,导致突兀尖刺。

分步解决方案

  • 第一步:统一时间轴
    整理出三组数据中所有出现过的时间点,按顺序单独列成一列(比如A列)。对每组数据,在对应时间轴位置填充数值,缺失的时间点用NA()填充(不要留空,留空会被函数忽略,NA()能让图表正确识别无效数据)。

  • 第二步:计算对应时间点的有效值平均
    在空白列(比如D列),针对A列的每个时间点,用数组公式计算三组数据中对应时间点的有效值平均:

    =AVERAGE(IF(Group1_Time=A2, Group1_Value, NA()), IF(Group2_Time=A2, Group2_Value, NA()), IF(Group3_Time=A2, Group3_Value, NA()))
    
    • Google Sheets直接输入后按回车即可;Excel需按Ctrl+Shift+Enter作为数组公式执行。
      这个公式只会计算存在对应时间点的组数据,自动忽略NA()值,避免单个数据拉低/拉高平均值。
  • 第三步:绘制连贯曲线
    用A列的统一时间轴和D列的平均值数据绘制折线图,然后在图表设置中选择「隐藏空单元格和#N/A值」:

    • Excel:「选择数据」→「隐藏的单元格和空单元格」→ 选「连接数据点」
    • Google Sheets:图表编辑器→「设置」→「空单元格处理」→ 选「连接数据点」
      这样曲线会自动跳过无有效数据的时间点,保持连贯平滑。

额外优化技巧

如果时间点是连续递增的(比如按秒/分钟),可以用SEQUENCE函数自动生成完整时间轴,无需手动整理:

=SEQUENCE(MAX(Max_Time)-Min_Time+1, 1, Min_Time)

其中Min_Time是三组数据中的最早时间,Max_Time是最晚时间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 11:18:10