В Microsoft Excel часто требуется отобразить отрицательные числа не со знаком «минус», а в круглых скобках — например, для финансовых отчётов, где убытки принято показывать именно так. Но стандартный формат ячеек такого варианта не предусматривает. Как же добиться нужного отображения без ручного редактирования каждой ячейки?
Эта статья раскроет 5 проверенных способов: от простого изменения формата до использования формул и условного форматирования. Мы разберём нюансы для разных версий Excel (2010–2023, Office 365), покажем, как автоматизировать процесс для больших таблиц, и предостережём от типичных ошибок. А в конце — FAQ с ответами на частые вопросы пользователей.
1. Способ: пользовательский формат ячеек
Самый быстрый и универсальный метод — настроить пользовательский формат. Он не меняет само значение ячейки, а только её внешний вид. Подходит для любых версий Excel, включая Excel Online.
Вот как это сделать:
- 📌 Выделите ячейки или диапазон, который нужно отформатировать.
- 🖱️ Нажмите правой кнопкой мыши и выберите
Формат ячеек...(или используйте сочетаниеCtrl+1). - 🔢 Перейдите на вкладку
Число→Все форматы. - 📝 В поле
Тип:введите один из вариантов:# ##0;(# ##0)— для целых чисел (например, 100 станет 100, а -50 отобразится как (50))# ##0.00;(# ##0.00)— для чисел с двумя знаками после запятой$# ##0;($# ##0)— если нужно добавить знак валюты
Выделить ячейки|Открыть "Формат ячеек" (Ctrl+1)|Выбрать вкладку "Число" → "Все форматы"|Ввести код формата (например, # ##0;(# ##0))|Нажать "ОК"-->
⚠️ Внимание: Если после применения формата в ячейке отображается ######, значит, столбец слишком узкий. Растяните его или уменьшите количество знаков в формате.
2. Способ: формула с функцией ТЕКСТ
Когда нужно преобразовать число в текст со скобками (например, для дальнейшей конкатенации с другими данными), используйте функцию ТЕКСТ. Этот метод создаёт текстовое представление числа, поэтому такие данные нельзя будет использовать в вычислениях.
Примеры формул:
- 🔢 Для целых чисел:
=ЕСЛИ(A1<0;ТЕКСТ(ABS(A1);"0");ТЕКСТ(A1;"0")) - 💰 Для валют (рубли):
=ЕСЛИ(A1<0;"("&ТЕКСТ(ABS(A1);"# ##0 ₽")&")";ТЕКСТ(A1;"# ##0 ₽")) - 📊 Для чисел с разделителями тысяч:
=ЕСЛИ(A1<0;"("&ТЕКСТ(ABS(A1);"# ##0")&")";ТЕКСТ(A1;"# ##0"))
🔹 Плюс метода: гибкость — можно комбинировать с другими функциями (например, СЦЕПИТЬ или КОНКАТЕНАЦИЯ).
🔸 Минус: результат — текст, а не число. Для расчётов придётся использовать ЗНАЧЕН или дублировать исходные данные.
Пользовательский формат|Формула ТЕКСТ|Условное форматирование|Другой вариант-->
3. Способ: условное форматирование
Если скобки нужны только для визуального выделения отрицательных значений (например, в отчётах), подойдёт Условное форматирование. Этот метод не изменяет сами данные, а лишь добавляет скобки как часть оформления.
Инструкция:
- Выделите диапазон ячеек.
- Перейдите на вкладку
Главная→Условное форматирование→Создать правило. - Выберите
Форматировать только ячейки, которые содержат. - В поле
Форматировать только ячейки с:установите:- 📉
Значение ячейки→меньше→0 - 🎨 Нажмите
Формат..., перейдите на вкладкуЧислои выберите пользовательский формат0;(0).
- 📉
⚠️ Внимание: Условное форматирование имеет приоритет над обычным форматом ячеек. Если правило конфликтует с другими настройками, скобки могут не отобразиться. Проверьте порядок правил в менеджере условного форматирования (Управление правилами).
4. Способ: VBA-макрос для автоматического форматирования
Для продвинутых пользователей, работающих с большими таблицами, удобно автоматизировать процесс с помощью VBA. Ниже макрос, который применяет формат со скобками ко всем отрицательным числам в выделенном диапазоне:
Sub FormatNegativeInParentheses()
Dim rng As Range
Dim cell As Range
On Error Resume Next
Set rng = Selection.SpecialCells(xlCellTypeConstants, xlNumbers)
On Error GoTo 0
If Not rng Is Nothing Then
For Each cell In rng
If cell.Value < 0 Then
cell.NumberFormat = "0;(0)"
End If
Next cell
End If
End Sub
🔹 Как использовать:
- Нажмите
Alt+F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert→Module). - Выделите нужные ячейки в Excel и запустите макрос (
F5). - 📊 Выделите таблицу и нажмите
Данные→Из таблицы/диапазона(в Excel 2016+). - 🔄 В редакторе Power Query выделите столбец с числами.
- 📝 Перейдите на вкладку
Преобразовать→Формат→Пользовательский. - 🖥️ Введите формат
0;(0)и нажмитеОК. - 💾 Нажмите
Закрыть и загрузить, чтобы применить изменения. - 🚫 Скобки отображаются как текст: Убедитесь, что ячейка имеет числовой формат, а не текстовый. Проверьте в
Формат ячеек→Число. - 🚫 Формула возвращает #ЗНАЧ!: Это происходит, если в исходной ячейке не число, а текст. Используйте
ЗНАЧЕНдля преобразования:=ЕСЛИ(ЕЧИСЛО(A1);ЕСЛИ(A1<0;ТЕКСТ(ABS(A1);"0");ТЕКСТ(A1;"0"));"") - 🚫 Скобки исчезают после копирования: При копировании ячеек с пользовательским форматом в другую книгу Excel формат может сброситься. Используйте
Специальная вставка→Форматы. - 🚫 Макрос не работает: Включите макросы в настройках безопасности (
Файл→Параметры→Центр управления безопасностью→Параметры центра...→Настройки макросов).
💡
5. Способ: надстройка Power Query (для Excel 2016+)
Если вы работаете с импортированными данными (например, из 1С или SQL), удобно использовать Power Query. Этот инструмент позволяет преобразовать отрицательные числа в скобках ещё на этапе загрузки.
Алгоритм действий:
✅
Сравнение методов: какой выбрать?
Каждый способ имеет свои плюсы и ограничения. В таблице ниже — сравнение по ключевым критериям:
| Метод | Сохраняет числовой формат | Автоматизация | Сложность | Подходит для больших таблиц |
|---|---|---|---|---|
| Пользовательский формат | ✅ Да | ❌ Нет (применяется вручную) | ⭐⭐☆ | ✅ Да |
Формула ТЕКСТ |
❌ Нет (преобразует в текст) | ✅ Да (обновляется автоматически) | ⭐⭐☆ | ⚠️ Ограничено (зависит от производительности) |
| Условное форматирование | ✅ Да | ✅ Да (правила применяются динамически) | ⭐⭐☆ | ✅ Да |
| VBA-макрос | ✅ Да | ✅ Да (однократное выполнение) | ⭐⭐⭐ | ✅ Да |
| Power Query | ✅ Да | ✅ Да (при обновлении данных) | ⭐⭐⭐ | ✅ Да |
🔍
Если вам нужно: - Объединить число со скобками с другим текстом (например, "Убыток: (500)"). - Применить дополнительные условия (например, скобки только для чисел меньше -1000). - Экспортировать данные в текстовый формат (CSV, TXT) со скобками.Когда использовать формулу вместо формата?
Типичные ошибки и как их избежать
Даже опытные пользователи Excel иногда сталкиваются с проблемами при форматировании чисел в скобках. Вот самые распространённые ошибки и их решения:
⚠️ Внимание: Если вы используете Google Таблицы, пользовательский формат там настраивается иначе: выберите Формат → Числа → Другие форматы → Пользовательский числовой формат и введите 0;(0). Формулы и условное форматирование работают аналогично Excel.
FAQ: ответы на частые вопросы
Можно ли сделать так, чтобы скобки отображались только при печати, а на экране был обычный минус?
Да, для этого:
- Настройте пользовательский формат
0;-0(обычный вид). - Создайте отдельный лист для печати и примените к нему формат
0;(0). - Используйте функцию
=ТЕКСТ(Лист1!A1;"0;(0)"), чтобы подтянуть данные со скобками.
Либо настройте Параметры страницы → Печать → Чёрно-белая и примените условное форматирование со скобками только для печати (через настройки стиля).
Почему после применения формата 0;(0) положительные числа отображаются с точкой (например, 1. вместо 1)?
Это происходит из-за региональных настроек Excel, где в качестве разделителя тысяч используется точка. Чтобы убрать точку:
- Используйте формат
# ##0;(# ##0)— символ#подавляет отображение незначащих нулей и разделителей. - Или измените региональные настройки в
Файл→Параметры→Дополнительно→Разделитель целой и дробной частей.
Как сделать скобки красного цвета для отрицательных чисел?
Скомбинируйте пользовательский формат с цветом:
- Откройте
Формат ячеек→Число→Все форматы. - Введите:
# ##0;[Красный](# ##0). - Нажмите
ОК.
Для Excel Online цвет в формате не поддерживается — используйте условное форматирование.
Можно ли применить скобки ко всем отрицательным числам в книге автоматически?
Да, с помощью VBA:
Sub FormatAllNegativeInParentheses()
Dim ws As Worksheet
Dim rng As Range
For Each ws In ThisWorkbook.Worksheets
On Error Resume Next
Set rng = ws.UsedRange.SpecialCells(xlCellTypeConstants, xlNumbers)
On Error GoTo 0
If Not rng Is Nothing Then
rng.NumberFormat = "0;(0)"
End If
Next ws
End Sub
Этот макрос пробегает по всем листам книги и применяет формат ко всем числовым ячейкам.
Как вернуть обычный вид чисел после форматирования со скобками?
Вернуть стандартный формат можно тремя способами:
- Выделите ячейки →
Главная→Общий формат(илиCtrl+Shift+~). - В
Формат ячееквыберите категориюЧисловойилиОбщий. - Если использовалась формула, замените её на
=A1(без преобразования в текст).