Leer en inglés

Compartir a través de


FORMAT

Se aplica a:columna CalculadaTabla calculadaMeasurecálculo visual

Convierte un value en texto según el formatespecificado.

Sintaxis

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

Parámetros

Término Definición
value Expresión valueor que se evalúa como una sola value.
format_string Cadena con la plantilla de formato.
locale_name (Opcional) Nombre de la configuración regional que va a usar la función . Los posibles values son cadenas aceptadas por la función de API de Windows LocaleNameToLCID().

Devolver value

Cadena que contiene value con formato definido por format_string.

Nota

If value es BLANK, la función devuelve una cadena vacía.

If format_string es BLANK, el value tiene un formato "Número general" or "General Date" format (según value tipo de datos).

Observaciones

  • Las cadenas de format predefinidas usan la propiedad de referencia cultural del modelo al dar formato al resultado. De forma predeterminada, la propiedad de referencia cultural del modelo se establece según la configuración regional del usuario del equipo. Para los nuevos modelos de Power BI Desktop, la propiedad cultural del modelo se puede cambiar en Opciones > Configuración regional > Lenguaje modelo. Para Analysis Services, la referencia cultural del modelo se establece según la propiedad Language definida inicialmente por la instancia.

  • Las cadenas de format admitidas como argumento para la función DAXFORMAT se basan en las cadenas de format usadas por Visual Basic (OLE Automation), not en las cadenas de format usadas por .NET Framework. Por lo tanto, puede obtener resultados inesperados or un errorif el argumento no coincide con ninguna cadena de format definida. Por ejemplo, no se admite "p" como abreviatura de "Percent". Las cadenas que se proporcionan como argumento para la función FORMAT que no se incluyen en la lista de cadenas de format predefinidas se controlan como parte de una cadena de format personalizada, or como literal de cadena.

  • Para obtener más información sobre cómo especificar una configuración regional con FORMAT, consulte este vídeo .

  • El uso de FORMAT cambia un resultado de measure a un tipo de datos de texto. If el resultado del measure es originalmente de tipo de datos numérico y, después, con FORMAT, el measure no se puede usar en los objetos visuales en los que la sección values requiere un tipo de datos numérico, como con gráficos. En Power BI, también puede usar cadenas de format dinámicas para medidas especificar una cadena de format condicional que mantenga el tipo de datos numérico de la measure.

  • Esta función se not se admite para su uso en el modo DirectQuery cuando se usa en columnas calculadas or reglas de seguridad de nivel de fila (RLS).

Ejemplos

cadenas de Format

DAX
= 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")

Devuelve:

12345.67 "Número general" muestra el número sin formato.

$12.345.67 "Currency" muestra el número con el formato de configuración regional de currency. El sample aquí muestra el formato predeterminado de currency estados Unidos.

12345.67 "Fixed" muestra al menos un dígito en el left del separador decimal and dos dígitos al right del separador decimal.

12.345.67 "Estándar" muestra al menos un dígito al left del separador decimal and dos dígitos a la right del separador decimal, and incluye separadores de miles. El sample aquí muestra el formato predeterminado de números de Estados Unidos.

1.234.567.00 % "Porcentaje" muestra el número como un porcentaje (multiplicado por 100) con formato and el porcentaje sign en el right del número separado por un solo espacio.

1.23E+04 "Científico" muestra el número en notación científica con dos dígitos decimales.

Datetime con locale_name opcionales

DAX
= 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" )

Devuelve:

12/15/2020 12:30:59 PM Donde month precede dayandtime es 12-hourformat.

15/12/2020 12:30:59 Donde day precede monthandtime es 24-hourformat.

12/15/2020 12:30:59 Donde month precede dayandtime es 24-hourformat. Dado que se especifica una cadena de format dependiente no regional, se not aplica la configuración regional and se devuelve el format no regional.

Formatos numéricos predefinidos

Los siguientes formatos numéricos predefinidos se pueden especificar en el argumento format_string:

Format Descripción
"General Number" Muestra el número sin separadores de miles.
"Currency" Muestra el número con separadores de miles, if apropiado; muestra dos dígitos en el right del separador decimal. La salida se basa en la configuración regional del sistema.
"Fixed" Muestra al menos un dígito en el leftand dos dígitos al right del separador decimal.
"Standard" Muestra el número con separadores de miles, al menos un dígito al leftand dos dígitos en el right del separador decimal.
"Percent" Muestra el número multiplicado por 100 con un porcentaje sign (%) anexado inmediatamente al right; siempre muestra dos dígitos en la right del separador decimal.
"Scientific" Usa notación científica estándar, proporcionando dos dígitos significativos.
"Yes/No" Muestra No if número es 0; de lo contrario, muestra Sí.
"True/False" Muestra Falseif número es 0; De lo contrario, muestra True.
"On/Off" Muestra off if número es 0; De lo contrario, se muestra Activado.

