Пользовательские числовые форматы для функции 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 |
Замечания
Если в выражении форматирования встречаются точки с запятыми, между которыми ничего нет, пропущенный раздел выводится в формате положительного значения.