Excel 公式教程:使用 SUMPRODUCT 实现多条件查找并返回勾选符号(√)

110次阅读
没有评论

🤖 Assistant

当然可以!下面是一份详细教程,讲解你提供的 Excel 公式的工作原理,并通过 实际例子 帮助你完全掌握它的用法。

🎯 公式内容

=IF(SUMPRODUCT((Sheet!$B$2:$B$3200 = $B2) * (Sheet!$C$2:$C$3200 = C$1)) > 0, "√", "")

 

🔍 功能说明

这个公式实现的功能是:

 

📊 示例场景(对照说明)

① 数据源表 Sheet(登记表)

B 列(姓名) C 列(课程)
张三 数学
李四 英语
张三 英语
王五 数学
张三 物理

② 当前工作表(打√统计表)

姓名 数学 英语 物理
张三
李四
王五

你在 C2 单元格中输入公式:

=IF(SUMPRODUCT((Sheet!$B$2:$B$3200 = $B2) * (Sheet!$C$2:$C$3200 = C$1)) > 0, "√", "")

 

然后向右、向下填充,就可以得到是否选了对应课程的标记(√)。

🧠 公式拆解

让我们分解这个公式看它是如何工作的:

👇 SUMPRODUCT((条件 1) * (条件 2))

用来实现 多条件计数

(Sheet!$B$2:$B$3200 = $B2)

 

👉 检查数据源中的“姓名”列是否等于当前行的名字。

(Sheet!$C$2:$C$3200 = C$1)

 

👉 检查数据源中的“课程”列是否等于当前列的课程名。

这两个条件同时成立的行,会返回 1 * 1 = 1,否则为 0。

例如:

姓名匹配 课程匹配 相乘结果
1
0
0

最终:

SUMPRODUCT(...) > 0

 

只要结果大于 0,说明存在匹配项,于是:

IF(..., "√", "")

 

→ 返回 ,否则返回空。

🧪 实战例子解析

在“张三”对应“英语”的格子里运行公式:

=IF(SUMPRODUCT((Sheet!$B$2:$B$3200=" 张三 ") * (Sheet!$C$2:$C$3200=" 英语 ")) > 0, "√", "")

 

数据源中确实有一行是 张三 | 英语,所以结果为 1,返回

💡 提示与进阶用法

✅ 防止数据区域浪费计算资源

如果你的数据不多,可以把区域缩小为:

Sheet!$B$2:$B$100

 

不要用整列 B:B,否则性能会变差。

✅ 配合 条件格式 实现勾选高亮

你可以配合 条件格式,为包含“√”的单元格加颜色,比如绿色背景。

✅ 增加第三个条件?

也可以这么写:

=IF(SUMPRODUCT((条件 1) * (条件 2) * (条件 3)) > 0, "√", "")

 

✅ 总结

优点 缺点
支持多条件组合查询 不支持模糊匹配(仅精准)
不依赖排序或唯一主键 区域太大性能下降
可用于打“√”或其他标志符 不支持跨工作簿引用

如果你需要我帮你把这个公式扩展成三条件查找,或自动汇总计数字段,我也可以继续帮你编写!

正文完
 0
评论(没有评论)