Как перевернуть число в Excel: от простых формул до VBA-скриптов

Задача перевернуть число в Microsoft Excel на первый взгляд кажется тривиальной, но на практике сталкивается с рядом подводных камней. Например, число 12345 должно превратиться в 54321, но стандартные функции программы не содержат готовой команды "развернуть". Почему так происходит? Потому что Excel оперирует числами как с математическими объектами, а не как с текстовыми строками — и это ключевой момент.

Многие пользователи пытаются решить задачу через формат ячеек или ручное редактирование, но такие методы либо не работают, либо требуют неоправданно много времени. Между тем, в арсенале Excel есть как минимум 5 эффективных способов перевернуть число — от элементарных формул для новичков до автоматизированных макросов для опытных пользователей. В этой статье мы разберём каждый из них, укажем на типичные ошибки и покажем, как адаптировать решения под конкретные задачи.

Особое внимание уделим случаям, когда число содержит ведущие нули (например, 0012332100), отрицательные значения или десятичные дроби. Эти нюансы часто становятся причиной сбоев в формулах, и мы научимся их обходить. Также вы узнаете, почему функция РАЗРЯДНОСТЬ() из категории "Инженерные" бесполезна для разворота чисел, несмотря на своё название — этот факт удивляет даже опытных аналитиков.

Прежде чем переходить к практике, проверьте версию вашего Excel. Все приведённые ниже методы работают в Excel 2010–2026 (включая Microsoft 365), но в старых версиях (например, Excel 2003) могут потребоваться корректировки. Если вы используете Google Таблицы, часть решений также применима — мы отметим такие случаи отдельно.

1. Способ для новичков: текстовая функция СТРОКА + ПСТР

Самый простой метод разворота числа основывается на преобразовании его в текст и последующем извлечении символов в обратном порядке. Здесь нам понадобятся две функции: СТРОКА() (или её английский аналог ROW()) и ПСТР() (MID()).

Формула выглядит так:

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

Где $A1 — ячейка с исходным числом. Введите эту формулу как формулу массива (в старых версиях Excel нажмите Ctrl+Shift+Enter, в новых — просто Enter), затем протяните её вниз на столько строк, сколько символов в числе.

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

  1. Функция ДЛСТР($A1) определяет длину числа (например, для 12345 это 5).
  2. СТРОКА(ДВССЫЛ("1:"&ДЛСТР($A1))) генерирует массив чисел от 1 до длины строки (1; 2; 3; 4; 5).
  3. ПСТР извлекает по одному символу с конца строки, начиная с последнего.

Чтобы объединить результаты в одну ячейку, используйте функцию СЦЕПИТЬ() (CONCATENATE()) или ТЕКСТСОЕДИНИТЬ() (TEXTJOIN()):

=ТЕКСТСОЕДИНИТЬ("";ИСТИНА;ПСТР($A1;ДЛСТР($A1)-СТРОКА(ДВССЫЛ("1:"&ДЛСТР($A1)))+1;1))
⚠️ Внимание: Если число содержит ведущие нули (например, 00123), Excel автоматически их обрезает. Чтобы сохранить нули, предварительно отформатируйте ячейку как текст (Формат ячеек → Текстовый) или добавьте апостроф перед числом: '00123.

Отформатировать ячейку с исходным числом как текст (если есть ведущие нули)

Проверить длину числа функцией ДЛСТР()

Ввести формулу как формулу массива (в старых версиях Excel)

Объединить результаты функцией ТЕКСТСОЕДИНИТЬ()-->

2. Альтернатива без массивов: функция РАЗДЕЛИТЬ + ТРАНСП

В Excel 365 и Excel 2021 появились новые функции, которые упрощают разворот чисел. Одна из них — РАЗДЕЛИТЬ() (TEXTSPLIT()), которая разбивает строку на массив символов. Сочетая её с ТРАНСП() (TRANSPOSE()) и ТЕКСТСОЕДИНИТЬ(), можно развернуть число без сложных конструкций.

