Отрицательные числа в Microsoft Excel по умолчанию отображаются со знаком «минус» слева: -1500, -3,14%, -42°. Но что делать, если вам нужно перенести минус вправо (1500-), заключить число в скобки ((1500)**) или вовсе заменить знак на префикс «Дт» для бухгалтерских отчётов? Такие задачи часто возникают при оформлении финансовых документов, банковских выписок или корпоративных отчётов, где стандарты отображения отрицательных значений жёстко регламентированы.
В этой статье вы найдёте 5 проверенных способов изменить положение минуса в Excel — от простого форматирования до автоматизации через макросы. Мы разберём нюансы для разных версий программы (включая Excel 365 и Excel 2019), покажем, как избежать ошибок при копировании данных, и объясним, почему иногда минус «упрямо» возвращается на место. А для бухгалтеров и аналитиков добавим бонус: как настроить условное форматирование, чтобы отрицательные значения автоматически подсвечивались красным — но с минусом справа.
———
Почему минус в Excel стоит слева и можно ли это изменить?
По умолчанию Excel следует международным стандартам отображения чисел, где знак «минус» размещается перед числом (например, -250). Это правило закреплено в настройках программы и соответствует математическим канонам. Однако в некоторых отраслях требуется иное оформление:
🔹 Бухгалтерия: отрицательные суммы часто пишутся с минусом справа (1000-) или в скобках ((1000)), чтобы визуально отделить дебет от кредита.
🔹 Банковские выписки: минус может заменяться на префикс «Дт» или «OV» (от overdraft).
🔹 Научные данные: в некоторых графиках отрицательные значения подписываются справа для экономии места.
Можно ли перенести минус в Excel? Да, и для этого есть несколько методов — от ручного форматирования до автоматизации через VBA. Главное — понимать, что изменение отображения не затрагивает реальное значение ячейки: формулы по-прежнему будут воспринимать число как отрицательное, даже если визуально минус стоит справа.
Способ 1: Пользовательский формат чисел (самый быстрый метод)
Если вам нужно однократно изменить отображение минуса для конкретных ячеек, используйте пользовательский формат. Этот метод не меняет само значение, а только его визуальное представление.
Как настроить:
- Выделите ячейки с отрицательными числами.
- Нажмите правой кнопкой мыши и выберите
Формат ячеек...(или используйте сочетаниеCtrl+1). - Перейдите на вкладку
Число → (все форматы). - В поле
Тип:введите один из шаблонов:- 🔸 Для минуса справа:
# ##0;# ##0- - 🔸 Для скобок:
# ##0;(# ##0) - 🔸 Для красного цвета + минуса справа:
[Чёрный]# ##0;[Красный]# ##0-
- 🔸 Для минуса справа:
ОК.Пример работы формата:
| Исходное значение | Формат # ##0;# ##0- | Формат # ##0;(# ##0) |
|---|---|---|
| -1500 | 1500- | (1500) |
| 200 | 200 | 200 |
| -3,14 | 3,14- | (3,14) |
⚠️ Внимание: Пользовательский формат применяется только к визуальному отображению. Если вы скопируете ячейку с минусом справа в другую программу (например, в Word или 1С), знак вернётся на место. Чтобы зафиксировать изменение, используйте методы из следующих разделов.
Выделили только нужные ячейки (не всю строку)|
Использовали правильный синтаксис формата (точка с запятой разделяет положительные и отрицательные значения)|
Проверили отображение на примере 2-3 чисел|
Сохранили файл после изменений (форматы могут сбрасываться при аварийном закрытии)-->
Способ 2: Формулы для переноса минуса (для динамических данных)
Если ваши данные постоянно обновляются (например, подтягиваются из базы или рассчитываются по формулам), пользовательский формат не подойдёт — он не изменит само значение. В этом случае используйте вспомогательную колонку с формулой:
Формулы для переноса минуса:
- 🔢 Минус справа:
=ЕСЛИ(A1<0;АБС(A1)&"-";A1) - 🔢 В скобках:
=ЕСЛИ(A1<0;"("&АБС(A1)&")";A1) - 🔢 С префиксом «Дт»:
=ЕСЛИ(A1<0;"Дт "&АБС(A1);A1)
Как это работает:
- Функция
ЕСЛИпроверяет, отрицательное ли число в ячейкеA1. - Если да — преобразует его в положительное (
АБС) и добавляет минус справа (или скобки/префикс). - Если нет — оставляет значение без изменений.
Пример:
=ЕСЛИ(B2<0;АБС(B2)&"-";B2)
Для ячейки B2=-500 формула вернёт 500-, а для B2=100 — 100.
⚠️ Внимание: Формульный метод создаёт текстовое значение, а не число. Это означает, что:
- 🔴 Вы не сможете использовать результат в математических расчётах.
- 🔴 Сортировка по такой колонке будет некорректной (текст «100-» пойдёт после «99»).
Если нужны дальнейшие вычисления, комбинируйте этот способ с ЗНАЧЕН (см. следующий раздел).
Способ 3: VBA-макрос для массового изменения минуса
Если вам нужно однократно обработать тысячи строк (например, при импорте данных из банка), ручное форматирование займёт часы. Автоматизируйте процесс с помощью макроса:
Код для переноса минуса вправо:
Sub MoveMinusToRight()
Dim rng As Range
Dim cell As Range
Set rng = Selection 'Выделенный диапазон
For Each cell In rng
If IsNumeric(cell.Value) And cell.Value < 0 Then
cell.Value = Abs(cell.Value) & "-"
cell.NumberFormat = "@" 'Текстовый формат
End If
Next cell
End Sub
Как использовать:
- Нажмите
Alt+F11, чтобы открыть редакторVBA. - Вставьте код в новый модуль (
Insert → Module). - Выделите нужные ячейки в Excel и запустите макрос (
F5).
Преимущества метода:
- 🔹 Обрабатывает тысячи ячеек за секунды.
- 🔹 Сохраняет изменения навсегда (в отличие от пользовательского формата).
- 🔹 Можно модифицировать под скобки или префиксы (замените
& "-"на"(" & Abs(cell.Value) & ")").
⚠️ Внимание: Макрос преобразует числа в текст. Если потом потребуется вернуть числовой формат, используйте функцию
Если вы применили макрос и теперь нужно вернуть минус на место для расчётов: 1. Вставьте вспомогательную колонку с формулой 2. Скопируйте результаты и вставьте как значения ( 3. Удалите вспомогательную колонку.ЗНАЧЕН или текст по столбцам (Данные → Текст по столбцам).
Как вернуть числа в исходный вид после макроса?
=ЗНАЧЕН(ПОДСТАВИТЬ(A1;"-";"")*(-1)).Специальная вставка → Значения).
Способ 4: Условное форматирование + пользовательский формат
Для бухгалтерских отчётов часто требуется не только перенести минус, но и выделить отрицательные значения красным. Сочетание условного форматирования и пользовательского формата решит обе задачи:
Шаг 1: Настройка пользовательского формата
Используйте формат из первого способа, но с цветом:
[Чёрный]# ##0;[Красный]# ##0-
Шаг 2: Дополнительное условное форматирование
- Выделите диапазон.
- Перейдите в
Главная → Условное форматирование → Создать правило. - Выберите
Форматировать только ячейки, которые содержат. - Установите условие:
Значение ячейки → меньше → 0. - Нажмите
Формати выберите красный шрифт (даже если цвет уже задан в пользовательском формате — это страховка).
Результат:
- 🔹 Положительные числа: чёрные, без изменений (1000).
- 🔹 Отрицательные числа: красные, с минусом справа (1000-).
⚠️ Внимание: Если после применения условного форматирования минус не поменял положение, проверьте:
- 🔴 Приоритет правил: пользовательский формат должен быть выше условного (перетащите его вверх в
Управление правилами). - 🔴 Тип данных: условное форматирование не работает с текстовыми ячейками (если вы использовали формулы из Способа 2, сначала преобразуйте данные обратно в числа).
Способ 5: Power Query для импортируемых данных
Если вы импортируете данные из внешних источников (например, из 1С, SQL или CSV), переносить минус удобнее на этапе загрузки через Power Query. Этот метод гарантирует, что формат сохранится даже при обновлении данных.
Пошаговая инструкция:
- Импортируйте данные в Power Query (
Данные → Получить данные). - Выделите колонку с числами, нажмите правой кнопкой →
Преобразовать → Заменить значения. - В поле
Значение для поискавведите-(минус), вЗамена— оставьте пустым. - Добавьте новый столбец с формулой:
= if [Column1] < 0 then Text.From(Abs([Column1])) & "-" else Text.From([Column1]) - Удалите исходную колонку и переименуйте новую.
- Нажмите
Закрыть и загрузить.
Преимущества Power Query:
- 🔹 Формат сохраняется при обновлении данных (в отличие от пользовательского формата).
- 🔹 Можно добавить дополнительные преобразования (например, заменить точку на запятую).
- 🔹 Подходит для больших наборов данных (миллионы строк).
⚠️ Внимание: После загрузки данные в Excel будут текстовыми. Если нужны расчёты, добавьте вспомогательную колонку с =ЗНАЧЕН(ПОДСТАВИТЬ(A1;"-";"")*ЕСЛИ(ПРАВСИМВ(A1)="-";-1;1)).
Частые ошибки и как их избежать
При изменении положения минуса пользователи сталкиваются с типичными проблемами. Вот как их решить:
Проблема 1: Минус возвращается на место после копирования
Причина: Пользовательский формат — это только визуальное отображение. При копировании в другую программу или даже в другую книгу Excel может сбросить настройки.
Решение:
Проблема 2: Сортировка работает некорректно
Причина: Текстовые значения (например, «1000-») сортируются как строки, а не как числа.
Решение:
Проблема 3: Условное форматирование не применяется
Причина: Правила конфликтуют или применены к тексту вместо чисел.
Решение:
Таблица ошибок и решений:
Да. Выделите только нужные ячейки и примените к ним пользовательский формат (Способ 1) или формулу (Способ 2). Условное форматирование тоже можно настроить для отдельного диапазона. Это невозможно. Excel хранит минус как часть числового значения, поэтому для визуального переноса требуется преобразование в текст. Если нужны дальнейшие расчёты, используйте скрытую колонку с исходными числами. Скорее всего, макрос пропустил ячейки, которые:
Решение: добавьте в макрос дополнительные проверки или обработайте данные заранее. Да, с помощью события Worksheet_Change в Dim cell As Range For Each cell In Target If IsNumeric(cell.Value) And cell.Value < 0 Then Application.EnableEvents = False cell.Value = Abs(cell.Value) & "-" cell.NumberFormat = "@" Application.EnableEvents = True End If Next cell End Sub
=ЗНАЧЕН(ПОДСТАВИТЬ(A1;"-";"")*ЕСЛИ(ПРАВСИМВ(A1)="-";-1;1)).
Управление правилами.
Ошибка Причина Решение Минус не переносится Ячейка содержит текст, а не число Преобразуйте в число через ЗНАЧЕН или Текст по столбцамФормула возвращает #ЗНАЧ! В ячейке пустое значение или текст Добавьте проверку ЕСЛИОШИБКА или ЕПУСТОЦвет не меняется Конфликт условного форматирования Отключите другие правила для этого диапазона Макрос не работает Отключены макросы в настройках Включите макросы в Файл → Параметры → Центр управления безопасностьюFAQ: Ответы на частые вопросы
Можно ли перенести минус только для конкретных ячеек, а не для всей колонки?
Как сделать, чтобы минус отображался справа, но число оставалось числовым (а не текстом)?
Почему после применения макроса некоторые числа остались без изменений?
IsNumeric(cell.Value)).Можно ли автоматически переносить минус при вводе нового числа?
VBA. Вставьте этот код в модуль листа:
Private Sub Worksheet_Change(ByVal Target As Range)
Теперь при вводе отрицательного числа минус будет автоматически переноситься вправо.
Как перенести минус в Google Таблицах?
В Google Sheets используйте аналогичные методы:
- 🔹 Пользовательский формат:
Формат → Числа → Другие форматы → Пользовательский числовой формат. Введите0;0-. - 🔹 Формулы: те же, что и в Excel (замените
АБСнаABS). - 🔹 Apps Script: аналог
VBAдля автоматизации.
Ограничение: в Google Таблицах нет Power Query, но можно использовать IMPORTRANGE с предварительной обработкой.