你的錯誤是在這裏:
=LEFT(B3,FIND(",",B3&",")-1)&","&RIGHT(B3,LEN(B3)-FIND("&",B3&"&")),
此時,逗號並不適用於參選,因爲右操作具有匹配的括號
至於你想要什麼?讓我們打破了成什麼樣,你居然問:
如果在一個小區中沒有符號,返回空單元格,
B4=Find("&", B3&"&")
B5=IF(B4>LEN(B3),"",B6)
如果沒有逗號,但符號存在
B6=IF(FIND(",", B3&",")>LEN(B3),B8,B7)
然後打開它,例如:
KNUDĴ& MARIA大號HOSTRUP 到這一點: HOSTRUP,MARIA大號
我假定你的意思是把最後整個單詞?讓我們來紀念過去的整個詞:
B9=SUBSTITUTE(B3," ","@",LEN(B3)-LEN(SUBSTITUTE(B3," ","")))
B10=RIGHT(B7,LEN(B9)-FIND("@",B9))
而且連字符和最後一個字之間的東西
B11=TRIM(MID(B9,B4 + 1, LEN(B9)-FIND("@",B9)-1))
然後計算很容易
B7=B10&","&B11
否則,沒有&符號,但有逗號,所以我們只返回: LEFT(A1,FIND(「&」,A1,1)-1)。
好吧,如果你想要的,我們只是把在B8
B8=LEFT(A1,FIND("&",A1,1)-1)
(但我認爲你實際上意味着B3代替A1)
B8=LEFT(B3,FIND("&",B3,1)-1)
有你有它(B5包含您要查找的信息)它花了幾個單元,但這樣更容易調試。如果你想摺疊它,你可以(但是這樣做是更多的代碼,因爲我們可以通過不止一次引用先前計算的單元格來減少重複)。
摘要:
B3=<Some Name with & or ,>
B4=FIND("&", B3&"&")
B5=IF(B4>LEN(B3),"",B6)
B6=IF(FIND(",", B3&",")>LEN(B3),B7,B8)
B7=B10&","&B11
B8=LEFT(B3,FIND("&",B3,1)-1)
B9=SUBSTITUTE(B3," ","@",LEN(B3)-LEN(SUBSTITUTE(B3," ","")))
B10=RIGHT(B9,LEN(B9)-FIND("@",B9))
B11=TRIM(MID(B9,B4 + 1, LEN(B9)-FIND("@",B9)-1))
當我把 「KNUDĴ& MARIA大號HOSTRUP」,我得到 「HOSTRUP,MARIA」 在B5。
如果你把你很長的公式分解成單獨的(隱藏的)單元格,它可能會有所幫助 – McKay 2010-11-10 22:55:10