2013-10-09 49 views
1

我有一個VBA正則表達式,我想與VLOOKUP結合使用,但是如果與VLOOKUP一起使用,它不會返回基於正則表達式的值。如何在vlookup中結合正則表達式函數?

這是它返回時,我執行的功能 =udfRegEx(A2,B2)

字符串

的Microsoft Windows Server 2003標準版(64位)

正則表達式

^([^,] *)

結果

的Microsoft Windows Server 2003

然而,當我執行=IFERROR(VLOOKUP(udfRegEx(A2,RegularExpression!B2),[Sample.xls]Sheet1!$B$2:$E$4177,4,FALSE),0)仍然會返回微軟的Windows Server 2003標準版(64位)

列B2的正則表達式^([^,]*)

+0

@Jerry - 我們對此深感抱歉。 udfRegEx(A2,RegularExpression!B2)中的A2表示數據源,B2表示正則表達式。 '[Sample.xls] Sheet1!$ B $ 2:$ E $ 4177'中的B2引用需要匹配的數組。 – PeanutsMonkey

+0

您是否願意使用外部插件或者您是否需要使用您的UDF? – BlueTrin

回答

0

嘗試使用:

=IFERROR(udfRegEx(VLOOKUP(udfRegEx(A2,RegularExpression!B2),[Sample.xls]Sheet1!$B$2:$E$4177,4,FALSE),RegularExpression!B2),0) 

在黑暗中拍攝。

+0

謝謝。我已經嘗試過了,它不起作用。看起來工作的唯一方法是如果我有一個單元從VLOOKUP函數返回一個值,另一個單元使用該值作爲正則表達式。如果它有幫助,我使用的職位從http://stackoverflow.com/questions/9744602/how-do-you-execute-a-regular-expression-in-excel – PeanutsMonkey

+0

@ PeanutsMonkey你可以把在你的問題中,它會避免這種情況,你知道嗎?你可以在http://ge.tt上放一個電子表格嗎? – Jerry

+0

對不起傑裏。我以爲我有。很不幸的是,不行。我沒有權限這樣做,因爲它有個人信息 – PeanutsMonkey

-1

我不得不這樣做我的個人使用,所以我做了一個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