如果另一列单元格包含指定文本则求和
本教程将演示如何在另一列的单元格中包含指定或部分文本时,对数值进行求和。以下方的数据区域为例,若需统计包含“T-Shirt”文本的产品总金额,您可以在 Excel 中使用 SUMIF 或 SUMPRODUCT 函数轻松实现。

如果单元格包含指定或部分文本,使用 SUMIF 函数汇总数值
如果单元格在另一列中包含指定文本,可使用带通配符(*)的 SUMIF 函数求和,通用语法如下:
硬编码文本的通用公式:
=SUMIF(range,"*text*",sum_range)
- range:要用条件进行判断的数据区域;
- *text*:用于指定您希望汇总的条件。此处,* 通配符可匹配任意数量的字符;如需匹配包含特定文本的所有项,只需将该文本放在两个 * 之间。(请注意,文本及通配符必须用双引号括起来。)
- sum_range:用于汇总的数值单元格区域。
通用公式,结合单元格引用:
=SUMIF(range,"*"&cell&"*",sum_range)
- range:要用条件进行判断的数据区域;
- "*"&cell&"*":您需要按其进行汇总的条件;
- *:通配符,可匹配任意数量的字符。
- cell:该单元格包含您要查找的特定文本。
- &:该连接运算符(&)可用于将单元格引用与星号进行连接。
- sum_range:匹配数值的单元格区域,即您要汇总的区域。
了解函数的基础用法后,请选择下列任意一个所需公式,然后按 Enter 键即可得到结果:
=SUMIF($A$2:$A$12,)"*T-shirt*",$B$2:$B$12) (Type the criteria manually)
=SUMIF($A$2:$A$12,)"*"&D2&"*",$B$2:$B$12) (Use a cell reference)
=SUMIF($A$2:$A$12,)"*"&D2&"*",$B$2:$B$12) (Use a cell reference)

注意:SUMIF 函数对大小写不敏感。
如果单元格包含指定或部分文本,使用 SUMPRODUCT 函数汇总数值
SUMPRODUCT 函数同样能够轻松完成此任务,无需借助任何通配符。此时,只需将 ISNUMBER 和 SEARCH 函数组合到 SUMPRODUCT 函数中,通用语法如下:
=SUMPRODUCT(sum_range *(ISNUMBER(SEARCH(criteria,range))))
- sum_range:匹配数值的单元格区域,即您要汇总的区域;
- criteria:您需要输入用于汇总的条件,可以是单元格引用,也可以是您自定义的特定文本。
- range:要用条件进行判断的数据区域;
请将以下任一公式输入到空白单元格,并按 Enter 键,即可返回结果:
=SUMPRODUCT($B$2:$B$12*(ISNUMBER(SEARCH())))"T-Shirt",$A$2:$A$12)))) (Type the criteria manually)
=SUMPRODUCT($B$2:$B$12*(ISNUMBER(SEARCH())))D2,$A$2:$A$12)))) (Use a cell reference)
=SUMPRODUCT($B$2:$B$12*(ISNUMBER(SEARCH())))D2,$A$2:$A$12)))) (Use a cell reference)

