使用Regexmatch检测单元格区域值并仅在当前列返回结果
问题解决:让REGEXMATCH检测区域后仅在当前列返回结果
问题描述
使用公式=ARRAYFORMULA(IF(regexmatch(JD4:JL4,"LTM-1750*"),"YES","NO"))后,结果会在JD4到JL4对应的多列分别显示YES/NO,但需求是仅在输入公式的当前列返回单个结果(判断目标区域内是否存在匹配"LTM-1750开头"的值,存在则显示YES,否则显示NO)。
目标数据(JD4:JL4区域):
LTM-1750-9.1 LTM-1500 LTM-1300 LTM-1250 LTM-1160 LTM-1130
当前问题:公式返回多列的YES/NO,不符合仅在当前列显示单个结果的需求。
修正后的公式
=IF(ARRAYFORMULA(OR(REGEXMATCH(JD4:JL4,"LTM-1750.*"))),"YES","NO")
公式说明
REGEXMATCH(JD4:JL4,"LTM-1750.*"):修正正则表达式,LTM-1750.*用于匹配以LTM-1750开头的任意内容(原公式的LTM-1750*是错误写法,会匹配LTM-175后跟0个或多个0,不符合需求)。该函数会返回一个布尔值数组,对应每个单元格是否匹配。OR(...):判断数组中是否存在至少一个TRUE(即目标区域内有匹配项),ARRAYFORMULA让OR可以处理REGEXMATCH返回的数组。IF(...):根据OR的结果返回YES或NO,最终仅在当前列输出单个结果,不会扩散到多列。
内容的提问来源于stack exchange,提问作者Jerryboy Pereira
相关产品推荐
相关产品推荐