Формула для одной ячейки:

=ТЕКСТСОЕДИНИТЬ("";ИСТИНА;ТРАНСП(РАЗДЕЛИТЬ(ТЕКСТ(A1;"0");;ИСТИНА)))

Здесь ТЕКСТ(A1;"0") гарантирует, что число отобразится с ведущими нулями (если они есть). Функция РАЗДЕЛИТЬ разбивает строку на отдельные символы, ТРАНСП меняет их ориентацию, а ТЕКСТСОЕДИНИТЬ склеивает обратно.

Преимущества метода:

  • 🔹 Не требует ввода как формулы массива.
  • 🔹 Работает с числами любой длины (включая 15+ символов).
  • 🔹 Сохраняет ведущие нули без дополнительных действий.

Ограничение: функция РАЗДЕЛИТЬ доступна только в последних версиях Excel. Для Excel 2019 и старше используйте метод из первого раздела.

Почему не работает функция РАЗРЯДНОСТЬ()?

Функция РАЗРЯДНОСТЬ() (LEN() в английской версии) возвращает количество значимых разрядов числа в двоичном формате, а не количество символов. Например, для числа 12345 она вернёт 15 (так как 12345 в двоичной системе — 11000000111001, что занимает 15 бит). Это не имеет никакого отношения к развороту текстового представления числа.

3. Разворот числа с десятичными дробями

Если число содержит десятичный разделитель (например, 123,4554,321), предыдущие методы дадут сбой. Здесь нужно разделить число на целую и дробную части, развернуть их отдельно, а затем объединить.

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

=ТЕКСТСОЕДИНИТЬ("";ИСТИНА;ТРАНСП(РАЗДЕЛИТЬ(ПОДСТАВИТЬ(ТЕКСТ(A1;"0,00");",";"|");;ИСТИНА)))

Разберём по шагам:

  1. ТЕКСТ(A1;"0,00") — преобразует число в текст с двумя знаками после запятой.
  2. ПОДСТАВИТЬ(...,",","|") — заменяет запятую на разделитель | (можно использовать любой символ, не встречающийся в числе).
  3. РАЗДЕЛИТЬ(...,;ИСТИНА) — разбивает строку на массив символов, игнорируя пустые ячейки.
  4. ТРАНСП и ТЕКСТСОЕДИНИТЬ — разворачивают и склеивают части.

Для англоязычных версий Excel (где разделитель — точка) замените "," на "." в формуле.

Пример работы:

Исходное числоФормулаРезультат
123,45=ТЕКСТСОЕДИНИТЬ("";ИСТИНА;ТРАНСП(РАЗДЕЛИТЬ(ПОДСТАВИТЬ(ТЕКСТ(A1;"0,00");",";"|");;ИСТИНА)))54,321
0,123—//—321,0
1000,01—//—10,0001
⚠️ Внимание: Если в числе используется точка как разделитель тысяч (например, 1.000,45), предварительно удалите точки функцией ПОДСТАВИТЬ(A1; "."; ""), иначе они будут восприняты как десятичные разделители.

Целые числа (без дробей)

Числа с десятичными дробями (0,123)

Числа с разделителями тысяч (1 000 или 1.000)

Другое-->

4. Разворот отрицательных чисел

Отрицательные числа (например, -12345-54321) требуют особого подхода. Главная задача — сохранить знак "минус" на месте, развернув только цифровую часть. Для этого используем комбинацию функций ЕСЛИ(), ЛЕВСИМВ() и ПРАВСИМВ().

Формула:

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

Логика:

  • 🔹 ЛЕВСИМВ(A1)="-" — проверяет, начинается ли строка с минуса.
  • 🔹 ПРАВСИМВ(A1;ДЛСТР(A1)-1) — извлекает цифровую часть без знака.
  • 🔹 РАЗДЕЛИТЬ и ТРАНСП — разворачивают цифры.
  • 🔹 ЕСЛИ — добавляет минус обратно, если он был.

