Función FORMAT (DAX) - DAX (2023)

  • Artículo
  • Tiempo de lectura: 15 minutos

Convierte un valor en texto según el formato especificado.

Sintaxis

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

Parámetros

TérminoDefinición
valorValor o expresión que se evalúa como un valor único.
format_stringCadena con la plantilla de formato.
nombreDeConfiguraciónRegional(Opcional) Nombre de la configuración regional que va a usar la función. Los valores posibles son cadenas aceptadas por la función API de Windows LocaleNameToLCID().

Valor devuelto

Cadena que contiene value con el formato tal como lo define format_string.

Nota:

(Video) FORMAT Function in Power BI using DAX | TEXT Function | #powerbi #dax

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

Si format_string es BLANK, se da formato al valor con un formato "Número general" o "Fecha general" (según el tipo de datos value).

Notas

  • Las cadenas de formato predefinidas utilizan la propiedad Referencia cultural de modelo al aplicar formato al resultado. De forma predeterminada, la propiedad Referencia cultural de modelo se establece de acuerdo con la configuración regional de usuario del equipo. Para los nuevos modelos de PowerBI Desktop, la propiedad Referencia cultural de modelo se puede cambiar en Opciones > Configuración regional > Idioma del modelo. Para AnalysisServices, la referencia cultural de modelo se puede establecer de acuerdo con la propiedad de idioma definida inicialmente por la instancia.

  • Las cadenas de formato admitidas como un argumento para la función FORMAT de DAX se basan en las cadenas de formato que utiliza VisualBasic (automatización OLE), no en las cadenas de formato que utiliza .NETFramework. Por lo tanto, podría obtener resultados inesperados o un error si el argumento no coincide con ninguna cadena de formato definida. Por ejemplo, no se admite "p" como abreviatura de "Porcentaje". Las cadenas que se proporcionan como argumento a la función FORMAT y que no están incluidas en la lista de cadenas de formato predefinidas se administran como parte de una cadena de formato personalizado o como un literal de cadena.

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

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

    (Video) DAX Format Function - A few Awesome Tricks

Ejemplos

Cadenas de formato

= 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 "Moneda" muestra el número con el formato de configuración regional de moneda. En este ejemplo se muestra el formato de moneda predeterminado de Estados Unidos.

12345,67 "Fijo" muestra al menos un dígito a la izquierda y dos a la derecha del separador decimal.

12.345,67 "Estándar" muestra al menos un dígito a la izquierda y dos a la derecha del separador decimal, e incluye separadores de miles. En este ejemplo se muestra el formato de número predeterminado de Estados Unidos.

1.234.567,00% "Porcentaje" muestra el número como porcentaje (multiplicado por 100) con formato y el signo de porcentaje a la derecha del número separado por un solo espacio.

(Video) FORMAT - DAX Guide

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

Datetime con locale_name opcional

= 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 el mes precede al día y la hora tiene un formato de 12horas.

15/12/2020 12:30:59 Donde el día precede al mes y la hora tiene un formato de 24horas.

12/15/2020 12:30:59 Donde el mes precede al día y la hora tiene un formato de 24horas. Dado que se especifica una cadena de formato no dependiente de la configuración regional, no se aplica la configuración regional y se devuelve el formato sin configuración regional.

Formatos numéricos predefinidos

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

(Video) DAX Fridays! #32: FORMAT

FormatoDescripción
"General Number"Muestra el número sin separadores de miles.
"Currency"Muestra el número con separadores de miles, si procede; muestra dos dígitos a la derecha del separador decimal. La salida se basa en la configuración regional del sistema.
"Fixed"Muestra al menos un dígito a la izquierda y dos a la derecha del separador decimal.
"Standard"Muestra el número con separador de miles, al menos un dígito a la izquierda y dos a la derecha del separador decimal.
"Percent"Muestra el número multiplicado por 100 con un signo de porcentaje (%) anexado justo a la derecha; siempre muestra dos dígitos a la derecha del separador decimal.
"Scientific"Usa la notación científica estándar, que proporciona dos dígitos significativos.
"Yes/No"Muestra No si el número es 0; de lo contrario, muestra Sí.
"True/False"Muestra False si el número es 0; de lo contrario, muestra True.
"On/Off"Muestra Desactivado si el número es 0; de lo contrario, muestra Activado.

