2010-11-05 3 views
0

В общем, что я пытаюсь сделать, у меня есть эта формула первенствовать:UPDATE группировки имен разграничены амперсандом первенствует

=IF(ISNUMBER(FIND(",",A1,FIND(",",A1,FIND("&",A1,FIND("&",A1))))+1),TRIM(MID(A1,FIND("&",A1,1)+1,FIND("&",A1,FIND("&",A1,1)+1)-FIND("&",A1,1)-1)),IF(ISNUMBER(FIND(",",A1,FIND(",",A1)+1)),TRIM(MID(A1,FIND("&",A1)+1,FIND("&",A1)-3)),IF(ISNUMBER(FIND("&",A1,FIND("&",A1)+1)),CONCATENATE(LEFT(A1,FIND(",",A1)-1),",",TRIM(MID(A1,FIND("&",A1,1)+1,FIND("&",A1,FIND("&",A1,1)+1)-FIND("&",A1,1)-1))),IF(ISNUMBER(FIND("&", A1)),SUBSTITUTE(A1,MID(A1,FIND(",", A1)+1,FIND(" &", A1)-FIND(",", A1)+2), ""),A1)))) 

, если вы заметили, эта часть его:

=IF(ISNUMBER(FIND(",",A1,FIND(",",A1,FIND("&",A1,FIND("&",A1))))+1) 

Я пытаюсь сказать, содержит ли ячейка две запятые и два амперсанда, а затем что-то делать. В противном случае я укажу его, чтобы сделать что-то еще. К сожалению, это условие не ведет себя так, как ожидалось. Хотя у меня есть клетки с двумя запятыми и только один амперсандом:

CORNWALL,A ROBERT & CORNWALL,ANNA 

он рассматривает это как верно, и применяет последующее истинное утверждение в вышеприведенную ячейку и, следовательно, приводит к ошибке VALUE, поскольку последующее истинное утверждение не учтите ячейку выше. Он учитывает только ячейки с двумя запятыми и двумя амперсандами. У меня уже есть другое условие ISNUMBER для ячейки выше, как вы можете видеть в моей первоначальной формуле.

Есть ли способ исправить мое условие ISNUMBER, поэтому на первом уровне выполнения он проверяет как две запятые, так и два амперсанда в ячейке?

Благодарим за отзыв.

ответ

2

Я не знаю, могу ли я увидеть, что не так с вашим кодом, но попробовали ли вы другой подход к подсчету числа амперсандов и запятых?

=IF(AND(LEN(A1)-LEN(SUBSTITUTE(A1,"&",""))=2,LEN(A1)-LEN(SUBSTITUTE(A1,",",""))=2),TRUECOND,FALSECOND) 

Это просто кажется немного проще.

Смежные вопросы