SWITCH嵌套REGEXMATCH函数失效求助:始终返回默认值
问题分析与解决
你的函数始终返回"Whatever"的核心原因是SWITCH参数逻辑不匹配:
SWITCH的语法是SWITCH(要匹配的基准值, 匹配值1, 返回值1, 匹配值2, 返回值2, 默认值),你把基准值设为M12(文本类型),但后续的匹配项是REGEXMATCH返回的布尔值(TRUE/FALSE)——文本和布尔值永远无法相等,自然触发不了任何匹配条件,只能走默认分支。
修正方案
方案1:调整SWITCH基准值为TRUE
将第一个参数改为TRUE,让REGEXMATCH的布尔结果直接和基准值匹配:
=SWITCH(TRUE, REGEXMATCH(M12,"Desktops"),"Desktops", REGEXMATCH(M12,"Laptops"),"Laptops", "Whatever")
方案2:改用IFS函数(更直观)
IFS本身就是按条件判断的结构,适配这类场景更顺手:
=IFS(REGEXMATCH(M12,"Desktops"),"Desktops", REGEXMATCH(M12,"Laptops"),"Laptops", TRUE,"Whatever")
方案3:精准完全匹配时简化写法
如果M列内容是完全等于"Desktops"或"Laptops"(不是包含该文本),直接用文本匹配更高效:
=SWITCH(M12,"Desktops","Desktops","Laptops","Laptops","Whatever")
内容的提问来源于stack exchange,提问作者dlyk1988
相关产品推荐
相关产品推荐