Для чисел в формате (12345) (скобки вместо минуса) замените ЛЕВСИМВ(A1)="-" на ЛЕВСИМВ(A1)="(" и скорректируйте формулу соответственно.

5. Автоматизация через VBA: макрос для разворота

Для пользователей, которые регулярно сталкиваются с необходимостью разворачивать числа, оптимальным решением станет пользовательская функция на VBA. Она позволит разворачивать числа любой сложности (с минусами, дробями, ведущими нулями) одной командой.

Откройте редактор VBA (Alt + F11), вставьте новый модуль (Insert → Module) и добавьте следующий код:

Function REVERSE_NUMBER(rng As Range) As String

Dim str As String

Dim i As Integer

Dim reversed As String

str = CStr(rng.Value)

reversed = ""

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

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

Next i

REVERSE_NUMBER = reversed

End Function

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

  • 🔹 Работает со всеми форматами чисел (отрицательные, дробные, с разделителями).
  • 🔹 Сохраняет ведущие нули без дополнительных действий.
  • 🔹 Можно модифицировать под специфические задачи (например, игнорировать символы валюты).

Чтобы функция работала с десятичными дробями, замените строку reversed = reversed & Mid(str, i, 1) на:

    If Mid(str, i, 1) = Application.DecimalSeparator Or Mid(str, i, 1) = Application.ThousandsSeparator Then

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

Else

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

End If

Это гарантирует, что разделители останутся на своих местах.

⚠️ Внимание: При использовании VBA-макросов в файлах .xlsx сохраните документ как .xlsm (с поддержкой макросов), иначе функция не будет работать.

6. Разворот чисел в Google Таблицах

В Google Таблицах доступны те же текстовые функции, что и в Excel, но есть нюансы. Например, функция ТРАНСП здесь работает иначе, поэтому для разворота числа потребуется альтернативный подход.

Универсальная формула для Google Таблиц:

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

Где A1 — ячейка с числом. В отличие от Excel, здесь не нужно вводить формулу как массив — ARRAYFORMULA обрабатывает это автоматически.

Для чисел с десятичными дробями используйте:

=ARRAYFORMULA(CONCATENATE(MID(SUBSTITUTE(TEXT(A1;"0.00");".";"|");LEN(SUBSTITUTE(TEXT(A1;"0.00");".";"|"))-ROW(INDIRECT("1:"&LEN(SUBSTITUTE(TEXT(A1;"0.00");".";"|"))))+1;1)))

Ограничения Google Таблиц:

  • 🔹 Нет функции РАЗДЕЛИТЬ (аналог TEXTSPLIT появился только в 2023 году).
  • 🔹 VBA не поддерживается — макросы пишутся на Google Apps Script.
  • 🔹 Некоторые символы (например, разделители тысяч) могут отображаться некорректно.

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

Даже опытные пользователи Excel допускают ошибки при развороте чисел. Вот самые распространённые из них и способы их решения:

ОшибкаПричинаРешение
Формула возвращает #ЗНАЧ!Ячейка содержит текст, а не число.Используйте ТЕКСТ(A1;"0") для принудительного преобразования.
Ведущие нули исчезаютExcel интерпретирует число как числовой формат.Отформатируйте ячейку как текст или добавьте апостроф: '00123.
Десятичная запятая смещаетсяФормула не учитывает разделитель.Замените запятую на уникальный символ (например, |) перед разворотом.
Макрос не работаетФайл сохранён как .xlsx.Сохраните как .xlsm и включите поддержку макросов.
Отрицательное число разворачивается со знаком в концеФормула не учитывает положение минуса.Используйте ЕСЛИ() для проверки первого символа.

