Excel公式:检查单元格是否包含多个值中的一个但排除其他值
假设有两个值列表,您想检查单元格B3是否包含范围E3:E5中的某个值,但同时不包含范围F3:F4中的任何值,如下截图所示。本教程将提供一个公式来快速处理此任务,并解释公式的参数。
通用公式:
=(SUMPRODUCT(--ISNUMBER(SEARCH(include,text)))>0) *(SUMPRODUCT(--ISNUMBER(SEARCH(exclude,text)))=0) |
参数
Text:要检查的文本字符串。 |
Include:要检查的参数text中是否包含的值。 |
Exclude:要检查的参数text中是否不包含的值。 |
返回值:
公式返回1或0。当单元格包含需要包含的值之一且不包含任何需要排除的值时,返回1,否则返回0。在此公式中,1和0被视为逻辑值TRUE和FALSE。
公式工作原理
假设您要检查单元格B3是否包含范围E3:E5中的某个值,但同时排除范围F3:F4中的值,请使用以下公式:
=(SUMPRODUCT(--ISNUMBER(SEARCH($E$3:$E$5,B3)))>0)*(SUMPRODUCT(--ISNUMBER(SEARCH($F$3:$F$4,B3)))=0) |
按下 Enter 键以获取检查结果。
解释
第一部分:(SUMPRODUCT(--ISNUMBER(SEARCH($E$3:$E$5,B3)))>0) 检查单元格是否包含E3:E5中的值
SEARCH函数:SEARCH函数返回一个文本字符串在另一个文本字符串中的第一个字符的位置。如果SEARCH函数找到匹配的文本,则返回相对位置;如果没有找到,则返回#VALUE! 错误。例如,这里的公式SEARCH($E$3:$E$5,B3)将在单元格B3中搜索范围E3:E5中的每个值,并返回每个文本字符串在单元格B3中的位置。它将返回这样的数组结果:{1;7;12}。
ISNUMBER函数:ISNUMBER函数在单元格为数字时返回TRUE。因此ISNUMBER(SEARCH($E$3:$E$5,B3))将返回数组结果{true,true,true},因为SEARCH函数找到了3个数字。
--ISNUMBER(SEARCH($E$3:$E$5,B3)) 将TRUE值转换为1,将FALSE值转换为0,因此该公式将数组结果更改为{1;1;1}。
SUMPRODUCT函数:用于将多个范围相乘或将数组相加并返回乘积的总和。SUMPRODUCT(--ISNUMBER(SEARCH($E$3:$E$5,B3))) 返回 1+1+1=3。
最后,比较左侧公式 SUMPRODUCT(--ISNUMBER(SEARCH($E$3:$E$5,B3))) 与0进行比较,只要左侧公式的结果大于0,结果将为TRUE,否则返回FALSE。这里返回TRUE。
第二部分:(SUMPRODUCT(--ISNUMBER(SEARCH($F$3:$F$4,B3)))=0) 检查单元格是否不包含F3:F4中的值
公式SEARCH($F$3:$F$4,B3)将在单元格B3中搜索范围E3:E5中的每个值,并返回每个文本字符串在单元格B3中的位置。它将返回这样的数组结果:{#VALUE!;#VALUE!}。
ISNUMBER(SEARCH($F$3:$F$4,B3)) 将返回数组结果{false;false},因为SEARCH函数未找到任何数字。
--ISNUMBER(SEARCH($F$3:$F$4,B3)) 将TRUE值转换为1,将FALSE值转换为0,因此该公式将数组结果更改为{0;0}。
SUMPRODUCT函数:用于将多个范围相乘或将数组相加并返回乘积的总和。 SUMPRODUCT(--ISNUMBER(SEARCH($F$3:$F$4,B3))) 返回 0+0=0。
最后,比较左侧公式 SUMPRODUCT(--ISNUMBER(SEARCH($F$3:$F$4,B3))) 与0进行比较,只要左侧公式的结果等于0,结果将返回TRUE,否则返回FALSE。这里返回TRUE。
第三部分:将两个公式相乘
=(SUMPRODUCT(--ISNUMBER(SEARCH($E$3:$E$5,B3)))>0)*(SUMPRODUCT(--ISNUMBER(SEARCH($F$3:$F$4,B3)))=0)
=TRUE*TRUE
=1
在此公式中,1和0被视为逻辑值TRUE和FALSE。
示例文件
相关公式
- 检查单元格是否包含特定文本,若要检查单元格是否包含范围A中的某些文本但不包含范围B中的文本,您可以使用结合COUNT、SEARCH和AND函数的数组公式。
- 检查单元格是否包含多个内容之一,本教程提供了一个公式,用于检查单元格是否包含Excel中的多个值之一,并解释了公式中的参数以及公式的工作原理。
- 检查单元格是否包含多个内容之一,假设在Excel中,列E中有一组值,您想检查列B中的单元格是否包含列E中的所有值,并返回TRUE或FALSE。
- 检查单元格是否包含数字,有时您可能希望检查单元格是否包含数字字符。本教程提供了一个公式,如果单元格包含数字则返回TRUE,如果单元格不包含数字则返回FALSE。
最佳的办公生产力工具
Kutools for Excel - 助您脱颖而出
🤖 | Kutools AI 助手:基于智能执行革新数据分析:智能执行 | 生成代码 | 创建自定义公式 | 分析数据并生成图表 | 调用 Kutools 函数… |
热门功能:查找、高亮或标记重复项 | 删除空行 | 合并列或单元格而不丢失数据 | 无需公式四舍五入 ... | |
超级 VLookup:多条件 | 多值 | 跨多表 | 模糊查找... | |
高级下拉列表:简易下拉列表 | 级联下拉列表 | 多选下拉列表... | |
列管理器: 添加指定数量的列 | 移动列 | 切换隐藏列的可见状态 | 比较列以 选择相同和不同单元格 ... | |
特色功能:网格聚焦 | 设计视图 | 增强编辑栏 | 工作簿与工作表管理器 | 资源库(自动文本) | 日期提取 | 合并工作表 | 加密/解密单元格 | 按列表发送电子邮件 | 超级筛选 | 特殊筛选(筛选粗体/斜体/删除线...) ... | |
排名前 15 的工具集:12 个文本工具(添加文本,删除特定字符 ...) | 50+ 种图表 类型(甘特图 ...) | 40+ 实用 公式(基于生日计算年龄 ...) | 19 个插入工具(插入二维码,从路径插入图片 ...) | 12 个转换工具(小写金额转大写,汇率转换 ...) | 7 个合并和拆分工具(高级合并行,拆分 Excel 单元格 ...) | ... 更多功能 |
Kutools for Excel 拥有超过 300 项功能,确保您所需的一切都仅需一键之遥...
Office Tab - 在 Microsoft Office(包括 Excel)中启用标签式阅读和编辑
- 一秒内在数十个打开的文档之间切换!
- 每天为您减少数百次鼠标点击,告别鼠标手。
- 在查看和编辑多个文档时,您的生产力可提升 50%。
- 为 Office(包括 Excel)带来高效标签页,就像 Chrome、Edge 和 Firefox 一样。