2015-06-29 151 views
0

我需要在列中搜索符合術語^v_cusip=的5-9位數字的ID,並用逗號分隔。從第一眼看上去,該ID的再接^v_sort_order所以我嘗試:Excel VBA /搜索公式列

=MID(A2,FIND("^v_cusip=",A2)+9,(FIND("^v_sort_order=",A2)-(FIND("^v_cusip=",A2)+9))) 

然而,接踵而來的^v_cusip=變化。是否有另一個公式或VBA代碼我可以用來搜索行?我不能重複使用MID/FIND,因爲有成千上萬的行,其中有許多可以遵循^v_cusip=的變體。

謝謝!

+0

你看過嗎?你想要的是正則表達式。 http://stackoverflow.com/questions/22542834/how-to-use-regular-expressions-regex-in-microsoft-excel-both-in-cell-and-loops – Charlie

回答

0
=LEFT(RIGHT(A2;LEN(A2)-FIND("^v_cusip=";A2)-8);FIND("^";RIGHT(A2;LEN(A2)-FIND("^v_cusip=";A2)-8))-1) 

這將只顯示^ v_cusip =和下一個^字符之間的部分。 你可以用逗號進一步分割字符串。

+0

謝謝!有效! – DragoSalaamii

0

單元細節的其他部分是什麼樣的?每行只有'='號嗎?如果是這樣,也許你可以做一個文本到列並使用'='符號作爲分隔符。

一旦它被拆分,應該把ID放在一個可預測的列中。

+0

在單元格中有許多'='作爲well ... – DragoSalaamii

+0

ID列表的末尾總是有一個'^',但單元格又包含許多'^' – DragoSalaamii