excel - generuje nazwę użytkownika z pola pełnej nazwy

3

Próbuję wygenerować nazwę użytkownika za pomocą pojedynczego pola w programie Excel, które ma imię i nazwisko osoby. Jestem otwarty na to, jaka byłaby nazwa użytkownika, pod warunkiem, że jest ona intuicyjna dla użytkownika. Pola nazw mogą być trudne, ponieważ dane wyglądają tak:

Albert Abongo (2 names)
Stephen Michael Essuah Ackah (4 names)
Alhaji Iddrisu Abdul-KArim (3 names)

Sądzę, że moje idealne nazwy użytkowników dla tych osób byłyby

aabongo
sackah
aabdul-karim
wahacze
źródło
1
jest (2 names)częścią ciągu?
Cameron Aziz,
1
Czy masz (lub może masz) użytkowników o tej samej nazwie? Jeśli tak, każde rozwiązanie musi mieć wbudowaną strategię unikania zduplikowanych nazw użytkowników.
Excellll,

Odpowiedzi:

4

Spróbuj użyć następujących (z danymi wejściowymi w A1):

=LOWER(LEFT(A1,1)&TRIM(RIGHT(SUBSTITUTE(A1," ",REPT(" ",LEN(A1))),LEN(A1))))

  • LOWER: sprawia, że ​​wszystkie dane wyjściowe są małe
  • LEFT(A1,1): ciągnie dane, zaczynając od lewej, na 1 znak.
  • & łączy dwie części razem
  • TRIM(RIGHT(SUBSTITUTE(A1," ",REPT(" ",LEN(A1))),(LEN(A1)))
    • SUBSTITUTE(A1," ",REPT(" ",LEN(A1)))funkcja zlicza długość oryginalnego łańcucha i umieszcza taką samą liczbę miejsc, w których istnieje każda przestrzeń
    • następnie (RIGHT(text,LEN(A1))ciągnie, zaczynając od prawej, na długość oryginalnego łańcucha
    • TRIM usuwa wiodące spacje
Cameron Aziz
źródło
Byłaby to lepsza odpowiedź i bardziej zgodna z etosem stosu, gdybyś wyjaśnił DLACZEGO.
Julian Knight
@JulianKnight lepiej?
Cameron Aziz,
Jeśli którakolwiek z nazw zawiera końcowe spacje, musisz zastąpić każde wystąpienie A1formuły znakiem TRIM(A1).
Excellll,
@CameronAziz: Nice one.
Julian Knight
1
Sugeruję używanie LEN(A1)zamiast 255we wszystkich przypadkach.
Excellll,
2

Aby dodać do sprytnej odpowiedzi @CameronAziz, jeśli chcesz uniknąć duplikowania nazw użytkowników, możesz dodać kolejną kolumnę po prawej stronie tych nazw użytkowników (w kolumnie B w tym przykładzie) i wypełnić tę formułę:

=B1&IF(COUNTIF($B$1:B1,B1)>1,COUNTIF($B$1:B1,B1),"")

Spowoduje to dodanie liczby po prawej stronie nazwy użytkownika, jeśli jest duplikatem poprzednich nazw użytkowników.

wprowadź opis zdjęcia tutaj

Excellll
źródło