公式说明:
=SUMPRODUCT($B$2:$B$12*(ISNUMBER(SEARCH("T-Shirt",$A$2:$A$12))))
- SEARCH("T-Shirt",$A$2:$A$12):SEARCH 函数会返回指定文本“T-Shirt”在数据区域 A2:A12 中的位置,因此会得到如下数组:{5;#VALUE!;#VALUE!;7;#VALUE!;7;#VALUE!;#VALUE!;#VALUE!;#VALUE!;7}。
- ISNUMBER(SEARCH("T-Shirt",$A$2:$A$12))= ISNUMBER({5;#VALUE!;#VALUE!;7;#VALUE!;7;#VALUE!;#VALUE!;#VALUE!;#VALUE!;7}):ISNUMBER 函数可用于检测数值,并返回新的数组:{TRUE;FALSE;FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE}。
- $B$2:$B$12*(ISNUMBER(SEARCH("T-Shirt",$A$2:$A$12)))= {347;428;398;430;228;379;412;461;316;420;449}*{TRUE;FALSE;FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE}:当这两个数组相乘时,布尔值 TRUE 和 FALSE 会自动转换为 1 和 0. 因此,相乘后结果为:{347;428;398;430;228;379;412;461;316;420;449}*{1;0;0;1;0;1;0;0;0;0;1}={347;0;0;430;0;379;0;0;0;0;449}。
- SUMPRODUCT($B$2:$B$12*(ISNUMBER(SEARCH("T-Shirt",$A$2:$A$12)))) =SUMPRODUCT({347;0;0;430;0;379;0;0;0;0;449}):最后,SUMPRODUCT 函数会对数组中的所有值进行求和,最终得出结果:1605.
引用的相关函数:
- SUMIF:
- SUMIF 函数可根据单一条件对单元格区域进行求和。
- SUMPRODUCT:
- SUMPRODUCT 函数可用于对两列或多列(或数组)中的对应元素相乘后,再对所有乘积求和。
- ISNUMBER:
- 当单元格中包含数字时,Excel 的 ISNUMBER 函数将返回 TRUE,否则返回 FALSE。
- SEARCH:
- SEARCH 函数可帮助查找指定字符或子字符串在给定文本字符串中的位置
相关文章:
- 按开头或结尾为指定文本或字符汇总
- 若需汇总以特定值开头或结尾的单元格对应的数值,可结合 SUMIF 函数与通配符(*)轻松实现。本文将为您详细讲解该公式的使用方法。
- 汇总最小或底部 n 个值
- 在 Excel 中,您可以通过 SUM 函数轻松对单元格区域进行求和。但有时,您可能需要汇总某个数据区域中最小或最后的 3、5 或 n 个数值,如下图所示。此时,结合使用 SUMPRODUCT 和 SMALL 函数即可轻松实现这一需求。
- 根据条件汇总最小或底部 n 个值
- 在前面的教程中,我们已经介绍了如何在数据区域内汇总最小的 n 个值。本文将进一步讲解如何在 Excel 中,基于一个或多个条件,汇总最小的 n 个值。
最强最佳办公效率工具
Kutools for Excel —— 助您脱颖而出
| 🤖 | KUTOOLS AI 助手:基于数据分析的革命性升级智能执行 | 生成代码| 创建自定义公式 | 数据分析及生成图表| 调用 Kutools Functions…… |
| 热门功能:查找、高亮或标记重复项 | 删除空白行 | 合并列或单元格且不丢失数据 | 不使用公式的四舍五入…… | |
| 超级 VLookup:多条件查找 | 多值返回 | 跨多表查找 | 模糊查找…… | |
| 高级下拉列表:便捷下拉列表 | 联动下拉列表 | 多选下拉列表…… | |
| 列管理器:添加指定数量的列 | 移动列 | 切换隐藏列可见状态 |对比列与选择相同/不同单元格…… | |
| 精选功能:网格聚焦 | 设计视图 | 增强编辑栏 | 工作簿和表管理器|资源库(自动文本)| 日期提取 | 汇总工作表 | 加密/解密单元格 | 按列表批量发送邮件 | 超级筛选 | 特殊筛选(筛选粗体单元格/斜体/删除线等) ...... | |
| 顶级 15 工具集:12 文本工具(添加文本、删除特定字符……)| 50+ 图表 类型(甘特图……)| 40+ 实用公式(基于生日计算年龄……)| 19 插入工具(插入二维码、按路径插入图片……)| 12 转换工具(小写金额转大写、汇率转换……)| 7 合并和拆分工具(高级合并行、拆分 Excel 单元格……)|…… 以及更多 |
在您的首选语言使用 Kutools —— 支持英语、西班牙语、德语、法语、中文及 40+ 种语言!
Kutools for Excel 拥有超过 300 项功能,让您一键直达所需……
Office Tab —— 让 Microsoft Office(包括 Excel)支持标签式阅读与编辑
- 一秒即可切换数十个已打开的文档!
- 每天为您减少数百次鼠标点击,轻松告别鼠标手困扰。
- 在同时查看和编辑多个文档时,让您的工作效率提升高达 50%。
- 为 Office(包括 Excel)带来高效标签页体验,畅享如同 Chrome、Edge 和 Firefox 般的便捷操作。