Формула Excel: Сокращайте имена или слова -

Содержание

Общая формула

=TEXTJOIN("",1,IF(ISNUMBER(MATCH(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)),ROW(INDIRECT("65:90")),0)),MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),""))

Резюме

Чтобы сократить текст, содержащий заглавные буквы, вы можете попробовать эту формулу массива, основанную на функции TEXTJOIN, новой функции, доступной в Office 365 и Excel 2019. Вы можете использовать этот подход для создания инициалов из имен или для создания сокращений. В этой формуле сохранятся только заглавные буквы, поэтому исходный текст должен включать слова с заглавной буквы. При необходимости вы можете использовать функцию ПРОПИСН для написания слов с заглавной буквы.

В показанном примере формула C5 имеет следующий вид:

=TEXTJOIN("",1,IF(ISNUMBER(MATCH(CODE(MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)),ROW(INDIRECT("65:90")),0)),MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1),""))

Объяснение

Работая изнутри, функция MID используется для преобразования строки в массив отдельных букв:

MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)

В этой части формулы MID, ROW, INDIRECT и LEN используются для преобразования строки в массив или буквы, как описано здесь.

MID возвращает массив всех символов в тексте.

(«W»; «i»; «l»; «l»; «i»; «a»; «m»; «»; «S»; «h»; «a»; «k»; «e ";" s ";" p ";" e ";" a ";" r ";" e ")

Этот массив передается в функцию CODE, которая выводит массив числовых кодов ascii, по одному для каждой буквы.

По отдельности ROW и INDIRECT используются для создания другого числового массива:

ROW(INDIRECT("65:90")

Это умный момент. Цифры от 65 до 90 соответствуют кодам ascii для всех заглавных букв между AZ. Этот массив входит в функцию ПОИСКПОЗ как поисковый массив, а исходный массив кодов ascii предоставляется как поисковое значение.

Затем ПОИСКПОЗ возвращает либо число (в зависимости от позиции), либо ошибку # Н / Д. Числа представляют собой заглавные буквы, поэтому функция ЕЧИСЛО используется вместе с функцией ЕСЛИ для фильтрации результатов. Только символы, код ascii которых находится между 65 и 90, будут включены в окончательный массив, который затем будет повторно собран с помощью функции TEXTJOIN для создания окончательного сокращения или акронима.

Хорошие ссылки

Получить инициалы от имени (Чанду)

Интересные статьи...