Поделиться через


Строка формата FORMAT_STRING (многомерные выражения)

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

Строковые значения

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

Количество разделов

Результат

Один раздел

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

Два раздела

Первый раздел распространяется на строковые данные, а второй — на значения NULL и строки нулевой длины ("").

В строке форматирования текстовых строк могут использоваться следующие символы.

Символ

Описание

@

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

&

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

<

Принудительный перевод в нижний регистр. В отформатированной строке все символы будут в нижнем регистре.

>

Принудительный перевод в верхний регистр. В отформатированной строке все символы будут в верхнем регистре.

!

Принудительное заполнение заполнителей слева направо (по умолчанию — справа налево).

Числовые значения

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

Количество разделов

Результат

Один раздел

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

Два раздела

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

Три раздела

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

Четыре раздела

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

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

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

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

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

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

Символ

Описание

Нет

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

0

Цифровой заполнитель: цифра или ноль (0).

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

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

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

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

#

Цифровой заполнитель: цифра или пустое место.

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

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

.

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

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

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

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

%

Процентный заполнитель. Выражение умножается на 100. Символ процента (%) вставляется там, где в отформатированной строке будет выводиться процентное значение.

,

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

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

Два идущих подряд разделителя групп разрядов или разделитель непосредственно слева от десятичного разделителя (задан он или нет) означают масштабирование числа путем деления его на 1 000 и округления при необходимости. Например, строка формата «##0,,» используется для представления 100 миллионов как 100. Числа меньше миллиона отображаются как 0. Два идущих подряд разделителя групп разрядов в любой позиции, кроме позиции непосредственно слева от десятичного разделителя, интерпретируются просто как разделители групп разрядов.

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

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

:

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

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

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

/

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

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

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

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 — код символа двойной кавычки).

Именованные числовые форматы

В следующей таблице указаны стандартные имена числовых форматов:

Имя формата

Описание

General Number

Отображает число без разделителя групп разрядов.

Currency

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

Fixed

Отображает по крайней мере одну цифру слева и две цифры справа от десятичного разделителя.

Standard

Отображает число с разделителем групп разрядов, по крайней мере одну цифру слева и две цифра справа от десятичного разделителя.

Percent

Отображает число, умноженное на 100 с символов процента (%), добавляемым справа. Всегда отображает две цифры справа от десятичного разделителя.

Scientific

Использует стандартное экспоненциальное представление.

Yes/No

Отображает «Нет», если это число равно 0; иначе — «Да».

True/False

Отображает «False», если это число равно 0; иначе — «True».

On/Off

Отображает «Выкл», если это число равно 0; иначе — «Вкл».

Значения даты

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

Символ

Описание

:

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

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

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

/

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

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

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

C

Вывод даты в формате ддддд и времени в формате ввввв именно в этом порядке.

Если в числе даты нет дробной части, выводятся только сведения о дате. Если в числе даты нет целой части, выводятся только сведения о времени.

d

Вывод числа месяца без начального нуля (1–31).

dd

Вывод числа месяца с начальным нулем (01–31).

ddd

Вывод сокращенного названия дня недели (Пон — Вос).

dddd

Вывод дня недели полностью (Понедельник — Воскресенье).

ddddd

Вывод полной даты (включая день, месяц и год), отформатированной в соответствии с системным сокращенным форматом даты.

В Microsoft Windows по умолчанию используется следующий сокращенный формат даты: д/м/гг.

dddddd

Вывод числа даты в виде полной даты (включая день, месяц и год), отформатированной в соответствии с системным форматом полной даты.

В Microsoft Windows по умолчанию используется следующий формат полной даты: дд мммм, гггг.

w

Вывод номера дня недели (от 1 — понедельник, до 7 — воскресенье).

ww

Вывод номера недели года (1 — 54).

m

Вывод номера месяца без начального нуля (1-12).

Если m следует сразу за h или hh, выводятся минуты, а не месяц.

mm

Вывод номера месяца с начальным нулем (01–12).

Если m следует сразу за h или hh, выводятся минуты, а не месяц.

mmm

Вывод сокращенного названия месяца (Янв — Дек).

mmmm

Вывод полного названия месяца (Январь — Декабрь).

q

Вывод номера квартала в году (1-4).

y

Вывод номера дня в году (1-366).

yy

Вывод двух последних цифр в номере года (00-99).

yyyy

Вывод всех цифр года (100-9999).

h

Вывод часа без начального нуля (0-23).

hh

Вывод часа с начальным нулем (00-23).

n

Вывод минуты без начального нуля (0-59).

nn

Вывод минуты с начальным нулем (00-59).

s

Вывод секунды без начального нуля (0-59).

ss

Вывод секунды с начальным нулем (00-59).

t t t t t

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

Если выбран соответствующий параметр, отображаются начальные нули при выводе времени до 10:00 как до полудня, так и после (например, 09:59).

В Microsoft Windows по умолчанию используется следующий формат времени: ч:мм:сс.

AM/PM

Вывод заглавных букв AM при выводе времени с полуночи до полудня и PM при выводе времени с полудня до полуночи.

ПримечаниеПримечание
В этом случае используется 12-часовой формат времени.

am/pm

Вывод строчных букв am при выводе времени с полуночи до полудня и pm при выводе времени с полудня до полуночи.

ПримечаниеПримечание
В этом случае используется 12-часовой формат времени.

A/P

Вывод заглавных букв A при выводе времени с полуночи до полудня и P при выводе времени с полудня до полуночи.

ПримечаниеПримечание
В этом случае используется 12-часовой формат времени.

a/p

Вывод строчных букв a при выводе времени с полуночи до полудня и p при выводе времени с полудня до полуночи.

ПримечаниеПримечание
В этом случае используется 12-часовой формат времени.

AMPM

Вывод строкового литерала, определенного в системе для вывода времени до полудня, при выводе времени с полуночи до полудня, и строкового литерала, определенного в системе для вывода времени после полудня, при выводе времени с полудня до полуночи.

ПримечаниеПримечание
В этом случае используется 12-часовой формат времени.

Литералы времени AMPM могут указываться как в верхнем, так и в нижнем регистре, однако регистр при выводе строки выбирается в соответствии с системными настройками компьютера.

В Microsoft Windows по умолчанию используется формат AM/PM.

Именованные форматы даты

В следующей таблице указаны стандартные имена форматов даты и времени:

Имя формата

Описание

General Date

Отображает дату и/или время. Для действительных чисел отображает дату и время, например 03.04.1993, 17:34. Если дробной части нет, отображается только дата, например, 03.04.1993. Если нет целой части, отображается только время, например, 17:34. Формат отображения данных определяется настройками системы.

Long Date

Отображает данные в соответствии с полным форматом даты системы.

Medium Date

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

Short Date

Отображает дату с использованием краткого формата даты системы.

Long Time

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

Medium Time

Отображает время в 12-часовом формате с использованием часов и минут, и указателе AM/PM.

Short Time

Отображает время с использованием 24-часового формата, например, 17:45.