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

Excel如何对列名含指定公共字符的所有列进行求和计算

按列名公共片段对多列数值求和的实现方案

Python Pandas 方案(适配大数据量批量处理场景)

核心思路是先通过列名字符串匹配筛选出目标列,再执行求和逻辑:

  • 列筛选:通过df.columns.str.contains('目标公共片段')即可批量匹配所有列名包含指定片段的列,例如要匹配所有带str1的列,直接传入匹配关键词'str1'即可。
  • 求和计算:对筛选出的列子集调用sum方法,传入axis=1可计算每行的合计值,传入axis=0可计算所有行的列总合计。

可直接复用的代码示例:

import pandas as pd

# 构造和示例结构一致的测试数据
df = pd.DataFrame({
    'str1a': [1, 2, 3, 4],
    'str1b': [5, 6, 7, 8],
    'str2a': [9, 10, 11, 12],
    'str2b': [13, 14, 15, 16]
})

# 计算所有含str1片段的列的行和,结果存入新列str1_total
df['str1_total'] = df.loc[:, df.columns.str.contains('str1')].sum(axis=1)
# 计算所有含str2片段的列的行和,结果存入新列str2_total
df['str2_total'] = df.loc[:, df.columns.str.contains('str2')].sum(axis=1)

如果需要避免模糊匹配带来的误命中(比如匹配str1时误命中str11、xstr1x这类不需要的列),可以换成正则精准匹配,例如df.columns.str.match(r'^str1[a-z]$')就能精准匹配str1后接单个小写字母的列名格式。

Excel 方案(适配小数据量手动操作场景)

用带通配符的SUMIF函数即可实现,无需手动点选每一列:

  • 若公共片段在列名开头,结果单元格输入公式:=SUMIF($1:$1,"str1*",2:2),下拉即可批量计算所有行的合计值。
  • 若公共片段在列名任意位置,将匹配规则调整为"*str1*"即可,公式修改为=SUMIF($1:$1,"*str1*",2:2)。

公式参数说明:第一参数$1:$1为锁定的表头行范围,第二参数为通配符匹配规则,第三参数2:2为当前需要求和的行范围,下拉时行号会自动对应更新。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 16:42:16