FORMAT

Преобразует значение в текст в соответствии с указанным форматом.

Синтаксис

FORMAT(<value>, <format_string>[, <locale_name>])

Параметры

Термин Определение
value Значение или выражение, при вычислении которого возвращается одиночное значение.
format_string Строка, содержащая шаблон форматирования.
locale_name (Необязательно) Имя языкового стандарта, который будет использоваться функцией. Возможными значениями являются строки, принимаемые функцией LocaleNameToLCID() API Windows.

Возвращаемое значение

Строка, содержащая value в формате, определенном с помощью format_string.

Примечание

Если value имеет значение BLANK, функция возвращает пустую строку.

Если format_string — BLANK, значение форматируется с использованием формата "Общий числовой формат" или "Общий формат даты" (в зависимости от типа данных value).

Remarks

  • Предопределенные строки формата используют свойство языка и региональных параметров модели при форматировании результата. По умолчанию свойство языка и региональных параметров модели задается в соответствии с региональными параметрами пользователя компьютера. Для новых моделей Power BI Desktop свойство языка и региональных параметров можно изменить в разделе "Параметры" > "Региональные параметры" > "Язык модели". Для Analysis Services язык и региональные параметры модели устанавливаются в соответствии со свойством "Язык", изначально определенным в экземпляре.

  • Функция FORMAT (DAX) поддерживает в качестве аргумента строки формата, основанные на строках формата Visual Basic (OLE-автоматизация), а не на строках формата, используемых в .NET Framework. В связи с этим, если аргумент не соответствует какой-либо определенной строке, может возвращаться непредвиденный результат или ошибка. Например, не поддерживается применение сокращения "p" для обозначения процентов. Строки, которые указываются в качестве аргумента функции FORMAT и при этом не входят в список стандартных строк формата, обрабатываются как часть пользовательской строки формата или как строковый литерал.

  • Дополнительные сведения о задании языкового стандарта с помощью FORMAT см. в этом видео.

  • При использовании format результат меры преобразуется в текстовый тип данных. Если результат меры изначально имеет числовой тип данных, то в случае с форматом FORMAT меру нельзя использовать в визуальных элементах, где разделу значений требуется числовой тип данных, как в случае с диаграммами. В Power BI можно также использовать строки динамического формата для мер , указывающих строку условного формата, которая поддерживает числовой тип данных меры.

  • Эта функция не поддерживается для использования в режиме DirectQuery при использовании в вычисляемых столбцах или правилах безопасности на уровне строк (RLS).

Примеры

Строки формата

= FORMAT( 12345.67, "General Number")  
= FORMAT( 12345.67, "Currency")  
= FORMAT( 12345.67, "Fixed")  
= FORMAT( 12345.67, "Standard")  
= FORMAT( 12345.67, "Percent")  
= FORMAT( 12345.67, "Scientific")

Возвращает:

12345,67. "Общее число" отображает число без форматирования.

$12345,67. "Валюта" отображает число в формате валюты в соответствии с вашим языковым стандартом. В примере ниже показан формат валют по умолчанию для США.

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

12 345,67. "Стандартный" отображает не менее одной цифры слева и двух цифр справа от десятичного разделителя и включает разделитель групп разрядов. В примере ниже показан формат числа по умолчанию для США.

1234567,00 % . "Процент" отображает число в процентах (умноженное на 100) с форматированием и знаком процента справа от числа, разделенного одним пробелом.

1.23E+04. "Научный" отображает число в экспоненциальном представлении с двумя десятичными цифрами.

Datetime с необязательным параметром locale_name

= FORMAT( dt"2020-12-15T12:30:59", BLANK(), "en-US" ) 
= FORMAT( dt"2020-12-15T12:30:59", BLANK(), "en-GB" ) 
= FORMAT( dt"2020-12-15T12:30:59", "mm/dd/yyyy", "en-GB" )

Возвращает:

12/15/2020 12:30:59 PM, где месяц указан перед днем, а время — в 12-часовом формате.

