Зачем может понадобиться замена чисел на буквы?
Представьте: у вас таблица с числовыми кодами товаров, где 1 = "Ноутбук", 2 = "Монитор", а 3 = "Клавиатура". Или нужно преобразовать цифры в римские числа для нумерации глав в отчёте. А может, вы работаете с бухгалтерскими документами, где суммы прописью — обязательное требование. Всё это случаи, когда Microsoft Excel должен "перевести" цифры в текстовый формат.
В этой статье разберём 5 способов преобразования чисел в буквы — от элементарных (подойдёт даже школьнику) до продвинутых (для автоматизации рутинных задач). Вы узнаете, как:
- 🔄 Использовать встроенные функции
ВЫБОР()иЕСЛИМН()для простой подмены - 📜 Преобразовывать числа в римские с помощью
РИМСКОЕ() - 💰 Писать суммы прописью (включая копейки) без VBA
- 🤖 Автоматизировать процесс макросом для тысяч строк
Важно: методы работают во всех актуальных версиях Excel (2010, 2013, 2016, 2019, 2021, 365), но некоторые функции (например, ТЕКСТРАЗР()) доступны только в Excel 365 и Excel 2021. Проверим?
Способ 1: Ручная замена через "Найти и заменить"
Самый простой метод — поиск и замена — подходит, если у вас ограниченный набор чисел (например, 1-10) и небольшая таблица. Алгоритм:
- Выделите диапазон ячеек с числами (например,
A1:A100). - Нажмите
Ctrl + H(или перейдите вГлавная → Найти и выделить → Заменить). - В поле
Найтивведите число (например,1), в полеЗаменить на— соответствующий текст (например,Отлично). - Нажмите
Заменить всё.
⚠️ Внимание: Этот способ не подходит для динамических данных — если числа в ячейках изменятся, текст не обновится автоматически. Также он бесполезен для преобразования чисел в римские или прописные суммы.
Выделить диапазон ячеек с числами
Проверить, нет ли в данных лишних пробелов
Сохранить резервную копию файла
Запустить замену по одному числу (чтобы избежать ошибок)-->
Способ 2: Функция ВЫБОР() для простой подмены
Если нужно заменить числа на фиксированный набор текстов (например, 1 → "Январь", 2 → "Февраль"), используйте функцию =ВЫБОР(). Синтаксис:
=ВЫБОР(индекс; значение1; значение2; ...)
Пример: преобразуем числовой код месяца в его название:
=ВЫБОР(A1; "Январь"; "Февраль"; "Март"; "Апрель"; "Май"; "Июнь"; "Июль"; "Август"; "Сентябрь"; "Октябрь"; "Ноябрь"; "Декабрь")
Где A1 — ячейка с числом от 1 до 12. Если в A1 будет 0 или 13, функция вернёт ошибку #ЗНАЧ!.
| Число в A1 | Формула | Результат |
|---|---|---|
| 1 | =ВЫБОР(A1; "Январь"; ...) | Январь |
| 5 | =ВЫБОР(A1; "Январь"; ...) | Май |
| 12 | =ВЫБОР(A1; "Январь"; ...) | Декабрь |
| 13 | =ВЫБОР(A1; "Январь"; ...) | #ЗНАЧ! |
💡 Совет: Чтобы избежать ошибок, оберните формулу в ЕСЛИОШИБКА():
=ЕСЛИОШИБКА(ВЫБОР(A1; "Январь"; ...); "Некорректный месяц")
Способ 3: Римские числа с функцией РИМСКОЕ()
Для преобразования арабских чисел (1, 2, 3) в римские (I, II, III) в Excel есть специальная функция:
=РИМСКОЕ(число; [форма])
Параметры:
- 🔢
число— арабское число (от 1 до 3999). - 📏
[форма](необязательно) — формат римского числа (от 0 до 4). По умолчанию0(классический).
Примеры:
=РИМСКОЕ(2023) → "MMXXIII"
=РИМСКОЕ(4; 2) → "IIII" (вместо "IV")
=РИМСКОЕ(3999) → "MMMCMXCIX" (максимальное значение)
⚠️ Внимание: Функция РИМСКОЕ() не работает с отрицательными числами и числами больше 3999. Для таких случаев потребуется VBA-скрипт (см. Способ 5).
Как работает римская система счисления?
Римские числа строятся из 7 букв: I (1), V (5), X (10), L (50), C (100), D (500), M (1000). Правила:
1. Если меньшая цифра стоит ПЕРЕД большей — она вычитается (IV = 4, IX = 9).
2. Если меньшая цифра стоит ПОСЛЕ большей — она прибавляется (VI = 6, XI = 11).
3. Одинаковые цифры можно повторять до 3 раз (III = 3, XXX = 30).
Способ 4: Сумма прописью без VBA (для Excel 365 и 2021)
В последних версиях Excel появилась функция ТЕКСТРАЗР(), которая преобразует числа в текстовый формат, включая суммы прописью. Синтаксис:
=ТЕКСТРАЗР(число; [десятичные_знаки]; [не_включать_валюту])
Примеры:
=ТЕКСТРАЗР(1234,56) → "одна тысяча двести тридцать четыре рубля пятьдесят шесть копеек"
=ТЕКСТРАЗР(42; 0; 1) → "сорок два" (без валюты)
Ограничения:
- 🚫 Работает только в Excel 365 и Excel 2021.
- 🌍 Поддерживает русский, английский и другие языки (зависит от настроек системы).
- 💵 Валюта по умолчанию — рубли/копейки, но можно отключить параметром
[не_включать_валюту].
⚠️ Внимание: Если вы работаете в Excel 2019 или старше, функция ТЕКСТРАЗР() недоступна. Используйте VBA-макрос (Способ 5) или надстройки сторонних разработчиков.
Способ 5: Автоматизация с помощью VBA (для любых версий)
Если вам нужно преобразовать большой объём данных или использовать собственные правила замены, напишите макрос. Например, этот код преобразует числа в суммы прописью (работает во всех версиях Excel):
Function SumProp(ByVal Summa As Currency) As String
Dim Rubl As String, Kop As String
Rubl = NumToTxt(Int(Summa))
Kop = NumToTxt(Round((Summa - Int(Summa)) * 100, 0))
If Len(Rubl) = 0 Then Rubl = "ноль"
SumProp = Rubl & " рубль " & Kop & " копеек"
End Function
Function NumToTxt(ByVal Number As Integer) As String
' ... (полный код функции см. по ссылке ниже)
End Function
Как использовать:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Вернитесь в Excel и введите в ячейке
=SumProp(A1), гдеA1— ячейка с числом.
🔗 Полный код функции NumToTxt() для копирования.
Частые ошибки и как их избежать
При замене чисел на буквы пользователи часто сталкиваются с типичными проблемами:
| Ошибка | Причина | Решение |
|---|---|---|
| #ИМЯ? | Опечатка в названии функции | Проверьте синтаксис (например, РИМСКОЕ, а не РИМСКИЕ) |
| #ЗНАЧ! | Число вне диапазона (например, >3999 для РИМСКОЕ()) | Используйте ЕСЛИОШИБКА() или VBA |
| Неправильный регистр | Функция возвращает текст в нижнем регистре | Примените =ПРОПНАЧ() или =ПРОПИСН() |
| Округление копеек | ТЕКСТРАЗР() округляет до 2 знаков | Используйте =ОКРУГЛ(A1; 2) перед функцией |
💡 Полезный лайфхак: Если после замены числа на текст вам нужно вернуть их обратно, используйте функцию =ЗНАЧЕН() (например, =ЗНАЧЕН(B1), где B1 содержит текстовое число "123").
FAQ: Ответы на популярные вопросы
Можно ли заменить числа на буквы в Google Таблицах?
Да, но не все функции Excel там поддерживаются. Аналоги:
=CHOSE()вместоВЫБОР()=ROMAN()вместоРИМСКОЕ()- Для суммы прописью потребуется App Script (аналог VBA).
Как преобразовать номер телефона (например, 79123456789) в формат "+7 (912) 345-67-89"?
Используйте комбинацию функций =ТЕКСТ() и =СЦЕПИТЬ():
=СЦЕПИТЬ("+7 ("; ПСТР(A1;2;3); ") "; ПСТР(A1;5;3); "-"; ПСТР(A1;8;2); "-"; ПСТР(A1;10;2))
Где A1 — ячейка с номером 79123456789.
Почему после замены числа на текст сортировка работает неправильно?
Текстовые значения сортируются по алфавиту, а не по числовому порядку. Решения:
- Добавьте ведущие нули (например,
001,002). - Используйте дополнительный столбец с числовыми значениями для сортировки.
Как заменить числа на буквы в столбце с датами (например, "01.01.2023" → "Первое января")?
Создайте таблицу соответствий (например, в отдельном листе) и используйте =ВПР():
=ВПР(ДЕНЬ(A1); Диапазон_с_числами; 2; ЛОЖЬ) & " " & ВПР(МЕСЯЦ(A1); Диапазон_с_месяцами; 2; ЛОЖЬ)
Где Диапазон_с_числами — это 1|Первое, 2|Второе, а Диапазон_с_месяцами — 1|января, 2|февраля и т.д.