Ещё одна частая проблема — ограничение длины числа. Excel корректно обрабатывает числа до 15 знаков (для чисел с плавающей запятой). Если ваше число длиннее, оно будет автоматически округлено. В этом случае:

  • 🔹 Сохраните число как текст (добавив апостроф или отформатировав ячейку).
  • 🔹 Используйте VBA для обработки длинных строк.

8. Практическое применение: когда нужен разворот чисел?

На первый взгляд, разворот числа кажется искусственной задачей, но на практике он востребован в нескольких сценариях:

1. Анализ данных и проверка симметрии

  • 🔹 Поиск палиндромных чисел (чисел, которые читаются одинаково слева направо и справа налево, например, 12321).
  • 🔹 Проверка корректности введённых данных (например, серийные номера, где последняя цифра — контрольная сумма).

2. Обработка финансовых данных

  • 🔹 Разворот номеров счетов или транзакций для маскировки (например, в отчётах для сторонних аудиторов).
  • 🔹 Преобразование форматов дат, записанных как числа (например, 202605155154202 для дальнейшей обработки).

3. Работа с кодами и идентификаторами

  • 🔹 Разворот Штрихкодов EAN-13 для проверки контрольных цифр.
  • 🔹 Преобразование IP-адресов, записанных как числа (например, 192168001011010086129).

4. Криптография и шифрование

  • 🔹 Простейшие методы шифрования (например, разворот чисел в составе алгоритма Цезаря).
  • 🔹 Генерация псевдослучайных последовательностей на основе исходных данных.

В промышленных задачах разворот чисел часто комбинируют с другими функциями. Например, для проверки палиндромности числа можно использовать формулу:

=ЕСЛИ(A1=--ТЕКСТСОЕДИНИТЬ("";ИСТИНА;ТРАНСП(РАЗДЕЛИТЬ(ТЕКСТ(A1;"0");;ИСТИНА)));"Палиндром";"Не палиндром")

Здесь -- преобразует текст обратно в число для сравнения.

FAQ: Частые вопросы по развороту чисел в Excel

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

Да, но это ручной процесс:

  1. Скопируйте число в текстовый редактор (например, Блокнот).
  2. В большинстве редакторов есть функция "Обратить строку" (или используйте комбинацию клавиш).
  3. Вставьте результат обратно в Excel.

Минус метода: не подходит для обработки большого количества данных.

Почему после разворота число отображается как дата (например, 12.03.2026)?

Excel автоматически интерпретирует некоторые текстовые строки как даты. Чтобы этого избежать:

  • Отформатируйте ячейку с результатом как Текстовый формат.
  • Добавьте апостроф перед числом: '54321.
  • Используйте функцию ТЕКСТ() для явного преобразования.
Как развернуть число в столбце, если оно записано в несколько строк?

Если число разбито по ячейкам (например, 1 в A1, 2 в A2, 3 в A3), используйте формулу:

=ТЕКСТСОЕДИНИТЬ("";ИСТИНА;СОРТИРОВКА(A1:A3;-1))

Где СОРТИРОВКА(..., -1) сортирует значения в обратном порядке.

Можно ли развернуть число в Excel Online?

Да, все текстовые функции (ПСТР, ДЛСТР, ТЕКСТСОЕДИНИТЬ) работают в Excel Online, но:

  • Функция РАЗДЕЛИТЬ доступна только в последних версиях.
  • VBA-макросы не поддерживаются.
  • Формулы массива вводятся так же, как в настольной версии.
Как развернуть число в Power Query?

В Power Query (инструмент для импорта и преобразования данных) разворот числа выполняется через добавление пользовательского столбца:

  1. Выделите столбец с числом.
  2. Перейдите на вкладку Добавить столбец → Пользовательский столбец.
  3. Введите формулу: Text.Reverse(Text.From([Column1])), где [Column1] — имя вашего столбца.

Преимущество метода: обработка тысяч строк за секунды без формул.