15/12/2020 12:30:59, где день указан перед месяцем, а время — в 24-часовом формате.

12/15/2020 12:30:59, где месяц указан перед днем, а время — в 24-часовом формате. Так как указана строка в формате, который не зависит от языкового стандарта, языковой стандарт не применяется и данные возвращаются в соответствующем формате.

Предопределенные числовые форматы

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

Формат Описание
"General Number" Отображает число без разделителей групп разрядов.
"Currency" Отображает число с разделителями групп разрядов при необходимости. Отображает две цифры справа от десятичного разделителя. Вывод основан на параметрах локали системы.
"Fixed" Отображает не менее одной цифры слева и две цифры справа от десятичного разделителя.
"Standard" Отображает число с разделителями групп разрядов. Не менее одной цифры слева и двух цифр справа от десятичного разделителя.
"Percent" Отображает число, умноженное на 100, со знаком процента (%), добавленным справа. Всегда отображает две цифры справа от десятичного разделителя.
"Scientific" Использует стандартное научное представление, предоставляя две значащие цифры.
"Yes/No" Отображает No, если число равно 0; в противном случае отображает Yes.
"True/False" Отображает False, если число равно 0; в противном случае отображает True.
"On/Off" Отображает Off, если число равно 0; в противном случае отображает On.

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

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

При использовании В результате
Только один раздел Формат распространяется на все значения.
Две секции Первый раздел распространяется на неотрицательные значения, а второй — на отрицательные.
Три секции Первый раздел распространяется на положительные значения, второй — на отрицательные, третий — на нулевые.
"$#,##0;($#,##0)"

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

"$#,##0"

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

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

В аргументе format_string можно указать следующие символы настраиваемых числовых форматов:

Символ Описание
Нет Отображает число без форматирования.
(0) Заполнитель цифр. Отображает цифру или ноль. Если выражение имеет цифру в позиции, где в строке форматирования стоит 0, она отобразится. В противном случае в этой позиции отобразится ноль. Если число имеет меньше цифр, чем нолей (по обе стороны от десятичного разделителя) в выражении формата, отобразятся ноли в начале или конце. Если число имеет больше цифр справа от десятичного разделителя, чем нолей справа от десятичного разделителя в выражении формата, округлите число до такого количества знаков после запятой, которое равно количеству нолей. Если число имеет больше цифр слева от десятичного разделителя, чем нолей слева от десятичного разделителя в выражении формата, отобразите дополнительные цифры без изменений.
(#) Заполнитель цифр. Отображает цифру или ничего. Если выражение имеет цифру в позиции, где знак # указан в строке форматирования, она отобразится. В противном случае в этой позиции ничего не отобразится. Этот символ аналогичен заполнителю цифры 0, за исключением того, что ноли в начале и конце не отображаются, если число имеет такое же или меньшее количество цифр, чем число символов # по обе стороны от десятичного разделителя в выражении формата.
(.) Заполнитель десятичных чисел. В некоторых языковых стандартах в качестве десятичного разделителя используется запятая. Десятичный заполнитель определяет, сколько цифр отображается слева и справа от десятичного разделителя. Если выражение формата содержит только символы решетки слева от этого символа, числа меньше 1 начинаются с десятичного разделителя. Чтобы в начале дробных чисел отобразить ноль, используйте 0 в качестве заполнителя первой цифры слева от десятичного разделителя. Фактический символ, используемый в качестве десятичного заполнителя в форматированных выходных данных, зависит от числового формата, распознаваемого системой.
(%) Заполнитель процентов. Выражение умножается на 100. Символ процента (%) вставляется в позицию, где он отображается в строке форматирования.
(,) Разделитель групп разрядов. В некоторых языковых стандартах в качестве разделителя групп разрядов используется запятая. Разделитель групп разрядов отделяет тысячи от сотен в числе, состоящем из четырех или более знаков слева от десятичного разделителя. Стандартное использование разделителя групп разрядов указывается, если формат содержит разделитель групп разрядов, окруженный заполнителями цифр (0 или #). Два смежных разделителя групп разрядов или один разделитель групп разрядов непосредственно слева от десятичного разделителя (независимо от того, указан ли десятичный знак) означают, что "число необходимо масштабировать, разделив его на 1000, а затем при необходимости округлив". Например, можно использовать строку формата "##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") Отображает строку, заключенную в двойные кавычки (" ").

Предопределенные форматы даты и времени

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

Формат Описание
"General Date" Отображает дату и/или время. Например, 12.03.2008 11:07:31. Отображение даты определяется текущим значением языка и региональных параметров приложения.
"Long Date" либо "Medium Date" Отображает дату в соответствии с длинным форматом даты текущего языка и региональных параметров. Например: среда, 12 марта 2008.
"Short Date" Отображает дату в соответствии с коротким форматом даты текущего языка и региональных параметров. Например, 12.03.2008.
"Long Time" или Отображает время с использованием длинного формата времени текущего языка и региональных параметров; обычно включает часы, минуты, секунды. Например, 11:07:31.
"Medium Time" Отображает время в 12-часовом формате. Например, 11:07 AM.
"Short Time" Отображает время в 24-часовом формате. Например, 11:07.

Настраиваемые форматы даты и времени

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

Символ Description
(:) Разделитель времени. В некоторых языковых стандартах для представления разделителя времени могут использоваться другие символы. Разделитель времени разделяет часы, минуты и секунды при форматировании значений времени. Фактический символ, используемый в качестве разделителя времени в форматированных выходных данных, определяется установленными параметрами системы.
(/) Разделитель даты. В некоторых языковых стандартах для представления разделителя даты могут использоваться другие символы. Разделитель даты разделяет день, месяц и год при форматировании значений времени. Фактический символ, используемый в качестве разделителя даты в форматированных выходных данных, определяется установленными параметрами системы.
(\) Обратная косая черта. Отображает следующий символ в виде литерального символа. Поэтому он не интерпретируется как символ форматирования.
(") Двойная кавычка. Отображается текст, заключенный в двойные кавычки. Поэтому он не интерпретируется как символы форматирования.
c Отображает дату в виде ddddd и время в виде ttttt в указанном порядке. Если в числе даты нет дробной части, выводятся только сведения о дате. Если целочисленная часть отсутствует, отображаются только сведения о времени.
d Отображает день месяца в виде числа без нуля в начале (1–31).
дд Отображает день месяца в виде числа с нулем в начале (01–31).
ddd Отображает сокращенное название дня недели (вс–сб). Локализовано.
dddd Отображает полное название дня недели (воскресенье–суббота). Локализовано.
ддддд Отображает полную дату (включая день, месяц и год), отформатированную в соответствии с системным сокращенным форматом даты. Краткий формат даты по умолчанию — mm/dd/yyyy.
dddddd Отображает число даты в виде полной даты (включая день, месяц и год), отформатированной в соответствии с форматом полной даты, распознаваемым вашей системой. Полный формат даты по умолчанию — dddd, mmmm d, yyyy.
w Отображает номер дня недели (от 1 — воскресенье, до 7 — суббота).
ww Отображает номер недели года (1–54).
m Отображает месяц в виде числа без нуля в начале (1–12). Если m следует сразу после h или hh, отображаются минуты, а не месяц.
ММ Отображает месяц в виде числа с нулем в начале (01–12). Если mm следует сразу после h или hh, отображаются минуты, а не месяц.
ммм Отображает сокращенное название месяца (янв–дек). Локализовано.
mmmm Отображает полное название месяца (январь–декабрь). Локализовано.
q Отображает номер квартала в году (1–4).
да Отображает номер дня в году (1–366).
yy Отображает 2-значное число года (00–99).
гггг Отображает 4-значное число года (100–9999).
h Отображает время в виде числа без нуля в начале (0–23).
hh Отображает время в виде числа с нулем в начале (00–23).
n Отображает минуты в виде числа без нуля в начале (0–59).
nn Отображает минуты в виде числа с нулем в начале (00–59).
s Отображает секунды в виде числа без нуля в начале (0–59).
сс Отображает секунды в виде числа с нулем в начале (00–59).
ttttt Отображает полное время (включая час, минуту и секунду), отформатированное с помощью разделителя времени, который определен форматом времени, распознаваемым системой. Если выбран соответствующий параметр, отображается ведущий ноль для времени до 10:00 (AM/PM). Формат времени по умолчанию — h:mm:ss.
AM/PM Используется 12-часовой формат времени. С любым значением времени до полудня отображаются прописные буквы AM, а с любым значением времени между полуднем и 23:59 (11:59) — прописные буквы PM.
AM/PM Используется 12-часовой формат времени. С любым значением времени до полудня отображаются строчные буквы AM, а с любым значением времени между полуднем и 23:59 (11:59) — строчные буквы PM.
A/P Используется 12-часовой формат времени. С любым значением времени до полудня отображается прописная буква A, а с любым значением времени между полуднем и 23:59 (11:59) — прописная буква P.
A/P Используется 12-часовой формат времени. С любым значением времени до полудня отображается строчная буква A, а с любым значением времени между полуднем и 23:59 (11:59) — строчная буква P.
AMPM Используется 12-часовой формат времени. С любым значением времени до полудня отображается строковый литерал AM в соответствии с настройками системы, а с любым значением времени между полуднем и 23:59 (11:59 PM) — строковый литерал PM в соответствии с настройками системы. Литералы времени AM/PM могут отображаться прописными или строчными буквами, однако регистр отображаемой строки соответствует строке, которая определена в настройках системы. Формат по умолчанию — AM/PM. Если в системе задан 24-часовой формат времени, для этой строки, как правило, задается пустая строка.

При форматировании даты-времени используются текущие региональные настройки. Например, рассмотрим дату 25 июня 2020 г. При форматировании с использованием строки форматирования "м/д/гггг" она будет:

  • Региональные настройки — США (en-US): "6/25/2020"
  • Региональные настройки — Германия (de-DE): "6.25.2020"

Примеры настраиваемых форматов даты и времени

В следующих примерах используется четверг, 25 июня 2020 г, 1:23:45 PM (после полудня). В Германии (de-DE) используется 24-часовая система. Эквивалента AM/PM не существует.

Формат Результат (en-US) Результат (de-DE)
"c" 06/25/2020 13:23:45 25.06.2020 13:23:45
"d" 25 25
"dd" 25 25
"ddd" Thu Рекомендуется
"dddd" Четверг Donnerstag
"ddddd" 06/25/2020 25.06.2020
"dddddd" Четверг, 25 июня, 2020 г. Donnerstag, 25. Juni 2020
"w" 5 5
"ww" 26 26
"m" 6 6
"mm" 06 06
"mmm" Июнь Июнь
"mmmm" Июнь Juni
"q" 2 2
"y" 177 177
"yy" 20 20
"yyyy" 2020 2020
"""Year"" yyyy" 2020 год 2020 год
"yyyy \Qq" 2-й квартал 2020 г. 2-й квартал 2020 г.
"dd/mm/yyyy" 25/06/2020 25.06.2020
"mm/dd/yyyy" 06/25/2020 06.25.2020
"h:nn:ss" 13:23:45 13:23:45
"h:nn:ss AMPM" 1:23:45 PM 1:23:45
"hh:nn:ss" 13:23:45 13:23:45
"hh:nn:ss AMPM" 01:23:45 PM 01:23:45
"ttttt" 13:23:45 13:23:45
"ttttt AMPM" 13:23:45 PM 13:23:45
"mm/dd/yyyy hh:nn:ss AMPM" 06/25/2020 01:23:45 PM 6.25.2020 01:23:45