Извлекайте инициалы из поля имени, добавляя периоды после каждого начального - PullRequest
1 голос
/ 20 июня 2019

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

Я пробовал два метода,видно на листе с образцами.

  1. Использование SPLIT и ARRAYFORMULA позволяет получить одну ячейку, но не может продолжаться вниз по столбцу.
  2. Используя 2 REGEXEXTRACT, можно получить первые 2 инициала и расширить до

Но можно ли получить произвольное количество слов для всего столбца, используя ArrayFormula?

Можно ли использовать REGEXEXTRACT для возврата первых букв многих слов?

Я также хотел бы поставить "." После инициалов.Пример для превращения Эда Уильямса в EW?

Ответы [ 3 ]

1 голос
/ 20 июня 2019

В дополнение к решению player0, это также может работать

=ArrayFormula(iferror(if(len(A:A), regexreplace(substitute(A:A&".", " ", ". "), "[^A-Z.\s]",),)))

enter image description here

1 голос
/ 20 июня 2019
=ARRAYFORMULA(TRANSPOSE(QUERY(TRANSPOSE(IF(LEN(A1:A), 
 IFERROR(REGEXEXTRACT(SPLIT(A1:A, " "), "."))&".", )),,999^99)))

0

0 голосов
/ 24 июня 2019
=ARRAYFORMULA(UPPER(REGEXREPLACE(A1:A6,"(\w)\S*\s*","$1. ")))
  • Захватывает первую букву (\w), за которой следуют не S символы темпа и s символы темпа
  • Замените все только группой захвата \w ($1) и периодом ..
  • При необходимости преобразуйте его в верхний регистр.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...