Как перевернуть цифру в Excel: от простых способов до автоматизации

Когда требуется перевернуть число и зачем это нужно

Переворачивание чисел в Microsoft Excel — задача, с которой сталкиваются пользователи при работе с кодами, шифрами или нестандартными форматами данных. Например, вам может понадобиться:

Инвертировать порядок цифр в номере документа (из "12345" сделать "54321") для проверки контрольных сумм;

Подготовить данные для специализированных систем, где требуется обратная последовательность;

Проанализировать числовые палиндромы (числа, одинаково читающиеся слева направо и справа налево, как 12321).

В отличие от текста, где переворот реализуется через стандартные функции, с числами приходится использовать обходные пути. Excel воспринимает "123" как математическую величину, а не как строку символов, поэтому прямых инструментов для разворота нет. Однако есть минимум 5 рабочих методов — от ручного ввода до автоматизации через VBA.

Важно учитывать, что перевернутое число может потерять ведущие нули (например, "00123" станет просто "321"). Если это критично, потребуются дополнительные шаги для сохранения формата.

Метод 1: Ручной ввод через функцию СЦЕПИТЬ (CONCATENATE)

Самый простой способ — разложить число на отдельные цифры и собрать их в обратном порядке. Подходит для разовых задач с небольшим количеством данных.

Допустим, исходное число находится в ячейке A1 (например, "1234"). В соседней ячейке введите формулу:

=СЦЕПИТЬ(

ПРАВСИМВ(A1;1);

ПРАВСИМВ(ЛЕВСИМВ(A1;ДЛСТР(A1)-1);1);

ПРАВСИМВ(ЛЕВСИМВ(A1;ДЛСТР(A1)-2);1);

ЛЕВСИМВ(A1;1)

)

Для английской версии Excel замените функции на CONCATENATE, RIGHT, LEFT и LEN соответственно. Формула работает только для 4-значных чисел. Для другой длины придётся корректировать количество строк ПРАВСИМВ.

  • ✅ Подходит для чисел с фиксированной длиной
  • ✅ Не требует макросов или надстроек
  • ❌ Трудоёмко для чисел с переменной длиной
  • ❌ Не сохраняет ведущие нули

Метод 2: Универсальная формула для чисел любой длины

Для динамического разворота чисел с произвольным количеством знаков используйте массивную формулу:

=ТЕКСТ(

СУММПРОИЗВ(

--(ПОСЛЕД(ПОВТОР(" ";10)&A1;10)<>"");{1;2;3;4;5;6;7;8;9;10}

);

"0"

)

Как это работает:

  1. Функция ПОВТОР(" ";10)&A1 добавляет 10 пробелов перед числом, чтобы гарантированно покрыть все возможные длины.
  2. ПОСЛЕД(...,10) извлекает последние 10 символов (включая пробелы).
  3. СУММПРОИЗВ умножает позиции ненулевых символов на их вес (1 для первой цифры, 2 для второй и т.д.).
  4. ТЕКСТ(..., "0") преобразует результат обратно в строку.

Эта формула обрабатывает числа длиной до 10 знаков. Для большей длины увеличьте количество пробелов и соответствующим образом расширьте массив {1;2;...}.

Почему формула возвращает число, а не текст?

По умолчанию Excel интерпретирует результат как числовой формат. Если вам нужна текстовая строка (например, для сохранения ведущих нулей), оберните всю формулу в ТЕКСТ(...) с форматом "0" или используйте =ТЕКСТ(формула_выше; "0").

Метод 3: Использование функции ПОДСТАВИТЬ для поэтапного разворота

Этот подход подходит для чисел с переменной длиной и сохраняет ведущие нули. Он основан на последовательной замене символов:

=ПОДСТАВИТЬ(

ПОДСТАВИТЬ(

ПОДСТАВИТЬ(

ПОДСТАВИТЬ(

ПОДСТАВИТЬ(

ПОДСТАВИТЬ(

ПОДСТАВИТЬ(

ПОДСТАВИТЬ(

ПОДСТАВИТЬ(

ПОДСТАВИТЬ(A1;1;"");2;"");3;"");4;"");5;"");6;"");7;"");8;"");9;"");0;""

)

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

=ПРАВСИМВ(A1;1)&ПРАВСИМВ(ЛЕВСИМВ(A1;ДЛСТР(A1)-1);1)&... [продолжите для всех цифр]

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

📊 Какой метод вы предпочитаете для разворота чисел?
Ручной ввод
Универсальная формула
Функция ПОДСТАВИТЬ
VBA-макрос

Метод 4: Макрос VBA для автоматизации

Если вам регулярно приходится переворачивать числа, оптимальное решение — создать пользовательскую функцию на VBA. Откройте редактор макросов (Alt + F11) и вставьте следующий код в модуль:

Function ReverseNumber(rng As Range) As String

Dim str As String, i As Integer, result As String

str = CStr(rng.Value)

For i = Len(str) To 1 Step -1

result = result & Mid(str, i, 1)

Next i

ReverseNumber = result

End Function

Теперь в любой ячейке можно использовать =ReverseNumber(A1), где A1 — адрес с исходным числом. Функция:

  • ✅ Работает с числами любой длины
  • ✅ Сохраняет ведущие нули
  • ✅ Обрабатывает текстовые строки с цифрами
  • ❌ Требует разрешения на выполнение макросов

Нажать Alt+F11 для открытия редактора|Вставить модуль (Insert → Module)|Скопировать код функции|Сохранить файл как .xlsm (с поддержкой макросов)|Разрешить макросы при открытии файла

-->

Для массовой обработки данных добавьте в модуль процедуру:

