Генерация имени пользователя из имени и фамилии в excel

введите описание изображения здесьКак я могу генерировать имена пользователей, используя первое слово имени, последнюю начальную и последние 4 цифры номера ссылки и без пробела или тире.

First Name: John Franklin
 Last Name: Smith Turner    
 Reference: 123456789
     Email: [email protected] <--Generated email all lowercase, no space

=LEFT(A2,FIND(" ",A2)-1)&LEFT(B2,1)&RIGHT(C2,4)&"@example.com"

Я попробовал следующее выше, но работает только для первого электронного письма, но остальные показывают #ЗНАЧ! ошибка

Ty!

Изменить: добавлен скриншот


person MaSx    schedule 25.01.2018    source источник
comment
изменить LEFT(A2,FIND(" ",A2)-1) на LEFT(A2,FIND(" ",A2 & " ")-1)   -  person Scott Craner    schedule 25.01.2018
comment
Как устроены ваши данные? Имя:, Фамилия:, Ссылка: и Электронная почта: в столбце A с данными, заполняемыми по всему листу горизонтально (например, в столбцах B, C, D, и т.д.)? Если бы вы могли добавить скриншот, это было бы невероятно полезно.   -  person TotsieMae    schedule 25.01.2018
comment
Я дал вам ответ, вы пробовали?   -  person Scott Craner    schedule 25.01.2018


Ответы (4)


=LOWER(LEFT(A2,FIND(" ",A2&" ")-1)&LEFT(B2,1)&RIGHT(C2,4)&"@example.com")

введите здесь описание изображения

person Scott Craner    schedule 25.01.2018

Ваша формула должна быть:

=LOWER(LEFT($A2,IFERROR(SEARCH(" ",$A2)-1,LEN($A2)))&LEFT($B2,1)&RIGHT($C2,4)&"@example.com")

Затем вы можете перетащить его вниз по столбцу D, чтобы получить желаемый результат.


Здесь я использовал его с тестовыми данными, которые я составил:

Результат

person TotsieMae    schedule 25.01.2018

Это помогает мне:

=LOWER(IF(ISERROR(FIND(" ",A2,1)),A2,LEFT(A2,FIND(" ",A2,1)-1)))&LEFT(B2,1)&RIGHT(C2,4)&"@example.com"
person infinitezero    schedule 25.01.2018
comment
Ваша первая функция LEFT учитывает только имя, состоящее из четырех букв, но вопрос ОП требует полного имени. Предполагая, что в этом наборе больше данных и что люди имеют более 4 букв в имени, это не сработает. - person TotsieMae; 25.01.2018
comment
Для дальнейшего объяснения и улучшения понимания ...: OP и @ScottCraner использовали функцию FIND для поиска первого пробела в имени. FIND возвращает числовое значение, указывающее, где был найден этот символ ( ) (в примере будет возвращено 5). Вычитая из этого 1, мы получаем 4, что затем сообщает функции LEFT, сколько символов нужно вернуть. SEARCH можно использовать вместо FIND, поскольку они идентичны, за исключением того, что SEARCH не чувствителен к регистру, а FIND — да. - person TotsieMae; 25.01.2018

Чтобы избежать неиспользуемых пробелов между словами в начале или в конце, включите в формулу функцию TRIM.

=LOWER(LEFT(TRIM(A2),FIND(" ",TRIM(A2)&" ")-1)&LEFT(TRIM(B2),1)&RIGHT(TRIM(C2),4)&"@example.com")

person vigilent    schedule 25.01.2018