Задача перевернуть число в Microsoft Excel на первый взгляд кажется тривиальной, но на практике сталкивается с рядом подводных камней. Например, число 12345 должно превратиться в 54321, но стандартные функции программы не содержат готовой команды "развернуть". Почему так происходит? Потому что Excel оперирует числами как с математическими объектами, а не как с текстовыми строками — и это ключевой момент.
Многие пользователи пытаются решить задачу через формат ячеек или ручное редактирование, но такие методы либо не работают, либо требуют неоправданно много времени. Между тем, в арсенале Excel есть как минимум 5 эффективных способов перевернуть число — от элементарных формул для новичков до автоматизированных макросов для опытных пользователей. В этой статье мы разберём каждый из них, укажем на типичные ошибки и покажем, как адаптировать решения под конкретные задачи.
Особое внимание уделим случаям, когда число содержит ведущие нули (например, 00123 → 32100), отрицательные значения или десятичные дроби. Эти нюансы часто становятся причиной сбоев в формулах, и мы научимся их обходить. Также вы узнаете, почему функция РАЗРЯДНОСТЬ() из категории "Инженерные" бесполезна для разворота чисел, несмотря на своё название — этот факт удивляет даже опытных аналитиков.
Прежде чем переходить к практике, проверьте версию вашего Excel. Все приведённые ниже методы работают в Excel 2010–2026 (включая Microsoft 365), но в старых версиях (например, Excel 2003) могут потребоваться корректировки. Если вы используете Google Таблицы, часть решений также применима — мы отметим такие случаи отдельно.
1. Способ для новичков: текстовая функция СТРОКА + ПСТР
Самый простой метод разворота числа основывается на преобразовании его в текст и последующем извлечении символов в обратном порядке. Здесь нам понадобятся две функции:
СТРОКА() (или её английский аналог ROW()) и ПСТР() (MID()).
Формула выглядит так:
=ПСТР($A1;ДЛСТР($A1)-СТРОКА(ДВССЫЛ("1:"&ДЛСТР($A1)))+1;1)
Где $A1 — ячейка с исходным числом. Введите эту формулу как формулу массива (в старых версиях Excel нажмите Ctrl+Shift+Enter, в новых — просто Enter), затем протяните её вниз на столько строк, сколько символов в числе.
Как это работает:
- Функция
ДЛСТР($A1)определяет длину числа (например, для 12345 это 5). СТРОКА(ДВССЫЛ("1:"&ДЛСТР($A1)))генерирует массив чисел от 1 до длины строки (1; 2; 3; 4; 5).ПСТРизвлекает по одному символу с конца строки, начиная с последнего.
Чтобы объединить результаты в одну ячейку, используйте функцию СЦЕПИТЬ() (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,45 → 54,321), предыдущие методы дадут сбой. Здесь нужно разделить число на целую и дробную части, развернуть их отдельно, а затем объединить.
Универсальная формула для чисел с запятой:
=ТЕКСТСОЕДИНИТЬ("";ИСТИНА;ТРАНСП(РАЗДЕЛИТЬ(ПОДСТАВИТЬ(ТЕКСТ(A1;"0,00");",";"|");;ИСТИНА)))
Разберём по шагам:
ТЕКСТ(A1;"0,00")— преобразует число в текст с двумя знаками после запятой.ПОДСТАВИТЬ(...,",","|")— заменяет запятую на разделитель|(можно использовать любой символ, не встречающийся в числе).РАЗДЕЛИТЬ(...,;ИСТИНА)— разбивает строку на массив символов, игнорируя пустые ячейки.ТРАНСПиТЕКСТСОЕДИНИТЬ— разворачивают и склеивают части.
Для англоязычных версий 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. Обработка финансовых данных
- 🔹 Разворот номеров счетов или транзакций для маскировки (например, в отчётах для сторонних аудиторов).
- 🔹 Преобразование форматов дат, записанных как числа (например, 20260515 → 5154202 для дальнейшей обработки).
3. Работа с кодами и идентификаторами
- 🔹 Разворот Штрихкодов EAN-13 для проверки контрольных цифр.
- 🔹 Преобразование IP-адресов, записанных как числа (например, 19216800101 → 1010086129).
4. Криптография и шифрование
- 🔹 Простейшие методы шифрования (например, разворот чисел в составе алгоритма Цезаря).
- 🔹 Генерация псевдослучайных последовательностей на основе исходных данных.
В промышленных задачах разворот чисел часто комбинируют с другими функциями. Например, для проверки палиндромности числа можно использовать формулу:
=ЕСЛИ(A1=--ТЕКСТСОЕДИНИТЬ("";ИСТИНА;ТРАНСП(РАЗДЕЛИТЬ(ТЕКСТ(A1;"0");;ИСТИНА)));"Палиндром";"Не палиндром")
Здесь -- преобразует текст обратно в число для сравнения.
FAQ: Частые вопросы по развороту чисел в Excel
Можно ли развернуть число без использования формул?
Да, но это ручной процесс:
- Скопируйте число в текстовый редактор (например, Блокнот).
- В большинстве редакторов есть функция "Обратить строку" (или используйте комбинацию клавиш).
- Вставьте результат обратно в 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 (инструмент для импорта и преобразования данных) разворот числа выполняется через добавление пользовательского столбца:
- Выделите столбец с числом.
- Перейдите на вкладку
Добавить столбец → Пользовательский столбец. - Введите формулу:
Text.Reverse(Text.From([Column1])), где[Column1]— имя вашего столбца.
Преимущество метода: обработка тысяч строк за секунды без формул.