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

Excel多条件查找:全部匹配时返回True/False值的实现方法

按角色校验必修课程完成状态的公式方案

核心逻辑:对每一行用户,先匹配其所属角色对应的必修课程范围,校验该范围内的完成标记是否全部为TRUE,任意一门未完成(标记为FALSE)则最终返回FALSE,全部完成返回TRUE。


全版本兼容通用公式

在H3单元格输入公式后,下拉填充至H6即可适配所有Excel版本:

=SUMPRODUCT((B$3:B$6=B3)*(C$3:F$6=FALSE)*($C$2:$F$2=VLOOKUP(B3,$B$10:$C$12,2,0)))=0

逻辑说明:

  • VLOOKUP(B3,$B$10:$C$12,2,0):匹配当前行用户所属角色对应的必修课程名称
  • 多条件相乘做筛选:统计「和当前用户同角色、属于该角色必修课、完成状态为FALSE」的记录条数
  • 条数为0即代表无未完成的必修课程,返回TRUE,否则返回FALSE

Excel 365/2021+ 简化公式

支持动态数组的版本可在H3输入单公式,自动溢出填充H3:H6全区域,无需手动下拉:

=BYROW(3:6,LAMBDA(r,LET(role,INDEX(B:B,r),req,XLOOKUP(role,B10:B12,C10:C12),AND(INDEX(r,,XMATCH(req,C2:F2)+2)))))

逻辑说明:

  • BYROW逐行遍历用户数据行
  • XLOOKUP匹配角色对应必修课程,定位到该课程的完成状态列
  • AND判断该列对应当前用户行的完成值是否为真,直接输出判定结果

基于IF+VLOOKUP的适配公式

如果需要沿用IF、VLOOKUP函数组合,可使用以下写法,H3输入后下拉填充:

=IF(COUNTIFS(B:B,B3,INDEX(C:F,0,MATCH(VLOOKUP(B3,B10:C12,2,0),C2:F2,0)),FALSE)=0,TRUE,FALSE)

逻辑说明:

  • 用VLOOKUP获取当前角色对应的必修课程名,MATCH定位课程所在的完成状态列
  • COUNTIFS统计同角色下该课程标记为FALSE的记录数,IF根据统计结果返回最终判定值

使用提示:请根据你表格实际的角色映射表区域、课程列起止位置调整公式内的单元格引用,避免匹配错位。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 07:27:18