0

I have an error in this excel formula and I can't just figure it out:

=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," ",""))))),""))

It may seem like a big formula, but all it's intended to do is if no ampersand is in a cell, return an empty cell, if no comma but ampersand exists, then return this, for example:

KNUD J & MARIA L HOSTRUP

into this:

HOSTRUP,MARIA L

Otherwise, there is no ampersand but there is a comma so we just return: LEFT(A1,FIND("&",A1,1)-1).

Seems basic, but formula has been giving me error message and doesn't point to the problem.

4

1 回答 1

4

你的错误在这里:

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

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

至于你想要什么?让我们将其分解为您实际要求的内容:

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

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

如果没有逗号但存在 & 号

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

然后转这个,例如:

KNUD J & MARIA L HOSTRUP 入此: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 包含您要查找的信息)它需要几个单元格,但这种方式更容易调试。如果你想折叠它,你可以(但这样做需要更多代码,因为我们可以通过多次引用先前计算的单元格来减少重复)。

概括:

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”。

于 2010-11-10T22:56:50.760 回答