You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Google表格技术问询:如何统计含特定值行的Gain总和并计算均值

在Google Sheets中计算多列包含指定词汇的行的Gain均值

当然可以实现这个需求!我明白你遇到的问题——SUMIF确实只适合单列条件的场景,当关键词分散在多列时,就得换个思路用函数组合来解决了。

核心思路

我们需要三步完成计算:

  1. 识别所有包含目标词汇的行
  2. 累加这些行的Gain值总和
  3. 统计包含目标词汇的总行数,最后用总和除以行数得到均值

具体公式实现

1. 基础组合公式

直接把两个计算步骤合并成一个公式,以你的数据示例(搜索"cow",数据范围B2:E4,Gain列F2:F4)为例:

=SUMPRODUCT(--(MMULT(--(B2:E4="cow"),SEQUENCE(COLUMNS(B2:E4),1,1,0))>0),F2:F4)/SUMPRODUCT(--(MMULT(--(B2:E4="cow"),SEQUENCE(COLUMNS(B2:E4),1,1,0))>0))

公式拆解:

  • --(B2:E4="cow"):把单元格匹配结果转成1(匹配)或0(不匹配)的数组
  • MMULT(..., SEQUENCE(COLUMNS(B2:E4),1,1,0)):对每一行的匹配结果求和,判断该行是否至少有一个匹配(总和>0)
  • --(...)>0:把行匹配结果转成1或0,方便后续计算
  • 第一个SUMPRODUCT:累加所有匹配行的Gain值
  • 第二个SUMPRODUCT:统计匹配的总行数
  • 最后相除得到均值

2. 简化版(用LET函数提高可读性)

如果你的Google Sheets支持LET函数(大部分最新版本都支持),可以把公式写得更清晰,方便后续修改范围或关键词:

=LET(
  data_range, B2:E4,       // 要搜索关键词的多列范围
  gain_range, F2:F4,       // Gain值所在的列范围
  search_term, "cow",      // 要搜索的目标词汇
  // 以下是计算逻辑
  row_matches, --(MMULT(--(data_range=search_term),SEQUENCE(COLUMNS(data_range),1,1,0))>0),
  total_gain, SUMPRODUCT(row_matches, gain_range),
  match_count, SUM(row_matches),
  // 返回均值
  total_gain/match_count
)

验证你的示例

用"cow"作为搜索词时:

  • 匹配的行是第2行(Gain=12)和第3行(Gain=5),总和17
  • 匹配行数是2
  • 计算结果为17/2=8.5,完全符合你的预期

注意事项

  • 替换公式中的data_rangegain_rangesearch_term为你实际的表格范围和关键词即可
  • 如果要搜索的是动态关键词(比如单元格引用),把"cow"改成单元格地址(比如A1)就行

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

火山引擎 最新活动