Я пытаюсь сгенерировать имя пользователя, используя одно поле имени в Excel, которое имеет имя и фамилию человека. Я открыт для того, каким будет имя пользователя, если оно интуитивно понятно для пользователя. Поля имени могут быть хитрыми, поскольку данные выглядят так:
Albert Abongo (2 names)
Stephen Michael Essuah Ackah (4 names)
Alhaji Iddrisu Abdul-KArim (3 names)
Я думаю, что мои идеальные имена пользователей для этих людей были бы
aabongo
sackah
aabdul-karim
macos
mac
microsoft-excel
sql
mheavers
источник
источник
(2 names)
часть строки?Ответы:
Попробуйте использовать следующее (с входными данными в A1):
=LOWER(LEFT(A1,1)&TRIM(RIGHT(SUBSTITUTE(A1," ",REPT(" ",LEN(A1))),LEN(A1))))
LOWER
: делает все выходные строчнымиLEFT(A1,1)
: вытягивает данные, начиная слева, на 1 символ.&
связывает две части вместеTRIM(RIGHT(SUBSTITUTE(A1," ",REPT(" ",LEN(A1))),(LEN(A1)))
SUBSTITUTE(A1," ",REPT(" ",LEN(A1)))
функция подсчитывает длину исходной строки и помещает одинаковое количество пространства , где существует каждое пространство(RIGHT(text,LEN(A1))
тянет, начиная справа, на длину исходной строкиTRIM
удаляет ведущие пробелыисточник
A1
в формуле наTRIM(A1)
.LEN(A1)
вместо255
всех случаев.Просто чтобы добавить к умному ответу @CameronAziz, если вы хотите избежать дублирования имен пользователей, вы можете добавить еще один столбец справа от этих имен пользователей (в столбце B в этом примере) и заполнить эту формулу:
Это добавит число справа от имени пользователя, если оно является дубликатом любых предыдущих имен пользователей.
источник