Sub ReverseSelectedNumbers()

Dim cell As Range

For Each cell In Selection

cell.Value = ReverseNumber(cell)

Next cell

End Sub

Теперь выделяйте диапазон ячеек и запускайте макрос ReverseSelectedNumbers через Alt + F8.

Метод 5: Power Query для переворота чисел в больших таблицах

Если вы работаете с Excel 2016+ или Office 365, инструмент Power Query позволяет автоматизировать процесс без VBA. Вот пошаговая инструкция:

  1. Выделите исходные данные и перейдите на вкладку Данные → Из таблицы/диапазона.
  2. В открывшемся редакторе Power Query добавьте настраиваемый столбец с формулой:
    =Text.Reverse(Text.From([Column1]))

    где [Column1] — название вашего столбца.

  3. Удалите исходный столбец и переименуйте новый (например, в "Перевёрнутое число").
  4. Нажмите Закрыть и загрузить.

Преимущества Power Query:

  • 🔄 Обрабатывает миллионы строк без замедления
  • 🔄 Сохраняет связь с исходными данными (обновляется при изменении)
  • 🔄 Поддерживает ведущие нули и текстовые форматы

Частые ошибки и как их избежать

При переворачивании чисел пользователи часто сталкиваются с типичными проблемами:

⚠️ Внимание: Если исходное число хранится как текст (например, с ведущим нулем), а вы применяете математическую функцию, Excel автоматически обрежет нули. Всегда проверяйте формат ячейки через Формат ячеек → Числовой формат.
Ошибка Причина Решение
Результат короче исходного числа Ведущие нули обрезаются при преобразовании в числовой формат Используйте текстовый формат или функцию ТЕКСТ()
Формула возвращает #ЗНАЧ! Ячейка содержит нечисловые символы (буквы, знаки) Очистите данные функцией ЗНАЧЕН() или ПОДСТАВИТЬ()
Макрос не работает Отключена поддержка макросов в настройках безопасности Перейдите в Файл → Параметры → Центр управления безопасностью → Параметры центра... и включите макросы
Power Query не распознаёт столбец Исходные данные не преобразованы в таблицу Выделите диапазон и нажмите Ctrl+T для создания таблицы

Ещё одна распространённая ловушка — региональные настройки. В русских версиях Excel функции называются ЛЕВСИМВ/ПРАВСИМВ, а в английских — LEFT/RIGHT. Если вы копируете формулы из интернета, убедитесь, что используете правильные имена.

Практические примеры применения

Разворот чисел чаще всего востребован в следующих сценариях:

  1. Проверка контрольных сумм: В банковских системах иногда требуется инвертировать номер счёта для валидации. Например, счёт "40817810999990001234" проверяется как "432100099999108704".
  2. Шифрование данных: Простейший метод скрыть числовую информацию — перевернуть её и добавить префикс. Например, из "12345" получить "X54321".
  3. Анализ палиндромов: Математики ищут числа-палиндромы (например, 12321) для исследований в теории чисел. Переворот помогает быстро идентифицировать такие комбинации.
  4. Интеграция с legacy-системами: Старые бухгалтерские программы могут требовать обратный порядок цифр в кодах номенклатуры.

Для автоматизации рутинных задач комбинируйте методы. Например:

  1. Используйте Power Query для первичной обработки больших массивов.
  2. Применяйте VBA для сложной логики (например, разворот только чётных цифр).
  3. Добавляйте условное форматирование, чтобы выделять палиндромы зелёным цветом.
Как найти все палиндромы в столбце?

Создайте вспомогательный столбец с формулой сравнения исходного числа и перевёрнутого:

=ЕСЛИ(A1=ReverseNumber(A1);"Палиндром";"")

Затем примените фильтр по значению "Палиндром".

FAQ: Ответы на популярные вопросы

Можно ли перевернуть число без потери ведущих нулей?

Да, для этого нужно:

  1. Преобразовать число в текстовый формат с помощью ТЕКСТ(A1; "0") или '01234 (апостроф перед числом).
  2. Применить любой метод разворота к текстовой строке.

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

Почему моя формула работает только для 4-значных чисел?

Скорее всего, вы используете метод с фиксированным количеством функций ПРАВСИМВ/LEFT. Для универсального решения:

  • Используйте массивную формулу (Метод 2).
  • Или создайте VBA-функцию (Метод 4), которая динамически определяет длину строки.
Как перевернуть число в Google Sheets?

В Google Таблицах синтаксис функций отличается. Используйте:

=CONCATENATE(

ARRAYFORMULA(MID(A1; LEN(A1)-ROW(INDIRECT("1:"&LEN(A1)))+1; 1))

)

Или создайте скрипт на Google Apps Script (аналог VBA):

function reverseNumber(input) {

return input.toString().split("").reverse().join("");

}

Можно ли развернуть дробные числа (например, 123.45 → 54.321)?

Да, но потребуется отдельная обработка целой и дробной частей. Пример формулы:

=ПОДСТАВИТЬ(

ReverseNumber(ЛЕВСИМВ(A1;НАЙТИ(".";A1)-1)) & "." &

ReverseNumber(ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(".";A1)));

"."; ","

)

Здесь ReverseNumber — пользовательская функция из Метода 4. Замена точки на запятую нужна для российского формата чисел.

Как отменить разворот и вернуть исходное число?

Если вы применили разворот через:

  • Формулу — просто удалите столбец с результатом.
  • VBA-макрос — запустите его повторно (двойной разворот вернёт исходное значение).
  • Power Query — отмените последний шаг в редакторе запросов.

Для надёжности сохраняйте исходные данные в отдельном столбце или на другом листе.