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

多列换行分隔数值的平均值计算公式异常问题求助

多列换行分隔数值平均值计算出错问题

问题现状

我尝试计算多列中按换行符分隔的数值的平均值,使用的公式如下:

={"Average"; {""; IFERROR(ARRAY_CONSTRAIN(MAP(D3:D, E3:E, F3:F, G3:G, H3:H, I3:I,
  LAMBDA(u, v, w, x, y, z, AVERAGE(
    AVERAGE(SPLIT(u, CHAR(10))),
    AVERAGE(SPLIT(v, CHAR(10))),
    AVERAGE(SPLIT(w, CHAR(10))),
    AVERAGE(SPLIT(x, CHAR(10))),
    AVERAGE(SPLIT(y, CHAR(10))),
    AVERAGE(SPLIT(z, CHAR(10)))
  ))
), IF(COUNTA(ALBUM_NAME_RNG) = 0, 1, COUNTA(C3:C)), 1))}}

目前该公式可计算平均值,但部分行结果不正确:

  • 第一行预期平均值为3.4697058824,实际得到2.75
  • 第二行平均值1.9383333333计算正确

数据示例

Album NameTrack NumberTrack NameAcousticnessDanceabilityEnergyInstrumentalnessLivenessSpeechiness
The Dark Side of the Moon1Speak to Me0.00329
0.00139
0.00173
0.00159
0.00197
0.358
0.375
0.366
0.371
0.363
0.0734
0.0721
0.0685
0.0703
0.0712
0.979
0.98
0.981
0.98
0.98
0.127
0.131
0.129
0.13
0.128
0.0505
0.0501
0.0503
0.0502
0.0504
Random Access Memories1Give Life Back to Music0.0322
0.0318
0.032
0.0319
0.694
0.692
0.693
0.693
0.815
0.814
0.814
0.814
0.000173
0.000172
0.000173
0.000172
0.0924
0.0923
0.0923
0.0923
0.0764
0.0763
0.0763
0.0763

问题原因

原公式的逻辑是先计算每列换行数值的平均值,再对这6个列平均值取平均,这属于「列均值的平均」,而非所有数值的「整体平均值」。当不同列的数值数量不一致(或加权占比不同)时,两种计算方式的结果会出现偏差——这正是第一行结果错误的核心原因。

修正后的公式

将所有列拆分后的数值合并为一个一维数组,再直接计算整体平均值:

={"Average"; {""; IFERROR(ARRAY_CONSTRAIN(MAP(D3:D, E3:E, F3:F, G3:G, H3:H, I3:I,
  LAMBDA(u, v, w, x, y, z, 
    AVERAGE(TOCOL(SPLIT(u&CHAR(10)&v&CHAR(10)&w&CHAR(10)&x&CHAR(10)&y&CHAR(10)&z, CHAR(10)), 1))
  )
), IF(COUNTA(ALBUM_NAME_RNG) = 0, 1, COUNTA(C3:C)), 1))}}

公式说明

  1. u&CHAR(10)&v&...&z:将当前行6列的换行分隔文本合并为一个整体,用换行符连接
  2. SPLIT(..., CHAR(10)):将合并后的文本按换行符拆分为所有数值的数组
  3. TOCOL(..., 1):将二维数组转为一维数组,并忽略空值
  4. AVERAGE(...):计算所有数值的整体平均值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 10:07:54