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

如何按列A的取值分组计算对应行的列B求和结果

按列分组求和的实现方案

没问题,这就是个很常见的分组聚合需求,针对你给出的示例数据,我给你几种不同工具下的实现方法,你可以根据自己的使用场景选择:

示例输入数据

ab
11
34
26
38
19

期望输出结果

asum
110
26
312

Excel 实现方式

方法1:使用SUMIF函数

在空白列(比如D列)列出所有不重复的a值,然后在E列对应单元格输入求和公式:

=SUMIF($A$2:$A$6, D2, $B$2:$B$6)

拖拽填充公式就能得到每个a对应的b列求和结果。

方法2:数据透视表(更高效)

  1. 选中整个数据区域(包括表头)
  2. 点击菜单栏的「插入」→「数据透视表」
  3. 在弹出的面板中,把a字段拖到「行」区域,把b字段拖到「值」区域
  4. 默认值字段可能是计数,右键点击值区域的字段,选择「值字段设置」→ 改成「求和」
  5. 最后调整一下列名,就能得到和期望一致的结果。

Python Pandas 实现方式

如果你用Python处理数据,Pandas库可以轻松搞定:

import pandas as pd

# 构造你的示例数据
df = pd.DataFrame({
    'a': [1, 3, 2, 3, 1],
    'b': [1, 4, 6, 8, 9]
})

# 按a分组,对b求和,然后重置索引变成表格形式
result_df = df.groupby('a')['b'].sum().reset_index()
# 把列名改成你需要的sum
result_df.rename(columns={'b': 'sum'}, inplace=True)

print(result_df)

运行这段代码后,输出的DataFrame就是你要的分组求和表。


SQL 实现方式

如果数据存在数据库里,用SQL语句直接查询即可(假设表名为your_table):

SELECT 
    a,
    SUM(b) AS sum
FROM your_table
GROUP BY a
ORDER BY a;

执行这条语句会直接返回按a分组后的求和结果,ORDER BY a是为了让结果按a的升序排列,和你的示例一致。

如果是用其他工具(比如R、Power Query)处理,你可以补充说明,我再给你对应方案~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:50:44