這是(假設數據是在列A)
=VALUE(LEFT(RIGHT(A1,LEN(A1) - FIND("gi|",A1) - 2),
FIND("|",RIGHT(A1,LEN(A1) - FIND("gi|",A1) - 2)) -1))
不是最好的公式,b它將會提取數字。
我剛剛注意到,因爲每行有兩個值,輸出之間用逗號隔開。您將需要檢查是否有第二次比賽,第三次比賽等,使其工作在每個單元多個數字。
關於你確切的樣品(假設每單元2個值最大)下面的代碼將工作:
=IF(ISNUMBER(FIND("gi|",$A1,FIND("gi|", $A1)+1)),CONCATENATE(LEFT(RIGHT($A1,LEN($A1)
- FIND("gi|",$A1) - 2),FIND("|",RIGHT($A1,LEN($A1) - FIND("gi|",$A1) - 2)) -1),
", ",LEFT(RIGHT($A1,LEN($A1) - FIND("gi|",$A1,FIND("gi|", $A1)+1)
- 2),FIND("|",RIGHT($A1,LEN($A1) - FIND("gi|",$A1,FIND("gi|", $A1)+1) - 2))
-1)),LEFT(RIGHT($A1,LEN($A1) - FIND("gi|",$A1) - 2),
FIND("|",RIGHT($A1,LEN($A1) - FIND("gi|",$A1) - 2)) -1))
是如何形成的醜嗎? VBA解決方案可能對你更好,但我會在這裏爲你留下。
對上5個數字,好,學習模式和手動遞歸公式中。 IT會變長!
哦,這個人很漂亮。絕對神話般。 說真的,你爲什麼這樣做?這非常有幫助,但我只是很好奇爲什麼人們會爲此付出時間?這對你們來說都是非常慈善的。 – Brandon
非常歡迎!至於我爲什麼花時間:我這樣做是因爲其他人這樣做。我認爲這更像是「付出前進」的東西。我有一天幫助別人,他們會幫助我一些代碼,我幫助的人會幫助別人,等等。:) – aevanko
正則表達式是一個很好的方式。 +1對於我自己,我回答問題是因爲它很有趣,是一種學習/練習的好方法。此外,像Issun說的,多年來,我在新聞組和其他論壇中從慷慨和非常有才華的人那裏獲得了驚人的幫助。 –