我有一个VBA正则表达式,我想将其与VLOOKUP
合并,但是如果与VLOOKUP
一起使用,它不会返回基于正则表达式的值。
这是我执行函数=udfRegEx(A2,B2)
时返回的结果
字符串
Microsoft Windows Server 2003标准版(64位)
正则表达式
^([^,]*)
结果
微软 windows 服务器2003
但是,当我执行=IFERROR(VLOOKUP(udfRegEx(A2,RegularExpression!B2),[Sample.xls]Sheet1!$B$2:$E$4177,4,FALSE),0)
时,它仍然返回Microsoft Windows Server 2003标准版(64位)
列B2是正则表达式^([^,]*)
4条答案
按热度按时间8yparm6h1#
请尝试使用:
瞎猜。
rmbxnbpk2#
我不得不这样做我的个人用途,所以我做了一个Excel加载项,这里是GitHub地址.
https://github.com/BlueTrin/BlueXL
如果你需要的话我可以托管一个编译的版本。它添加了一个叫做BXLookup的函数,这个函数支持Regex,你也可以选择你执行查找的列,然后选择要打印的列。
我为你做了一个二进制:
https://bintray.com/bluetrin/BlueXL/BlueXL/0.1.0/view?sort=&order=#
当然,如果你只想使用VBA,这是行不通的,但如果你不介意使用插件,在GitHub上的电子表格中有一个例子。
请澄清您在以下方面的内容:
[Sample.xls]Sheet1!$B$2:$E$4177
9cbw7uwe3#
从Office 365开始,有了新的功能XLookUp,它(最终)可以完成你所寻找的铁架。https://www.excelcampus.com/functions/xlookup-explained/
ckocjqey4#
您不需要正则表达式来移除第一个逗号之后的所有内容。下面的函数也可以做到这一点:
也就是说,以下代码至少可以在Office 365上运行(未在早期版本上测试):
现在,将值设置为:
以及A4、A5中的公式:
您会得到预期的结果。