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

Google Sheets按组计算RPD(相对百分比差)问题求助

按分组计算Google Sheets中的RPD(相对百分比差)

问题概述

需要基于分组列(字符串顺序不固定),为多行多列数据计算RPD。RPD公式为:
=(当前值 - 分组平均值)/分组平均值*100
已实现全局RPD计算,但尝试的ArrayFormula无法正确应用分组条件,最终需处理25列数据。

解决方案

单列分组RPD计算(以B列为例)

使用ARRAYFORMULA结合AVERAGEIF实现数组式分组计算:

=ARRAYFORMULA(IF(A20:A="",, (B20:B - AVERAGEIF(A20:A, A20:A, B20:B))/AVERAGEIF(A20:A, A20:A, B20:B)*100))
  • IF(A20:A="",, ...):跳过无分组标记的空行
  • AVERAGEIF(A20:A, A20:A, B20:B):动态匹配当前行的分组,计算对应分组的B列平均值
  • 套入RPD公式完成计算,自动填充整列

多列批量计算(25列,如B-Z列)

使用MAP函数实现逐行逐列的分组计算,更简洁高效:

=MAP(A20:A, B20:Z, LAMBDA(group, val, IF(group="",, (val - AVERAGEIF(A20:A, group, B20:Z))/AVERAGEIF(A20:A, group, B20:Z)*100)))
  • MAP(A20:A, B20:Z, LAMBDA(group, val, ...)):遍历每一行的分组标记和对应列的值
  • 逻辑与单列公式一致,自动覆盖B到Z列的所有数据

原尝试公式的问题分析

  1. Try A:公式中额外将B20作为AVERAGE的参数,干扰了分组平均值的计算;同时用乘法生成匹配数组的方式,不如AVERAGEIF直接可靠。
  2. Try B:分母使用了全局范围的AVERAGE(B20:B34),而非对应分组的平均值,导致RPD计算逻辑错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 12:25:14