FORMAT

Применяется к:вычисляемой таблице вычисляемой таблицы Вычисление визуального элемента измерениявычисляемой таблицы

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

Синтаксис

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

Параметры

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

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

Строка, содержащая значение, форматируемое format_string.

Примечание.

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

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

Замечания

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

  • Строки формата, поддерживаемые в качестве аргумента функции DAX FORMAT, основаны на строках форматирования, используемых Visual Basic (OLE Automation), а не на строках форматирования, используемых платформа .NET Framework. Таким образом, вы можете получить непредвиденные результаты или ошибку, если аргумент не соответствует определенным строкам формата. Например, "p" в качестве сокращенного значения "Процент" не поддерживается. Строки, предоставляемые в качестве аргумента функции 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 "Общее число" отображает число без форматирования.

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

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

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

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

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

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:59, где месяц предшествует дню и времени— 12-часовой формат.

15.12.2020 12:30:59 Где день предшествует месяцу и времени— 24-часовой формат.

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

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

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

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

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

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

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

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

"$#,##0"

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

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

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

Символ Description
Нет Отображение номера без форматирования.
(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, p, q, s, t, w, y, /и :), числовые символы форматирования (#, 0, %, E, e, запятая и период), а также символы форматирования строк (@, &<>, и !).
("ABC") Отображение строки внутри двойных кавычки (" ").

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

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

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

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

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

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

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

  • Языковой стандарт пользователя — это США Америки (en-US): "6.25.2020"
  • Языковой стандарт пользователя — Германия (de-DE): "6.25.2020"

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

В следующих примерах используется дата и время четверга, 25 июня 2020 г. в 1:23:45. Германия (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" Чт Рекомендуется
"dddd" Четверг Donnerstag
"ddddd" 06/25/2020 25.06.2020
"dddddd" Четверг, 25 июня 2020 г. Доннерстаг, 25. Juni 2020
"w" 5 5
"ww" 26 26
"m" 6 6
"mm" 06 06
"mmm" Июн Июн
"mmmm" июня Юни
"q" 2 2
"y" 177 177
"yy" 20 20
"yyyy" 2020 2020
"""Year"" yyyy" Год 2020 г. Год 2020 г.
"yyyy \Qq" 2020 Q2 2020 Q2
"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 вечера 1:23:45
"hh:nn:ss" 13:23:45 13:23:45
"hh:nn:ss AMPM" 01:23:45 вечера 01:23:45
"ttttt" 13:23:45 13:23:45
"ttttt AMPM" 13:23:45 вечера 13:23:45
"mm/dd/yyyy hh:nn:ss AMPM" 06.25.2020 01:23:45 6.25.2020 01:23:45