Как сократить ФИО в Excel: от простых формул до автоматизации

Работа с базой данных сотрудников, клиентов или студентов в Microsoft Excel часто требует приведения полных фамилий, имён и отчеств к сокращённому формату. Например, вместо «Иванов Петр Сидорович» нужно получить «Иванов П.С.» или «И.П. Сидоров». Вручную редактировать сотни строк — утомительно и чревато ошибками. К счастью, в Excel есть несколько способов автоматизировать этот процесс: от простых текстовых функций до мощных формул и даже макросов на VBA.

В этой статье мы разберём все актуальные методы сокращения ФИО — от базовых до продвинутых. Вы узнаете, как:

  • 🔹 Использовать стандартные функции ЛЕВСИМВ, ПРАВСИМВ и ПСТР для извлечения инициалов;
  • 🔹 Применять формулы массивов для обработки нестандартных форматов ФИО;
  • 🔹 Автоматизировать процесс с помощью Power Query и VBA;
  • 🔹 Избежать типичных ошибок при работе с русскими именами и двойными фамилиями.

Независимо от версии Excel (2010, 2016, 2019 или Microsoft 365), вы найдёте здесь рабочие решения. А если вам нужно сократить ФИО в Google Таблицах — в конце статьи есть отдельный раздел с адаптированными формулами.

1. Базовый метод: функции ЛЕВСИМВ, ПРАВСИМВ и ПСТР

Самый простой способ сократить ФИО — использовать комбинацию текстовых функций. Предположим, что полное ФИО записано в ячейке A1 в формате «Фамилия Имя Отчество» (например, «Петров Иван Сергеевич»). Нам нужно получить «Петров И.С.» или «И.С. Петров».

Для первого варианта («Фамилия И.О.») используйте формулу:

=ЛЕВСИМВ(A1;ПОИСК(" ";A1)-1)&" "&ЛЕВСИМВ(ПСТР(A1;ПОИСК(" ";A1)+1;255);1)&"."&ЛЕВСИМВ(ПСТР(A1;ПОИСК(" ";A1;ПОИСК(" ";A1)+1)+1;255);1)&"."

Разберём, как это работает:

  • 📌 ПОИСК(" ";A1) — находит позицию первого пробела (конец фамилии).
  • 📌 ЛЕВСИМВ(A1;ПОИСК(" ";A1)-1) — извлекает фамилию.
  • 📌 ПСТР с параметром ПОИСК(" ";A1)+1 — извлекает имя, начиная с позиции после первого пробела.
  • 📌 Аналогично для отчества используется ПОИСК(" ";A1;ПОИСК(" ";A1)+1) — поиск второго пробела.

Для формата «И.О. Фамилия» формула будет немного другой:

=ЛЕВСИМВ(ПСТР(A1;ПОИСК(" ";A1)+1;255);1)&"."&ЛЕВСИМВ(ПСТР(A1;ПОИСК(" ";A1;ПОИСК(" ";A1)+1)+1;255);1)&"."&" "&ЛЕВСИМВ(A1;ПОИСК(" ";A1)-1)
⚠️ Внимание: Эти формулы работают только если ФИО записано строго в формате «Фамилия Имя Отчество» с одним пробелом между словами. Если в данных есть двойные фамилии (например, «Иванов-Петров») или лишние пробелы, результат будет некорректным.

2. Универсальная формула для любых форматов ФИО

Если ваши данные нестандартны — например, встречаются двойные фамилии, отсутствует отчество или есть лишние пробелы — используйте более гибкую формулу с функцией ПОДСТАВИТЬ для очистки данных и ТЕКСТПОСЛЕ (в новых версиях Excel).

Для Excel 2019 и новее (включая Microsoft 365):

=ЛЕВСИМВ(ПОДСТАВИТЬ(A1;"  ":" ");ПОИСК(" ";ПОДСТАВИТЬ(A1;"  ":" "))-1) &

" " &

ЛЕВСИМВ(ТЕКСТПОСЛЕ(ПОДСТАВИТЬ(A1;" ":" ");" ";1);1) & "." &

ЕСЛИ(ЕЧИСЛО(ПОИСК(" ";ТЕКСТПОСЛЕ(ПОДСТАВИТЬ(A1;" ":" ");" ";1)));ЛЕВСИМВ(ТЕКСТПОСЛЕ(ПОДСТАВИТЬ(A1;" ":" ");" ";2);1)&".";"")