Formatos numéricos personalizados

Una expresión de formato personalizado para los números puede tener de una a tres secciones separadas por punto y coma. Si el argumento de cadena de formato contiene uno de los formatos numéricos con nombre, únicamente se permite una sección.

Si se usaEl resultado es
Solo una secciónLa expresión de formato se aplica a todos los valores.
Dos seccionesLa primera sección se aplica a valores positivos y ceros; la segunda se aplica a valores negativos.
Tres secciones.La primera sección se aplica a valores positivos, la segunda a valores negativos y la tercera a los ceros.
"$#,##0;($#,##0)"

Si incluye puntos y coma sin nada entre ellos, la sección que falta se define con el formato del valor positivo. Por ejemplo, el siguiente formato muestra los valores positivos y negativos utilizando el formato de la primera sección y muestra "Zero" si el valor es cero.

"$#,##0"

Si incluye puntos y coma sin nada entre ellos, la sección que falta se muestra con el formato del valor positivo.

Caracteres de formato numérico personalizados

Los siguientes caracteres de formato numérico personalizados se pueden especificar en el argumento format_string:

CarácterDescripción
NingunoMuestra el número sin formato.
(0)Marcador de posición de dígitos. Muestra un dígito o un cero. Si la expresión tiene un dígito en la posición donde en la que aparece el 0 en la cadena de formato, se muestra; en caso contrario, se muestra un cero en esa posición. Si el número tiene menos dígitos que ceros (en cualquier lado del separador decimal) en la expresión de formato, se muestran ceros a la izquierda o a la derecha. Si el número tiene más dígitos a la derecha del separador decimal que ceros en la expresión de formato, se redondea el número a tantos lugares decimales como ceros haya. Si el número tiene más dígitos a la izquierda del separador decimal que ceros en la expresión de formato, se muestran los dígitos adicionales sin modificación.
(#)Marcador de posición de dígitos. Muestra un dígito o nada. Si la expresión tiene un dígito en la posición donde aparece este símbolo en la cadena de formato, se muestra; en caso contrario, no se muestra nada en esa posición. Este símbolo funciona como marcador de posición de 0 dígitos, excepto que los ceros a la izquierda y a la derecha no se muestran si el número tiene los mismos dígitos o menos que caracteres # en cualquier lado del separador decimal en la expresión de formato.
(.)Marcador de posición decimal. En algunas configuraciones regionales, se usa una coma como separador decimal. El marcador de posición decimal determina el número de dígitos que se muestran a la izquierda y a la derecha del separador decimal. Si la expresión de formato solo contiene signos de número a la izquierda de este símbolo, los números menores que 1 comienzan con un separador decimal. Para mostrar un cero a la izquierda con números fraccionarios, use 0 como primer marcador de posición de dígitos a la izquierda del separador decimal. El carácter real usado como marcador de posición de decimales en la salida con formato depende del formato de número que reconozca 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 en la que aparece en la cadena de formato.
(,)Separador de miles. En algunas configuraciones regionales, se usa un punto como separador de miles. El separador de miles separa miles de cientos en un número que tiene cuatro o más posiciones a la izquierda del separador decimal. El uso estándar del separador de miles se especifica si el formato contiene un separador de miles rodeado de marcadores de posición de dígitos (0 o #). Dos separadores de miles adyacentes o un separador de miles inmediatamente a la izquierda del separador decimal (tanto si se especifica o no un decimal) significa "dividir el número entre 1000 para escalarlo y redondearlo según sea necesario." Por ejemplo, puede usar la cadena de formato "##0,," para representar 100millones como 100. Los números menores que 1 millón se muestran como 0. Dos separadores de miles adyacentes en cualquier posición que no sea la inmediatamente a la izquierda del separador decimal se tratan simplemente como si se especificara 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 formato de número que reconozca el sistema.
(:)Separador de líneas. En algunas configuraciones regionales, se pueden usar otros caracteres para representar el separador de hora. El separador de hora separa las horas, los minutos y los segundos cuando se aplica formato a los valores de hora. La configuración del sistema determina el carácter real que se usa como separador de hora en la salida con formato.
(/)Separador de fecha. En algunas configuraciones regionales, se pueden usar otros caracteres para representar el separador de fecha. El separador de fecha separa el día, el mes y el año cuando se aplica formato a los valores de fecha. La configuración del sistema determina el carácter real que se usa como separador de fecha en la salida con formato.
(E- E+ e- e+ )Formato científico. Si la expresión de formato contiene al menos un marcador de posición de dígitos (0 o #) a la derecha de E-, E+, e- o e+, el número se muestra en formato científico y se inserta E o e entre el número y su exponente. El número de marcadores de posición de dígitos a la derecha determina el número de dígitos en el exponente. Use E- o e- para colocar un signo menos junto a los exponentes negativos. Use E + o e + para colocar un signo menos junto a los exponentes negativos y un signo más junto a los exponentes positivos.
- + $ ( )Muestra un carácter literal. Para mostrar un carácter que no sea uno de los indicados, debe ir precedido de una barra diagonal inversa (\) o entre comillas dobles (" ").
(\)Muestra el siguiente carácter en la cadena de formato. Para mostrar un carácter con un significado especial como carácter literal, debe ir precedido de una barra diagonal inversa (\). La barra diagonal inversa no se muestra. Utilizar una barra diagonal inversa es equivalente a delimitar el siguiente carácter con 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 los caracteres de formato de fecha y hora (a, c, d, h, m, n, p, q, s, t, w, y, / y :), los caracteres de formato numérico (#, 0, %, E, e, coma y punto) y los caracteres de formato de cadena (@, &, <, > y !).
("ABC")Muestra la cadena entre comillas dobles (" ").

Formatos predefinidos de fecha y hora

Los siguientes formatos de fecha y hora predefinidos se pueden especificar en el argumento format_string. Si se usan formatos distintos a estos, se interpretarán como un formato personalizado de fecha y hora:

FormatoDescripción
"General Date"Muestra una fecha, una hora o ambas. Por ejemplo, 12/3/2008 11:07:31. La representación de la fecha está determinada por el valor de la referencia cultural actual de la aplicación.
"Long Date" o "Medium Date"Muestra una fecha según el formato de fecha larga de la referencia cultural actual. Por ejemplo, miércoles, 12 de marzo de 2008.
"Short Date"Muestra una fecha con el formato de fecha corta de la referencia cultural actual. Por ejemplo, 12/3/2008.
"Long Time" oMuestra una hora con el formato de hora larga de la referencia cultural actual; normalmente incluye horas, minutos y segundos. Por ejemplo, 11:07:31.
"Medium Time"Muestra una hora en formato de 12 horas. Por ejemplo, 11:07.
"Short Time"Muestra una hora en formato de 24 horas. Por ejemplo, 23:07.

Formatos personalizados de fecha y hora

Los caracteres de formato siguientes pueden especificarse en format_string para crear formatos personalizados de fecha y hora:

(Video) DAX Tools - DAX Studio 8 – Format DAX

CarácterDescripción
(:)Separador de líneas. En algunas configuraciones regionales, se pueden usar otros caracteres para representar el separador de hora. El separador de hora separa las horas, los minutos y los segundos cuando se aplica formato a los valores de hora. La configuración del sistema determina el carácter real que se usa como separador de hora en la salida con formato.
(/)Separador de fecha. En algunas configuraciones regionales, se pueden usar otros caracteres para representar el separador de fecha. El separador de fecha separa el día, el mes y el año cuando se aplica formato a los valores de fecha. La configuración del sistema determina el carácter real que se usa como separador de fecha en la salida con formato.
(\)Barra diagonal inversa. Muestra el carácter siguiente como literal. Por lo tanto, no se interpreta como un carácter de formato.
(")Comillas dobles. Se muestra el texto entre comillas dobles. Por lo tanto, no se interpreta como caracteres de formato.
cMuestra la fecha como ddddd y muestra la hora como ttttt, en ese orden. Muestra solo la información de fecha si no hay ninguna parte fraccionaria en el número de serie de fecha; muestra solo la información de hora si no hay ninguna parte entera.
dMuestra el día como un número sin un cero interlineado (1 a 31).
ddMuestra el día como un número con un cero interlineado (01 a 31).
dddMuestra el día abreviado (dom. a sáb.). Localizado.
ddddMuestra el día como un nombre completo (domingo a sábado). Localizado.
dddddMuestra la fecha como una fecha completa (día, mes y año), con el formato que especifique la configuración de formato de fecha corta del sistema. El formato de fecha corta predeterminado es mm/dd/yyyy.
ddddddMuestra un número de serie de fecha como fecha completa (día, mes y año), con el formato de fecha larga que reconozca el sistema. El formato de fecha larga predeterminado es dddd, mmmm d, yyyy.
wMuestra el día de la semana como un número (del 1 para el domingo al 7 para el sábado).
wwMuestra la semana del año como un número (1 a 54).
mMuestra el mes como un número sin un cero interlineado (1 a 12). Si m sigue inmediatamente a h o hh, se muestra el minuto en lugar del mes.
MMMuestra el mes como un número con un cero interlineado (01 a 12). Si mm sigue inmediatamente a h o hh, se muestra el minuto en lugar del mes.
mmmMuestra el mes abreviado (en. a dic.). Localizado.
mmmmMuestra el mes con el nombre completo (enero a diciembre). Localizado.
qMuestra el trimestre del año como un número (1 a 4).
sMuestra el día del año como un número (1 a 366).
yyMuestra el año como un número de 2dígitos (00 a 99).
aaaaMuestra el año como un número de 4dígitos (100 a 9999).
hMuestra la hora como un número sin un cero interlineado (0 a 23).
hhMuestra la hora como un número con un cero interlineado (00 a 23).
nMuestra el minuto como un número sin un cero interlineado (0 a 59).
nnMuestra el minuto como un número con un cero interlineado (00 a 59).
sMuestra el segundo como un número sin un cero interlineado (0 a 59).
ssMuestra el segundo como un número con un cero interlineado (00 a 59).
tttttMuestra la hora como una hora completa (hora, minuto y segundo), utilizando el separador de hora definido en el formato de hora que reconozca el sistema. Se muestra un cero a la izquierda si se selecciona la opción de cero a la izquierda y la hora es anterior a las 10:00. El formato predeterminado es h:mm:ss.
AM/PMUsa el reloj de 12 horas y muestra AM en mayúsculas con cualquier hora antes del mediodía; muestra PM en mayúsculas con cualquier hora entre el mediodía y las 11:59 p.m.
AM/PMUsa el reloj de 12 horas y muestra AM en minúsculas con cualquier hora antes del mediodía; muestra PM en minúsculas con cualquier hora entre el mediodía y las 11:59 p.m.
A/PUsa el reloj de 12 horas y muestra una A mayúscula con cualquier hora antes del mediodía; muestra una P mayúscula con cualquier hora entre el mediodía y las 11:59 p.m.
A/PUsa el reloj de 12 horas y muestra una A minúscula con cualquier hora antes del mediodía; muestra una P minúscula con cualquier hora entre el mediodía y las 11:59 p.m.
AMPMUsa el reloj de 12 horas y muestra el literal de cadena AM tal y como lo define el sistema con cualquier hora antes del mediodía; muestra el literal de cadena PM tal y como lo define el sistema con cualquier hora entre el mediodía y las 11:59 p.m. AMPM puede estar en mayúsculas o en minúsculas, pero coincidirá con la cadena tal y como la defina la configuración del sistema. El formato predeterminado es AM/PM. Si el sistema se define en el reloj de 24horas, la cadena se establece normalmente en una cadena vacía.

El formato de fecha y hora usa la configuración regional actual del usuario para dar formato la cadena. Por ejemplo, considere la fecha 25 de junio de 2020. Cuando se aplica formato con la cadena de formato "m/d/yyyy", será:

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

Ejemplos de formatos personalizados de fecha y hora

En los ejemplos siguientes se usa la fecha y hora jueves, 25 de junio de 2020, a las 13:23:45. Alemania (de-DE) utiliza el sistema de 24horas. No hay equivalentes de A.M. ni P.M.

FormatoResultado (en-US)Resultado (de-DE)
"c"06/25/2020 13:23:4525.06.2020 13:23:45
"d"2525
"dd"2525
"ddd"Ju.Cosas que hacer
"dddd"JuevesDonnerstag
"ddddd"06/25/202025.06.2020
"dddddd"Thursday, June 25, 2020Donnerstag, 25. Juni 2020
"w"55
"ww"2626
"m"66
"mm"0606
"mmm"JunJun
"mmmm"JunioJuni
"q"22
"y"177177
"yy"2020
"yyyy"20202020
"""Year"" yyyy"Año 2020Año 2020
"yyyy \Qq"2020 T22020 T2
"dd/mm/yyyy"25/06/202025.06.2020
"mm/dd/yyyy"06/25/202006.25.2020
"h:nn:ss"13:23:4513:23:45
"h:nn:ss AMPM"1:23:45 PM1:23:45
"hh:nn:ss"13:23:4513:23:45
"hh:nn:ss AMPM"01:23:45 PM01:23:45
"ttttt"13:23:4513:23:45
"ttttt AMPM"13:23:45 PM13:23:45
"mm/dd/yyyy hh:nn:ss AMPM"06/25/2020 01:23:45 PM6.25.2020 01:23:45

FAQs

How do I format a DAX code? ›

At the moment of writing, DAX Editor already support this code formatting style (use the Visual Studio shortcuts CTRL+K, CTRL+D to format the entire DAX document and CTRL+K, CTRL+F to format the current selection) and I hope that DAX Studio will support it soon in a future release.

How do you write a function in DAX? ›

Unfortunately, you can't define functions in DAX. (There are some clunky workarounds like defining a parameter table to use as the domain of the function and using filters on that table to pass values into the function but that's not feasible for large domains.)

What are the most common DAX functions you have used? ›

DAX Functions for Power BI: Date and Time Functions

DAX Date and Time functions follow the similar syntax and rules as the Excel date and time functions but operate on DAX's data type to calculate the values of time and date.

How do I format code? ›

Either open your file in the editor and press Ctrl+Alt+Shift+L or in the Project tool window, right-click the file and select Reformat Code.

How can I learn DAX easily? ›

The best way to learn DAX is to create some basic formulas, use them with actual data, and see the results for yourself. The examples and tasks here use the Contoso Sales Sample for Power BI Desktop file. This sample file is the same one used in the Tutorial: Create your own measures in Power BI Desktop article.

Is DAX a skill? ›

Data Analysis Expressions (DAX) is a library of functions and operators that can be combined to build formulas and expressions in Power BI, Analysis Services, and Power Pivot in Excel data models. The DAX language is worth learning because it can really add to the flexibility of your work.

Is DAX similar to Excel? ›

DAX formulas are very similar to Excel formulas. To create one, you type an equal sign, followed by a function name or expression, and any required values or arguments.

How many DAX formulas are there? ›

The DAX function reference provides detailed information including syntax, parameters, return values, and examples for each of the over 250 functions used in Data Analysis Expression (DAX) formulas.

Is DAX a functional language? ›

DAX is described as a functional language, which means calculations primarily use functions to generate results. A wide variety of functions are provided to help with arithmetic, string manipulation, date and time handling, and more. Functions can be nested but you cannot create your own.

How do I edit DAX in Excel? ›

To do this, right-click on the second table and select “Table”. And then “Edit DAX”. An editor will appear, which will allow us to create our own DAX query. We now change the command type from “Table” to “DAX”.

Videos

1. Learn to Format DAX (without DAX Formatter)
(Goodly)
2. Función FORMAT Explicada a Detalle 🧐
(Sandielly Ortega)
3. DAX Formatter
(SQLBI)
4. DAX Language - FORMAT Function in Power BI
(BI Way)
5. FORMAT function (DAX) - DAX FORMAT function in Power BI | #Formatdaxfunction
(laxmi skills)
6. Create a DateKey YYYYMMDD format using DAX Format Function Power BI
(Learn 2 Excel)
Top Articles
Latest Posts
Article information

Author: Pres. Carey Rath

Last Updated: 11/21/2022

Views: 6581

Rating: 4 / 5 (41 voted)

Reviews: 80% of readers found this page helpful

Author information

Name: Pres. Carey Rath

Birthday: 1997-03-06

Address: 14955 Ledner Trail, East Rodrickfort, NE 85127-8369

Phone: +18682428114917

Job: National Technology Representative

Hobby: Sand art, Drama, Web surfing, Cycling, Brazilian jiu-jitsu, Leather crafting, Creative writing

Introduction: My name is Pres. Carey Rath, I am a faithful, funny, vast, joyous, lively, brave, glamorous person who loves writing and wants to share my knowledge and understanding with you.