excel - сгенерировать имя пользователя из поля полного имени


3

Я пытаюсь сгенерировать имя пользователя, используя одно поле имени в Excel, которое имеет имя и фамилию человека. Я открыт для того, каким будет имя пользователя, если оно интуитивно понятно для пользователя. Поля имени могут быть хитрыми, поскольку данные выглядят так:

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

Я думаю, что мои идеальные имена пользователей для этих людей были бы

aabongo
sackah
aabdul-karim

1
это (2 names)часть строки?
Кэмерон Азиз

1
Есть ли у вас (или, возможно, у вас) пользователи с таким же именем? Если это так, любое решение должно иметь встроенную стратегию для избежания дублирования имен пользователей.
Excellll

Ответы:


4

Попробуйте использовать следующее (с входными данными в 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 удаляет ведущие пробелы

Если бы вы объяснили ПОЧЕМУ, было бы лучше ответить на этот вопрос и лучше соответствовать духу стека.
Джулиан Найт

@JulianKnight лучше?
Кэмерон Азиз

Если у какого-либо из имен есть завершающие пробелы, вам нужно заменить каждый экземпляр A1в формуле на TRIM(A1).
Excellll

@CameronAziz: Хороший.
Джулиан Найт

1
Я предлагаю использовать LEN(A1)вместо 255всех случаев.
Excellll

2

Просто чтобы добавить к умному ответу @CameronAziz, если вы хотите избежать дублирования имен пользователей, вы можете добавить еще один столбец справа от этих имен пользователей (в столбце B в этом примере) и заполнить эту формулу:

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

Это добавит число справа от имени пользователя, если оно является дубликатом любых предыдущих имен пользователей.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.