Эта формула:

  • 🧹 Удаляет двойные пробелы с помощью ПОДСТАВИТЬ(A1;" ":" ");
  • 🔍 Извлекает фамилию до первого пробела;
  • 📝 Использует ТЕКСТПОСЛЕ для извлечения имени и отчества;
  • 🔄 Проверяет наличие отчества с помощью ЕСЛИ(ЕЧИСЛО(ПОИСК(...))).

Для старых версий Excel (2010–2016) замените ТЕКСТПОСЛЕ на комбинацию ПРАВСИМВ и ПСТР:

=ЛЕВСИМВ(ПОДСТАВИТЬ(A1;"  ":" ");ПОИСК(" ";ПОДСТАВИТЬ(A1;"  ":" "))-1) &

" " &

ЛЕВСИМВ(ПСТР(ПОДСТАВИТЬ(A1;" ":" ");ПОИСК(" ";ПОДСТАВИТЬ(A1;" ":" "))+1;255);1) & "." &

ЕСЛИ(ЕЧИСЛО(ПОИСК(" ";ПСТР(ПОДСТАВИТЬ(A1;" ":" ");ПОИСК(" ";ПОДСТАВИТЬ(A1;" ":" "))+1;255)));ЛЕВСИМВ(ПРАВСИМВ(ПОДСТАВИТЬ(A1;" ":" "));1)&".";"")

📊 Какой формат сокращения ФИО вам нужен чаще?
Фамилия И.О. (Петров И.С.)
И.О. Фамилия (И.С. Петров)
Только инициалы (И.С.)
Другой вариант

3. Обработка ФИО с помощью Power Query

Если вам нужно сократить ФИО в большом файле (тысячи строк), лучше использовать Power Query — инструмент для преобразования данных, доступный в Excel 2016 и новее. Он позволяет очистить данные от лишних пробелов, разделить ФИО на отдельные столбцы и затем объединить их в нужном формате.

Пошаговая инструкция:

  1. Выделите столбец с ФИО и перейдите на вкладку Данные → Из таблицы/диапазонаMicrosoft 365Данные → Получить данные → Из таблицы/диапазона).
  2. В открывшемся редакторе Power Query выберите столбец с ФИО, затем нажмите Преобразовать → Разделить столбец → По разделителю.
  3. В качестве разделителя укажите Пробел и выберите вариант Разделить на строки максимально возможное число раз.
  4. У вас появятся три новых столбца: Column1 (фамилия), Column2 (имя), Column3 (отчество).
  5. Добавьте пользовательский столбец с формулой:
    = [Column1] & " " & Text.Start([Column2], 1) & "." & Text.Start([Column3], 1) & "."
  6. Удалите ненужные столбцы (Column2 и Column3) и нажмите Закрыть и загрузить.

Power Query автоматически создаст новую таблицу с сокращёнными ФИО. Преимущество этого метода — возможность повторного использования шагов преобразования при обновлении исходных данных.

Удалить лишние пробелы в начале/конце ячеек|Проверить отсутствие двойных фамилий (например, Иванов-Петров)|Убедиться, что все ФИО записаны в одном формате (с отчеством или без)|Создать резервную копию исходного файла-->

4. Автоматизация с помощью VBA-макроса

Если вам часто приходится сокращать ФИО, имеет смысл написать макрос на VBA. Он позволит обработать данные в один клик и гибко настраивать формат вывода.

Макрос для сокращения ФИО до формата «Фамилия И.О.»:

Sub ShortenFIO()

Dim rng As Range

Dim cell As Range

Dim fullName As String

Dim parts() As String

Dim result As String

' Выбираем диапазон с ФИО (например, столбец A)

Set rng = Selection

For Each cell In rng

fullName = Trim(cell.Value)

If fullName <> "" Then

' Разделяем ФИО по пробелам

parts = Split(fullName, " ")

' Проверяем количество частей (фамилия + имя + отчество)

If UBound(parts) >= 2 Then

result = parts(0) & " " & Left(parts(1), 1) & "." & Left(parts(2), 1) & "."

ElseIf UBound(parts) = 1 Then

result = parts(0) & " " & Left(parts(1), 1) & "."

Else

result = fullName

End If

' Записываем результат в соседнюю ячейку

cell.Offset(0, 1).Value = result

End If

Next cell

End Sub

Как использовать макрос:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Выделите столбец с ФИО в Excel и запустите макрос (Alt + F8 → ShortenFIO → Выполнить).
  4. Результат появится в соседнем столбце.

Для формата «И.О. Фамилия» замените строку с result на:

result = Left(parts(1), 1) & "." & Left(parts(2), 1) & ". " & parts(0)
⚠️ Внимание: Перед запуском макроса сохраните файл в формате .xlsm (с поддержкой макросов), иначе код не будет работать. Также убедитесь, что в Настройках Excel → Центр управления безопасностью → Параметры центра управления безопасностью → Параметры макросов выбрано Включить все макросы (только для доверенных файлов!).

5. Обработка нестандартных случаев: двойные фамилии, отсутствие отчества

Русские ФИО часто содержат двойные фамилии (например, «Иванов-Петров Сергей Александрович») или могут быть записаны без отчества («Сидоров Иван»). Стандартные формулы в таких случаях дают сбой. Рассмотрим, как обработать эти исключения.

Решение для двойных фамилий:

Используйте формулу с проверкой на наличие дефиса:

=ЕСЛИ(ЕЧИСЛО(ПОИСК("-";A1));

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

" " &

ЛЕВСИМВ(ПСТР(A1;ПОИСК(" ";A1)+1;255);1) & "." &

ЛЕВСИМВ(ПСТР(A1;ПОИСК(" ";A1;ПОИСК(" ";A1)+1)+1;255);1) & ".";

' Здесь вставляем стандартную формулу для обычных ФИО

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

" " &

ЛЕВСИМВ(ПСТР(A1;ПОИСК(" ";A1)+1;255);1) & "." &

ЕСЛИ(ЕЧИСЛО(ПОИСК(" ";A1;ПОИСК(" ";A1)+1));

ЛЕВСИМВ(ПСТР(A1;ПОИСК(" ";A1;ПОИСК(" ";A1)+1)+1;255);1) & ".";

"")

)

Решение для ФИО без отчества:

Если отчество может отсутствовать, добавьте проверку на количество пробелов:

=ЕСЛИ(ДЛСТР(ПОДСТАВИТЬ(A1;" ";""))=ДЛСТР(A1)-1;

' ФИО без отчества (один пробел)

ЛЕВСИМВ(A1;ПОИСК(" ";A1)-1) & " " & ЛЕВСИМВ(ПРАВСИМВ(A1);1) & ".";

' ФИО с отчеством (два пробела)

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

" " &

ЛЕВСИМВ(ПСТР(A1;ПОИСК(" ";A1)+1;255);1) & "." &

ЛЕВСИМВ(ПРАВСИМВ(A1);1) & "."

)

Критическая ошибка: если в данных есть пустые ячейки или ячейки с одним словом (например, только фамилия), стандартные формулы вернут ошибочный результат. Всегда добавляйте проверку на пустоту с помощью ЕСЛИ(A1="";"";формула).

Как обработать ФИО с несколькими пробелами?

Если в ячейке есть лишние пробелы (например, " Иванов Иван Петрович "), сначала очистите данные с помощью функции СЖПРОБЕЛЫ:

=СЖПРОБЕЛЫ(A1)

Затем применяйте формулы сокращения к результату.

6. Сокращение ФИО в Google Таблицах

Формулы в Google Таблицах аналогичны Excel, но используют английские названия функций. Например, вместо ЛЕВСИМВLEFT, вместо ПСТРMID.

Формула для формата «Фамилия И.О.»:

=LEFT(A1; FIND(" "; A1)-1) &

" " &

LEFT(MID(A1; FIND(" "; A1)+1; LEN(A1)); 1) & "." &

LEFT(MID(A1; FIND(" "; A1; FIND(" "; A1)+1)+1; LEN(A1)); 1) & "."

Формула для формата «И.О. Фамилия»:

=LEFT(MID(A1; FIND(" "; A1)+1; LEN(A1)); 1) & "." &

LEFT(MID(A1; FIND(" "; A1; FIND(" "; A1)+1)+1; LEN(A1)); 1) & ". " &

LEFT(A1; FIND(" "; A1)-1)

В Google Таблицах также доступна функция SPLIT для разделения ФИО на части, но она возвращает массив, поэтому её удобнее использовать в комбинации с ARRAYFORMULA.

Пример с SPLIT:

=ARRAYFORMULA(

IFERROR(

SPLIT(A1; " ")&" " &

LEFT(INDEX(SPLIT(A1; " ");;2);1) & "." &

LEFT(INDEX(SPLIT(A1; " ");;3);1) & ".";

""

)

)

7. Типичные ошибки и как их избежать

При сокращении ФИО в Excel пользователи часто сталкиваются с типичными проблемами. Вот самые распространённые из них и способы их решения:

Ошибка Причина Решение
#ЗНАЧ! в ячейке с формулой ФИО записано не в формате «Фамилия Имя Отчество» (например, только фамилия или имя с отчеством без фамилии). Добавьте проверку на количество пробелов или используйте ЕСЛИОШИБКА.
Некорректные инициалы (например, «Иванов Ив.С.» вместо «Иванов И.С.») Формула извлекает две первые буквы имени вместо одной. Проверьте, нет ли лишних пробелов в исходных данных. Используйте СЖПРОБЕЛЫ.
Отсутствует отчество в результате, хотя оно есть в исходных данных Формула не учитывает третий элемент в разделённом ФИО. Добавьте проверку на наличие второго пробела с помощью ПОИСК(" ";A1;ПОИСК(" ";A1)+1).
Макрос не работает Файл сохранён в формате .xlsx без поддержки макросов. Сохраните файл как .xlsm и включите макросы в настройках безопасности.
Power Query не разделяет ФИО корректно В данных есть табуляции или неразрывные пробелы вместо обычных. Замените все разделители на стандартные пробелы с помощью ПОДСТАВИТЬ.
⚠️ Внимание: Если вы работаете с данными из внешних источников (например, выгрузка из 1С или CRM), сначала проверьте их на наличие скрытых символов (например, неразрывных пробелов CHAR(160)). Для очистки используйте формулу:
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;СИМВОЛ(160);" ");СИМВОЛ(9);" ")

где СИМВОЛ(9) — табуляция, а СИМВОЛ(160) — неразрывный пробел.

FAQ: Частые вопросы по сокращению ФИО в Excel

Можно ли сократить ФИО без использования формул?

Да, можно использовать Power Query или VBA-макрос. Также в новых версиях Excel (2019+) доступна функция ТЕКСТПОСЛЕ, которая упрощает извлечение частей ФИО. Однако без формул или скриптов автоматизировать процесс невозможно — придётся редактировать вручную.

Как сократить ФИО, если имя и отчество записаны через тире (например, «Иванов Иван-Петр Сергеевич»)?

Используйте формулу с заменой тире на пробел перед обработкой:

=ЛЕВСИМВ(ПОДСТАВИТЬ(A1;"-":" ");ПОИСК(" ";ПОДСТАВИТЬ(A1;"-":" "))-1) &

" " &

ЛЕВСИМВ(ПСТР(ПОДСТАВИТЬ(A1;"-":" ");ПОИСК(" ";ПОДСТАВИТЬ(A1;"-":" "))+1;255);1) & "." &

ЕСЛИ(ЕЧИСЛО(ПОИСК(" ";ПОДСТАВИТЬ(A1;"-":" ");ПОИСК(" ";ПОДСТАВИТЬ(A1;"-":" "))+1));

ЛЕВСИМВ(ПСТР(ПОДСТАВИТЬ(A1;"-":" ");ПОИСК(" ";ПОДСТАВИТЬ(A1;"-":" ");ПОИСК(" ";ПОДСТАВИТЬ(A1;"-":" "))+1)+1;255);1) & ".";

"")

Почему формула возвращает #ИМЯ? вместо результата?

Ошибка #ИМЯ? означает, что Excel не распознаёт имя функции. Возможные причины:

  • 🔹 Вы используете английскую версию Excel, но вводите русские названия функций (например, ЛЕВСИМВ вместо LEFT).
  • 🔹 Опечатка в названии функции (например, ЛЕВСИМВ вместо ЛЕВСИМВ).
  • 🔹 Отсутствует закрывающая скобка в формуле.

Проверьте синтаксис и замените русские функции на английские, если необходимо.

Как сократить ФИО в формате «Имя Отчество Фамилия» (например, «Иван Петрович Сидоров»)?

Используйте формулу:

=ПРАВСИМВ(A1;ДЛСТР(A1)-ПОИСК(" ";A1;ПОИСК(" ";A1)+1)) &

" " &

ЛЕВСИМВ(A1;1) & "." &

ЛЕВСИМВ(ПСТР(A1;ПОИСК(" ";A1)+1;255);1) & "."

Она извлекает фамилию как последнее слово, а затем берёт первые буквы имени и отчества.

Можно ли сократить ФИО с учётом регистра (например, «иванов и.с.» вместо «Иванов И.С.»)?

Да, используйте функции ПРОПИСН (для первой буквы) и СТРОЧН (для остальных). Например:

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

" " &

ПРОПИСН(ЛЕВСИМВ(ПСТР(A1;ПОИСК(" ";A1)+1;1);1)) & "." &

ПРОПИСН(ЛЕВСИМВ(ПРАВСИМВ(A1);1)) & "."