Возврат пустого, если формула возвращает значение, содержащее "@" - PullRequest
0 голосов
/ 04 ноября 2019

Я использую это уравнение

= IF (ISBLANK (A2), "", PROPER (LEFT (A2, FIND (".", A2) -1)))

Чтобы вернуть Имя электронного адреса, однако, если электронное письмо имеет формат johnj@test.com, а не john.johnson@test.com, возвращается johnj @ test.

Я хочу, чтобы ячейка возвращала пустое значение, если она возвращает значение, содержащее символ "@".

Ответы [ 3 ]

0 голосов
/ 04 ноября 2019

Используйте IF () и проверьте, находится ли положение точки перед @

=IF(FIND(".";A2)>FIND("@";A2);"";LEFT(A2;FIND(".";A2)-1))

Редактировать: OP имеет разделитель аргумента as вместо символа;

=IF(FIND(".",A2)>FIND("@",A2),"",LEFT(A2,FIND(".",A2)-1))
0 голосов
/ 04 ноября 2019

Вот еще один способ:

=IFERROR(IF(ISBLANK(A2),"",PROPER(LEFT(A2,MIN(FIND(".",A2), FIND("@",A2))-1))),"")

Выше, возвращает то, что находится слева от первого . или @, который когда-либо появляется первым. IFERROR должен вернуть пустую ячейку, если введенный не имеет подстрок

0 голосов
/ 04 ноября 2019

Еще один способ подумать об этом - проверить положение найденного . и положение найденного @. Если до @ нет периода, просто верните пустую строку.

Вы можете легко добавить эту проверку в свою текущую формулу:

=IF(OR(ISBLANK(A2),FIND(".",A2)>FIND("@",A2)),"",PROPER(LEFT(A2,FIND(".",A2)-1)))

enter image description here

РЕДАКТИРОВАТЬ:

Возможно, вы хотите, чтобы что-то подобное обрабатывать пустые ячейки:

=IFERROR(IF(FIND(".",A2)>FIND("@",A2),"",PROPER(LEFT(A2,FIND(".",A2)-1))),"")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...