Примеры применения функции ПРОПНАЧ
Раздел функцийТекстовые
Название на английскомPROPER
ВолатильностьНе волатильная
Похожие функцииПРОПИСН, СТРОЧН
Схожие функции !SEMToolsИзменить регистр

Что делает эта функция?

Эта функция преобразует первую букву каждого слова в верхний регистр, а все последующие буквы — в нижний.

Исходный регистр букв при этом не имеет значения и не учитывается.

Разделителем слов считается любой символ, не являющийся буквой, т.е. это может быть не только пробел, но любой знак препинания, цифра или специальный символ.

Синтаксис

=ПРОПНАЧ(Текст)

Форматирование

Как и все текстовые функции, функция превращает числовые значения в строковый формат числа. Дата и дата-время при этом станут натуральными числами в текстовом формате, проценты будут переведены в десятичную дробь, а финансовые значения потеряют как единицу измерения, так и характерное форматирование.

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

Строковый формат на выходе легко распознается — результат применения функции в ячейке имеет выравнивание по левому краю, в отличие от чисел, которые имеют выравнивание по правому.

Пример применения. Делаем первое слово в ячейке с заглавной буквы

Как сделать первое слово с заглавной буквы в Excel? Не все слова, а только первое? В этом нам и поможет функция ПРОПНАЧ, но в комбинации с другими.

Алгоритмически задача решается в несколько простых шагов:

  1. Извлекаем из исходной строки первое слово
  2. Применяем к нему функцию ПРОПНАЧ
  3. Извлекаем из исходной строки оставшуюся от первого слова часть (иными словами, нужно удалить первое слово из ячейки и посмотреть на результат).
  4. Объединяем эти два фрагмента

Первый шаг подробно описан тут в примере 1:

Извлечь первое слово из ячейки в Excel с помощью ЛЕВСИМВ

А формула для ячейки A1 будет такой:

=ЛЕВСИМВ(A1;ПОИСК(" ";A1)-1)

Вторым шагом мы применим функцию ПРОПНАЧ к этому выражению:

=ПРОПНАЧ(ЛЕВСИМВ(A1;ПОИСК(" ";A1)-1))

Третий шаг — тут:

Удалить первое слово в ячейке Excel

Здесь формула будет такой:

=ЗАМЕНИТЬ(A1;1;ПОИСК(" ";A1);" ")

Ну а четвертый шаг — объединение этих выражений — можно совершить с помощью символа амперсанда:

=ПРОПНАЧ(ЛЕВСИМВ(A1;ПОИСК(" ";A1)-1)) & ЗАМЕНИТЬ(A1;1;ПОИСК(" ";A1);" ")

Но, к сожалению, эта формула еще не идеальна и не будет работать, если в ячейке всего одно слово (выдаст ошибку поиск пробела). Поэтому нам придется и ее обернуть функцией ЕСЛИОШИБКА и применить обычную функцию ПРОПНАЧ в случае такой ошибки:

=ЕСЛИОШИБКА(ПРОПНАЧ(ЛЕВСИМВ(A1;ПОИСК(" ";A1)-1)) & ЗАМЕНИТЬ(A1;1;ПОИСК(" ";A1);" ");ПРОПНАЧ(A1))

Идеальна ли эта формула для всех случаев? К сожалению, нет, т.к. ей присуща нехорошая особенность функции ПРОПНАЧ — она изменяет регистр невзирая на исходный.
Например, если первое слово является аббревиатурой и все буквы в нем заглавные, функция изменит в аббревиатуре регистр всех букв, кроме первой, на нижний.

Есть ли решение этой проблемы? Да, его предлагает моя надстройка !SEMTools для Excel.

Подробнее о разных операциях и возможностях надстройки смотрите тут — изменить регистр букв в Excel.

делаем первые буквы предложений заглавными