![Как в Excel выполнить пользовательское форматирование чисел, чтобы в начале чисел были пробелы?](https://rvso.com/image/1402590/%D0%9A%D0%B0%D0%BA%20%D0%B2%20Excel%20%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D1%8C%20%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%BE%D0%B5%20%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D1%87%D0%B8%D1%81%D0%B5%D0%BB%2C%20%D1%87%D1%82%D0%BE%D0%B1%D1%8B%20%D0%B2%20%D0%BD%D0%B0%D1%87%D0%B0%D0%BB%D0%B5%20%D1%87%D0%B8%D1%81%D0%B5%D0%BB%20%D0%B1%D1%8B%D0%BB%D0%B8%20%D0%BF%D1%80%D0%BE%D0%B1%D0%B5%D0%BB%D1%8B%3F.png)
Мне нужно использовать пользовательское форматирование чисел или что-то подобное, что создаст настоящие пустые места, а НЕ просто заставит их выглядеть по-другому в ячейках Excel. Это потому, что я на самом деле использую библиотеку, которая реализует функциональность Excel, называемую SpreadsheetGear, и мой конечный вывод — это строка.
Вот чего я хочу:
Если число состоит из 6 цифр или меньше, я бы хотел, чтобы оно имело такой формат:
$ xxx,xxx
$ xx,xxx
$ x,xxx
$ xxx
$ xx
$ x
Как показано выше, между «$» и первой цифрой 6-значного числа будет 2 пробела, между «$» и первой цифрой 5-значного числа — 3 пробела и т. д.
Другими словами, длина символов числа всегда будет одинаковой для чисел с цифрами 6 и менее.
Для чисел, содержащих более 6 цифр, используется обычное форматирование чисел с запятыми.
решение1
Если вы не против сохранить отформатированную версию в отдельном столбце и как строку, а не число, вы можете использовать (предполагая, что значение находится в ячейке A1):
="$"&REPT(" ", 9-LEN(TEXT(A1,"#,##0")))&TEXT(A1,"#,##0")
Результаты, отформатированные таким образом, будут выглядеть лучше всего с фиксированной шириной шрифта.
решение2
Вы можете использовать условное форматирование, как связал techie007, в сочетании с пользовательским форматированием.
Например, выберите диапазон ячеек и выберите опцию «Выделить правила ячеек» > «Меньше чем...».
Введите 10000000
(максимальное 6-значное число — 999 999) в качестве условия, а в качестве форматирования укажите «Пользовательский».
В появившемся диалоговом окне перейдите в раздел Форматирование чисел, Пользовательское форматирование и используйте $* #,##0
.
решение3
То, что вы ищете, это «синтаксис повторения символов».
Вы ставите звездочку ( *) и пробел между знаком доллара ( $) и форматом числа, чтобы получить доллар слева, а число справа (пробел — это повторяющийся символ).
"$* 0" or "$* #,##0"
Это также отлично подходит для форматирования дат. Месяц слева и дата справа будут:
"mmmm* d"
решение4
Создайте 6 условных форматов, которые выглядят следующим образом:
Последний условный формат не виден на скриншоте, просто добавьте ноль.
Установите для них следующие пользовательские форматы чисел, следуя этому порядку сверху вниз:
$_0_0_0_0_0_0_0_,#
$_0_0_0_0_0_0_,#
$_0_0_0_0_0_,#
$_0_0_0_0#,###
$_0_0_0#,###
$_0_0#,###
Первые три также отводят место для отсутствующей запятой.
Окончательный результат: