Пользовательские числовые форматы для функции FORMAT

Пользовательское выражение форматирования чисел может содержать от одного до трех разделов, разделенных точками с запятой. Если аргумент Style функции Format содержит один из стандартных числовых форматов, разрешается только один раздел.

Используемый формат

Результат

Единственный раздел

Формат применяется ко всем значениям.

Два раздела

Первый раздел применяется к неотрицательным значениям, а второй — к отрицательным.

Три раздела

Первый раздел применяется к положительным значениям, второй — к отрицательным, а третий — к нулевым.

В следующей таблице показаны символы, с помощью которых можно создавать определяемые пользователем числовые форматы.

Спецификация формата

Описание

Нет

Выводит число без форматирования.

0 (ноль)

Заполнитель цифры. Выводит заданную цифру или ноль. Если выражение содержит цифру в позиции, где в строке форматирования находится ноль, то выводится эта цифра. В противном случае в этой позиции выводится ноль.

Если число имеет меньше разрядов, чем задано нулей в выражении форматирования (с обеих сторон от десятичного разделителя), то число выводится с начальными или с конечными нулями. Если число имеет больше разрядов справа от десятичного разделителя, чем задано нулей справа от десятичного разделителя в выражении форматирования, то значение округляется до стольких знаков после запятой, сколько задано нулей. Если число имеет больше цифр слева от десятичного разделителя, чем задано нулей слева от десятичного разделителя в выражении форматирования, то дополнительные разряды выводятся без изменений.

#

Заполнитель цифры. Выводит цифру или не выводит никакого символа. Если выражение содержит цифру в позиции, где в строке форматирования находится знак #, то выводится эта цифра. В противном случае в этой позиции не выводится ничего.

Этот символ аналогичен цифровому заполнителю «0» с той разницей, что начальные и конечные нули не отображаются в случае, если число содержит меньше разрядов, чем задано символов «#» с обеих сторон от десятичного разделителя в выражении форматирования.

. (точка)

Заполнитель десятичного разделителя. Он определяет, сколько разрядов отображается слева и справа от десятичного разделителя. Если выражение форматирования содержит только знаки # слева от этого символа, то числа меньше 1 начинаются с десятичного разделителя. Чтобы в этом случае в дробных числах отображались ведущие нули, укажите ноль в качестве первого заполнителя цифры слева от десятичного разделителя. В некоторых локалях и региональных стандартах в качестве десятичного разделителя используется запятая. Фактический символ, используемый в качестве десятичного заполнителя в отформатированном значении, зависит от числового формата, распознаваемого системой. Поэтому даже в локали, где десятичным разделителем служит запятая, в выражениях форматирования в качестве десятичного заполнителя следует использовать точку. Отформатированная строка будет выводиться в соответствии с локалью.

%

Заполнитель процента. Умножает выражение на 100. Символ процента (%) вставляется там, где он должен выводиться в строке форматирования.

, (запятая)

Разделитель групп разрядов. Разделитель групп разрядов отделяет тысячи от сотен в числе с четырьмя или более разрядами слева от десятичного разделителя. При стандартном использовании разделителя групп разрядов он заключается в заполнители цифр (0 или #).

Если разделитель групп разрядов расположен непосредственно слева от десятичного разделителя (независимо от того, указаны ли десятичные знаки) или в конце строки, это равносильно делению числа на 1 000 с последующим округлением. Для чисел, больших или равных 500 и меньших 1 000, выводится 1, а для чисел, меньших 500, выводится 0. Если в этой позиции рядом находятся два разделителя групп разрядов, то число делится на 1 миллион и далее на 1 000 за каждый дополнительный разделитель.

Несколько разделителей групп разрядов в любой позиции, кроме позиции непосредственно слева от десятичного разделителя или конечной позиции в строке, интерпретируются просто как разделители групп разрядов. В некоторых локалях в качестве разделителя групп разрядов используется точка. Фактический символ, используемый в качестве разделителя групп разрядов в отформатированном значении, зависит от числового формата, распознаваемого системой. Поэтому даже в локалях, где разделителем групп разрядов служит точка, в выражениях форматирования следует использовать запятую. Отформатированная строка будет выводиться в соответствии с локалью.

Рассмотрим три строки форматирования:

«#,0.», где с помощью разделителя групп разрядов число «сто миллионов» форматируется в виде строки «100,000,000»;

«#0,.», где путем деления на тысячу число «сто миллионов» представляется в виде строки «100000»;

«#,0,.», где с помощью разделителя групп разрядов и деления на тысячу число «сто миллионов» форматируется в виде строки «100,000».

: (двоеточие)

Разделитель компонентов времени. В некоторых локалях в качестве разделителя компонентов времени могут использоваться другие символы. Разделитель компонентов времени разделяет часы, минуты и секунды при форматировании значений времени. Фактический символ, используемый в качестве разделителя компонентов времени в отформатированном значении, зависит от параметров системы.

/ (косая черта)

Разделитель компонентов даты. В некоторых локалях и региональных стандартах в качестве разделителя компонентов даты могут использоваться другие символы. Разделитель компонентов даты разделяет день, месяц и год при форматировании значений даты. Фактический символ, используемый в качестве разделителя компонентов даты в отформатированном значении, зависит от параметров системы.

E-, E+, e-, e+

Экспоненциальный формат. Если выражение форматирования содержит минимум один заполнитель цифры (0 или #) слева от символов E-, E+, e- или e+, то число выводится в экспоненциальном формате, а между числом и показателем степени вставляется символ «E» или «e». Количество заполнителей цифр слева определяет количество разрядов в показателе степени. Чтобы указывать знак «минус» для отрицательных показателей степени, используются заполнители E- и e-. Заполнители E+ и e+ позволяют указывать знак «минус» для отрицательных показателей степени и знак «плюс» для положительных показателей степени. Для правильного форматирования также необходимо указывать заполнители цифр справа от этого символа.

- + $ ( )

Литералы. Эти символы выводятся так же, как в строке форматирования. Чтобы вывести символ, которого нет в списке, укажите перед ним обратную косую черту (\) либо заключите его в двойные кавычки ("").

\ (обратная косая черта)

Следующий символ в строке формата. Чтобы вывести специальный символ в качестве литерала, укажите перед ним обратную косую черту (\). Сама обратная косая черта не отображается. Использование обратной косой черты аналогично заключению выводимого символа в двойные кавычки. Чтобы вывести саму обратную косую черту, укажите две черты подряд (\\).

Примерами символов, которые не выводятся в виде литералов, являются символы форматирования даты и времени (a, c, d, h, m, n, p, q, s, t, w, y, / и :), символы числового форматирования (#, 0, %, E, e, запятая и точка) и символы форматирования строк (@, &, <, > и !).

"ABC"

Выводит строку, заключенную в двойные кавычки (""). Чтобы включить строку в аргумент стиля из программного кода, необходимо заключить текст в символы Chr(34) (код 34 соответствует знаку кавычки (")).

В следующей таблице приводятся образцы выражений форматирования для чисел. (Во всех примерах предполагается, что в системе установлена локаль «Английский (США)».) Первый столбец содержит строки форматирования для функции Format, а остальные столбцы — результирующее значение в случае, если форматируемые данные имеют значение, заданное в заголовках столбцов.

Аргумент стиля для функции Format

Отформатированное представление для числа 5

Отформатированное представление для числа -5

Отформатированное представление для числа «0,5»

Отформатированное представление для числа «0»

Строка нулевой длины ("")

5

-5

0.5

0

0

5

-5

1

0

0.00

5.00

-5.00

0.50

0.00

#,##0

5

-5

1

0

$#,##0;($#,##0)

$5

($5)

$1

$0

$#,##0.00;($#,##0.00)

$5.00

($5.00)

$0.50

$0.00

0%

500%

-500%

50%

0%

0.00%

500.00%

-500.00%

50.00%

0.00%

0.00E+00

5.00E+00

-5.00E+00

5.00E-01

0.00E+00

0.00E-00

5.00E00

-5.00E00

5.00E-01

0.00E00

"$#,##0;;\Z\e\r\o"

$5

$-5

$1

Zero

Если в выражении форматирования встречаются точки с запятыми, между которыми ничего нет, пропущенный раздел выводится в формате положительного значения.