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

REGEXMATCH结合SWITCH函数匹配链接始终返回other,求解决方法

哦,我知道问题出在哪了!你用的SWITCH公式写法不对——SWITCH的第一个参数是要匹配的表达式,你把A1(完整的URL字符串)放那,后面的case却是REGEXMATCH返回的TRUE/FALSE,这俩完全没法匹配,所以它只能一直返回最后的"other"。

给你几个靠谱的解决方法:

方法1:用IFS函数(最直观的多条件判断)

IFS天生就是用来处理这种多条件分支的,语法刚好对应「满足条件就返回对应结果」的需求,而且顺序判断,第一个满足的就生效:

=IFS(REGEXMATCH(A1, "amazon\."), "amazon", REGEXMATCH(A1, "lifehacker\."), "LFH", REGEXMATCH(A1, "engadget\."), "ENG", TRUE, "other")

这里要注意正则里的\.——因为.在正则里是「匹配任意单个字符」的通配符,不转义的话,会误匹配像"amazon1"、"amazony"这类字符串,转义后才会精确匹配域名里的点(比如amazon.es、amazon.com里的那个点)。

方法2:修正SWITCH的写法

如果你非要用SWITCH,得把第一个参数改成TRUE,这样后面的case就会检查REGEXMATCH返回的布尔值是否为TRUE,匹配到第一个TRUE就返回对应结果:

=SWITCH(TRUE, REGEXMATCH(A1, "amazon\."), "amazon", REGEXMATCH(A1, "lifehacker\."), "LFH", REGEXMATCH(A1, "engadget\."), "ENG", "other")

方法3:批量处理整列(数组公式)

如果要一次性处理A列所有单元格,可以用ARRAYFORMULA搭配IFS,不用手动下拉公式:

=ARRAYFORMULA(IF(A:A="", "", IFS(REGEXMATCH(A:A, "amazon\."), "amazon", REGEXMATCH(A:A, "lifehacker\."), "LFH", REGEXMATCH(A:A, "engadget\."), "ENG", TRUE, "other")))

这个公式会自动跳过A列的空单元格,给有内容的单元格返回对应结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 16:02:37