Formatos numéricos personalizados

Una expresión de format personalizada para números puede tener de una a tres secciones separadas por punto y coma. If el argumento de cadena formatcontains uno de los formatos numéricos con nombre, solo se permite una sección.

If usa El resultado es
Solo una sección La expresión format se aplica a allvalues.
Dos secciones La sección first se aplica a ceros de valuesand positivos, el second a valuesnegativo.
Tres secciones La sección first se aplica a valuespositivas , el second a valuesnegativo , and el tercero a ceros.
DAX
"$#,##0;($#,##0)"

If incluir punto y coma sin nada entre ellos, la sección que falta se define mediante el format del valuepositivo . Por ejemplo, en el siguiente format se muestran values negativos positivos and mediante el format de la sección firstand muestra "Cero" if el value es cero.

DAX
"$#,##0"

If incluir punto y coma sin nada entre ellos, se muestra la sección que falta mediante el format del valuepositivo.

Caracteres numéricos personalizados format

Los siguientes caracteres numéricos personalizados format se pueden especificar en el argumento format_string:

Carácter Descripción
None Muestra el número sin formato.
(0) Marcador de posición de dígitos. Muestra un dígito or un cero. If la expresión tiene un dígito en la posición donde aparece el 0 en la cadena format, mostrarlo; De lo contrario, muestra un cero en esa posición.If el número tiene menos dígitos que ceros (en cualquiera de los lados del decimal) en la expresión format, muestra los ceros iniciales or finales. If el número tiene más dígitos en el right del separador decimal que ceros en la right del separador decimal de la expresión de format, round el número a tantas posiciones decimales como ceros. If el número tiene más dígitos en el left del separador decimal que el left del separador decimal de la expresión de format, muestra los dígitos adicionales sin modificaciones.
(#) Marcador de posición de dígitos. Mostrar un dígito or nada. If la expresión tiene un dígito en la posición donde aparece el número en la cadena format, mostrarlo; de lo contrario, no muestra nada en esa posición. Este símbolo funciona como el marcador de posición de 0 dígitos, except que los ceros finales and iniciales no se muestran if el número tiene el mismo or menos dígitos que los caracteres # en cualquiera de los lados del separador decimal de la expresión format.
(.) Marcador de posición decimal. En algunas configuraciones regionales, se usa una coma como separador decimal. El marcador de posición decimal determina cuántos dígitos se muestran en la leftandright del separador decimal. If la expresión formatcontains solo signos numéricos en el left de este símbolo, los números menores que 1 comienzan con un separador decimal. Para mostrar un cero inicial mostrado con números fraccionarios, use 0 como marcador de posición de dígito first al left del separador decimal. El carácter real usado como marcador de posición decimal en la salida con formato depende del número Format reconocido por el sistema.
(%) Marcador de posición de porcentaje. La expresión se multiplica por 100. El carácter de porcentaje (%) se inserta en la posición donde aparece en la cadena format.
(,) Separador de miles. En algunas configuraciones regionales, se usa un punto como separador de miles. El separador de miles separa miles de cientos dentro de un número que tiene cuatro or más lugares para el left del separador decimal. Se especifica el uso estándar del separador de miles if el formatcontains un separador de miles rodeado de marcadores de posición de dígitos (0or#). Dos separadores de miles adyacentes or un separador de miles inmediatamente al left del separador decimal (si se especifica ornot un decimal) significa "escalar el número dividiéndolo en 1000, redondeando según sea necesario". Por ejemplo, puede usar la cadena de format "#0", para representar 100 millones como 100. Los números menores de 1 millón se muestran como 0. Dos separadores de miles adyacentes en cualquier posición distinta de inmediatamente a la left del separador decimal se tratan simplemente como especificar el uso de un separador de miles. El carácter real que se usa como separador de miles en la salida con formato depende del número Format reconocido por el sistema.
(:) separador de Time. En algunas configuraciones regionales, se pueden usar otros caracteres para representar el separador de time. El separador de time separa horas, minutos and segundos cuando se da formato a timevalues. El carácter real que se usa como separador de time en la salida con formato viene determinado por la configuración del sistema.
(/) separador de Date. En algunas configuraciones regionales, se pueden usar otros caracteres para representar el separador de date. El separador de date separa el day, month, andyear cuando se da formato a datevalues. El carácter real que se usa como separador de date en la salida con formato viene determinado por la configuración del sistema.
(E- E+ e- e+) Científico format. If la expresión formatcontains al menos un marcador de posición de dígitos (0or#) al right de E-, E+, e-, or e+, el número se muestra en el formatand científico E or e se inserta entre el número and su exponente. El número de marcadores de posición de dígitos en el right determina el número de dígitos del exponente. Use E- or e- para colocar un signnext menos en exponentes negativos. Use E+ or e+ para colocar un signnext menos para los exponentes negativos and un signo más signnext a los exponentes positivos.
- + $ ( ) Muestra un carácter literal. Para mostrar un carácter distinto de uno de los enumerados, precedítelo con una barra diagonal inversa (\) or encerrarla entre comillas dobles (" ").
(\\) Muestra el carácter next en la cadena format. Para mostrar un carácter que tiene un significado especial como carácter literal, precedítelo con una barra diagonal inversa (\). No se muestra la barra diagonal inversa. El uso de una barra diagonal inversa es el mismo que incluir el carácter next entre comillas dobles. Para mostrar una barra diagonal inversa, use dos barras diagonales inversas (\\). Algunos ejemplos de caracteres que no se pueden mostrar como caracteres literales son el date-formatear andtimecaracteres de formato (a, c, d, h, m, n, p, q, s, t, w, y, /, and :), los caracteres de formato numérico (#, 0, %, E, e, coma, and punto), and los caracteres de formato de cadena (@, &, <, >, and !).
("ABC") Mostrar la cadena entre comillas dobles (" ").

Formatos predefinidos de date/time

Los siguientes formatos predefinidos date/time se pueden especificar en el argumento format_string. Cuando se usan formatos distintos de estos, se interpretan como un datepersonalizado /timeformat:

Format Descripción
"General Date" Muestra un dateand/ortime. Por ejemplo, 12/3/2008 11:07:31 AM. Date presentación viene determinada por la referencia cultural actual de la aplicación value.
"Long Date" or "Medium Date" Muestra un date según el dateformatlargo de la referencia cultural actual. Por ejemplo, miércoles, 12 de marzo de 2008.
"Short Date" Muestra un date mediante el dateformatcorto de la referencia cultural actual. Por ejemplo, 12/3/2008.
"Long Time" or Muestra un time con el timeformatlargo de la referencia cultural actual; normalmente incluye horas, minutos, segundos. Por ejemplo, 11:07:31 AM.
"Medium Time" Muestra un time en 12 hourformat. Por ejemplo, 11:07 AM.
"Short Time" Muestra un time en 24 hourformat. Por ejemplo, 11:07.

Formatos de dateytime personalizados

Los siguientes caracteres de format se pueden especificar en el format_string para crear formatos de dateotime personalizados:

Carácter Descripción
(:) separador de Time. En algunas configuraciones regionales, se pueden usar otros caracteres para representar el separador de time. El separador de time separa horas, minutos and segundos cuando se da formato a timevalues. El carácter real que se usa como separador de time en la salida con formato viene determinado por la configuración del sistema.
(/) separador de Date. En algunas configuraciones regionales, se pueden usar otros caracteres para representar el separador de date. El separador de date separa el day, month, andyear cuando se da formato a datevalues. El carácter real que se usa como separador de date en la salida con formato viene determinado por la configuración del sistema.
(\) Barra invertida. Muestra el carácter next como un carácter literal. Por lo tanto, se not interpreta como un carácter de formato.
(") Comilla doble. Se muestra el texto entre comillas dobles. Por lo tanto, se not interpretar como caracteres de formato.
c Muestra el date como dddddand muestra el time como ttttt, en ese orden. Mostrar solo date información if no hay ninguna parte fraccionarcional para el número de serie de date; mostrar solo time información if no hay ninguna parte entera.
d Muestra el day como un número sin un cero inicial (1-31).
dd Muestra el day como un número con un cero a la izquierda (01-31).
ddd Muestra el day como abreviatura (Sun-Sat). Localizada.
dddd Muestra el day como un nombre completo (Sunday-Saturday). Localizada.
ddddd Muestra el date como un date completo (incluido day, month, andyear), con formato según la configuración de dateformat corta del sistema. El dateformat corto predeterminado es mm/dd/yyyy.
dddddd Muestra un número de serie date como un date completo (incluido day, month, andyear) con formato según la configuración de date larga reconocida por el sistema. El dateformat largo predeterminado es dddd, mmmm d, yyyy.
w Muestra el day de la semana como un número (de 1 para domingo a 7 para sábado).
ww Muestra la semana del year como un número (1-54).
m Muestra el month como un número sin un cero a la izquierda (1-12). If m inmediatamente sigue horhh, minute en lugar del month se muestra.
mm Muestra el month como un número con un cero a la izquierda (01-12). If mm inmediatamente sigue horhh, minute en lugar del month se muestra.
mmm Muestra el month como abreviatura (Jan-Dec). Localizada.
mmmm Muestra el month como un nombre de month completo (January-December). Localizada.
q Muestra el quarter del year como un número (1-4).
y Muestra el day del year como un número (1-366).
yy Muestra el year como un número de 2 dígitos (00-99).
yyyy Muestra el year como un número de 4 dígitos (100-9999).
h Muestra el hour como un número sin un cero a la izquierda (0-23).
hh Muestra el hour como un número con un cero a la izquierda (00-23).
n Muestra el minute como un número sin un cero a la izquierda (0-59).
nn Muestra el minute como un número con un cero a la izquierda (00-59).
s Muestra el second como un número sin un cero a la izquierda (0-59).
ss Muestra el second como un número con un cero a la izquierda (00-59).
ttttt Muestra un time como un time completo (incluidos hour, minute, andsecond), con formato mediante el separador de time definido por el timeformat reconocido por el sistema. Se muestra un cero inicial if se selecciona la opción cero inicial and el time es anterior a las 10:00 A.M. or P.M. El timeformat predeterminado es h:mm:ss.
AM/PM Utilice el reloj 12-hourand mostrar un AM en mayúsculas con cualquier hour antes del mediodía; muestra una pm mayúscula con cualquier hour entre mediodía and 11:59 p.m.
am/pm Use el reloj 12-hourand mostrar un AM en minúsculas con cualquier hour antes del mediodía; muestra una PM minúscula con cualquier hour entre mediodía and 11:59 p.m.
A/P Use el reloj 12-hourand mostrar una A mayúscula con cualquier hour antes del mediodía; muestra una P mayúscula con cualquier hour entre mediodía and 11:59 p.m.
a/p Utilice el reloj 12-hourand mostrar una A minúscula con cualquier hour antes del mediodía; muestra una P minúscula con cualquier hour entre mediodía and 11:59 p.m.
AMPM Use el reloj 12-hourand mostrar el literal de cadena AM tal como lo define el sistema con cualquier hour antes del mediodía; muestra el literal de cadena PM definido por el sistema con cualquier hour entre mediodía and 11:59 P.M. AMPM puede estar en mayúsculas or minúsculas, pero el caso de la cadena que se muestra coincide con la cadena definida por la configuración del sistema. El format predeterminado es AM/PM. If el sistema se establece en 24-hour reloj, la cadena se establece normalmente en una cadena vacía.

Date/time formato usa la configuración regional del usuario actual para format la cadena. Por ejemplo, considere el date 25 de junio de 2020. Cuando se da formato mediante format cadena "m/d/aaaa", será:

  • La configuración regional del usuario es Estados Unidos de América (en-US): "6/25/2020"
  • La configuración regional del usuario es Alemania (de-DE): "6.25.2020"

Ejemplos de dateytimeformat personalizados

En los ejemplos siguientes se usa el date/time jueves, 25 de junio de 2020, a las 1:23:45 p. m. Alemania (de-DE) usa un sistema de 24hour. No hay ningún equivalente de AM/PM.

Format Result (en-US) Result (de-DE)
"c" 06/25/2020 13:23:45 25.06.2020 13:23:45
"d" 25 25
"dd" 25 25
"ddd" Thu Hacer
"dddd" Jueves Donnerstag
"ddddd" 06/25/2020 25.06.2020
"dddddd" Jueves, 25 de junio de 2020 Donnerstag, 25. Juni 2020
"w" 5 5
"ww" 26 26
"m" 6 6
"mm" 06 06
"mmm" Jun Jun
"mmmm" Junio Juni
"q" 2 2
"y" 177 177
"yy" 20 20
"yyyy" 2020 2020
"""Year"" yyyy" Year 2020 Year 2020
"yyyy \Qq" Q2 de 2020 Q2 de 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 p. m. 1:23:45
"hh:nn:ss" 13:23:45 13:23:45
"hh:nn:ss AMPM" 01:23:45 p. m. 01:23:45
"ttttt" 13:23:45 13:23:45
"ttttt AMPM" 13:23:45 p. m. 13:23:45
"mm/dd/yyyy hh:nn:ss AMPM" 25/06/2020 01:23:45 PM 6.25.2020 01:23:45