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

Excel:按指定条件分组后每2行计算C列平均值的问题

解决分组内每2行计算C列平均值的问题

嘿,我完全懂你现在的需求——面对大型数据集,要按「ID+颜色」分组,每组里每2行算一次C列的平均值,比如ID=1且颜色=Red的前2行、接下来2行分别求平均,还要对ID=1+Blue、ID=2+Red这些分组重复操作。确实,普通的AVERAGEIFS只能按条件整体求平均,没法处理这种“分批滚动”的计算,下面给你两种实用方案,适配不同场景:

方案一:Excel公式法(快速上手,无需额外工具)

核心思路是先给每个分组内的行编序号,再按每2行划分批次,最后用AVERAGEIFS结合批次条件计算平均值:

  1. 添加分组内行号辅助列(比如D列)
    在D2单元格输入公式,下拉填充:

    =COUNTIFS($A$2:A2, A2, $B$2:B2, B2)
    

    这个公式会为每个「ID+颜色」分组生成从1开始的连续行号,比如ID=1+Red的前几行D列会是1、2、3、4...

  2. 添加批次标记辅助列(比如E列)
    在E2单元格输入公式,下拉填充:

    =INT((D2-1)/2)+1
    

    这样前2行的批次是1,接下来2行是2,以此类推,把每组拆成了一个个2行的小批次。

  3. 计算每批次的平均值(比如F列)
    在F2单元格输入公式,下拉填充:

    =AVERAGEIFS($C:$C, $A:$A, A2, $B:$B, B2, $E:$E, E2)
    

    如果你想只在每个批次的最后一行显示平均值(避免重复),可以改成:

    =IF(MOD(D2,2)=0, AVERAGEIFS($C:$C, $A:$A, A2, $B:$B, B2, $E:$E, E2), "")
    

方案二:Power Query法(适合超大型数据集,性能更优)

如果你的数据集行数特别多,公式法可能会卡顿,用Power Query处理会更高效,步骤如下:

  1. 选中数据集,点击「数据」选项卡→「从表格/区域」,把数据导入Power Query编辑器(注意勾选“我的表格有标题”)。
  2. 按ID和颜色分组:点击「开始」→「分组依据」,分组列选择ID颜色,新列名设为「分组数据」,操作选择「所有行」,点击确定。
  3. 拆分每2行的子列表:点击「添加列」→「自定义列」,输入公式:
    =List.Split([分组数据][C], 2)
    
    这个公式会把每组的C列数据拆分成每2个值为一组的子列表。
  4. 计算子列表的平均值:再添加一个自定义列,输入公式:
    =List.Transform([自定义], each List.Average(_))
    
    这样每个子列表的平均值就生成了。
  5. 整理并导出结果:你可以根据需要展开、合并列,把平均值对应回原数据的批次,最后点击「关闭并上载」,结果会自动导入到Excel新工作表中。

两种方案各有优劣:公式法适合快速处理中小数据集,不用学新工具;Power Query法更适合大数据量,运算流畅还能重复使用步骤。

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

火山引擎 最新活动