Excel公式包含错误

我在这个Excel公式中有一个错误,我不能明白:

=LEFT(B3,FIND(",",B3&",")-1)&","&RIGHT(B3,LEN(B3)-FIND("&",B3&"&")),RIGHT(B3,LEN(B3)-SEARCH("@",SUBSTITUTE(B3," ","@",LEN(B3)-LEN(SUBSTITUTE(B3," ",""))))&", "&SUBSTITUTE(RIGHT(B3,LEN(B3)-FIND("&",B3&"&")-1),RIGHT(B3,LEN(B3)-SEARCH("@",SUBSTITUTE(B3," ","@",LEN(B3)-LEN(SUBSTITUTE(B3," ",""))))),"")) 

它可能看起来像一个很大的公式,但是它所要做的就是在单元格中不存在&符号的情况下,返回一个空单元格,如果没有逗号但是符号存在,则返回该单元格,例如:

KNUD J&MARIA L HOSTRUP

进入这个:

HOSTRUP,MARIA L

否则,没有符号,但有一个逗号,所以我们只是返回:LEFT(A1,FIND(“&”,A1,1)-1)。

似乎基本,但公式一直给我错误信息,并没有指出问题。

你的错误在这里:

 =LEFT(B3,FIND(",",B3&",")-1)&","&RIGHT(B3,LEN(B3)-FIND("&",B3&"&")), 

此时,逗号不适用于对angular线,因为正确的运算符具有匹配的对angular线

至于你想要什么? 让我们把它分解成你实际要求的东西:

如果单元格中没有&符号,则返回空单元格,

 B4=Find("&", B3&"&") B5=IF(B4>LEN(B3),"",B6) 

如果没有逗号但是&符号存在

 B6=IF(FIND(",", B3&",")>LEN(B3),B8,B7) 

然后把这个,例如:

KNUD J&MARIA L HOSTRUPjoin:HOSTRUP,MARIA L

我假设你的意思是把最后一个字? 我们来标记最后一个单词:

 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包含你正在寻找的信息)它花了几个单元格,但这样更容易debugging。 如果你想折叠它,你可以(但是这样做是更多的代码,因为我们可以通过多次引用一个先前计算的单元格来减less重复)。

概要:

 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 J&MARIA L HOSTRUP”时,我在B5中得到“HOSTRUP,MARIA”。