如何修改REGEX参数使REGEXMATCH兼容数值型数据?
解决REGEXMATCH处理数值列的报错问题
修改后的公式(保留原结构,兼容数值型数据)
你可以通过将待匹配单元格和半黑名单的数值列统一转换为文本格式来解决报错,以下是两种可行的写法:
写法1:使用TEXT()函数(可自定义数值转文本的格式)
=REGEXMATCH(TEXT(B2, "0"), TEXTJOIN("|", 1, FILTER(TEXT(INDIRECT("Semi-Blacklist!B:B"), "0"), INDIRECT("Semi-Blacklist!D:D")=FALSE)))
写法2:用&""强制转文本(更简洁)
=REGEXMATCH(B2&"", TEXTJOIN("|", 1, FILTER(INDIRECT("Semi-Blacklist!B:B")&"", INDIRECT("Semi-Blacklist!D:D")=FALSE)))
原理说明
原公式报错的核心原因是REGEXMATCH的第一个参数要求输入文本类型值,但B2是原生数值,无法被自动强制转换为文本。通过主动将:
- 待匹配的
B2转换为文本 - 半黑名单B列中筛选出的数值也转换为文本
就能保证REGEXMATCH的两个参数都是文本类型,同时完全保留你原公式的筛选、拼接逻辑。
内容的提问来源于stack exchange,提问作者Scylla
相关产品推荐
相关产品推荐

