Funciones Dax
Funciones Dax
Funciones Dax
DAX es una colección de funciones, operadores y constantes que se pueden usar en una fórmula
o expresión para calcular y devolver uno o más valores. Dicho de manera más simple, DAX te
ayuda a crear nueva información a partir de datos que ya están en tu modelo.
Funciones de agregación
DAX tiene varias funciones de agregación, incluidas las siguientes funciones de uso general:
SUM
AVERAGE
MIN
MAX
SUMX (y otras funciones X)
Estas funciones solo funcionan en columnas numéricas y generalmente solo pueden agregar
una columna a la vez.
Sin embargo, las funciones de agregación especiales que terminan en X , como SUMX , pueden
funcionar en múltiples columnas. Estas funciones se repiten en la tabla y evalúan la expresión
de cada fila.
SUM
Suma todos los números de una columna.
Sintaxis
SUM(<column>)
Sintaxis
AVERAGE(<column>)
Column: Columna que contiene los números para los que desea obtener la media.
MIN
Devuelve el menor valor numérico de una columna. Omite los valores lógicos y el texto.
Sintaxis
MIN(<column>)
MAX
Devuelve el mayor valor numérico de una columna.
Sintaxis
MAX(<column>)
Sintaxis
SUMX(<table>, <expression>)
Table: Tabla que contiene las filas para las que se evaluará la expresión.
Funciones de conteo
Las funciones de conteo a menudo usadas en DAX incluyen lo siguiente:
COUNT
COUNTA
COUNTBLANK
COUNTROWS
DISTINCTCOUNT
Estas funciones cuentan elementos diferentes, como valores distintos, valores no vacíos y filas
de tablas.
Sintaxis
COUNT(<column>)
COUNTA
La función COUNTA cuenta el número de celdas de una columna que no están vacías. No solo
cuenta las filas que contienen valores numéricos, sino también las filas que contienen valores
que no estén en blanco, incluido el texto, las fechas y los valores lógicos.
Sintaxis
COUNTA(<column>)
COUNTBLANK
Cuenta el número de celdas en blanco en una columna.
Sintaxis
COUNTBLANK(<column>)
Column: La columna que contiene las celdas en blanco que se van a contar.
COUNTROWS
Sintaxis
COUNTROWS(<table>)
Table: El nombre de la tabla que contiene las filas que se van a contar o una expresión que
devuelve una tabla.
DISTINCTCOUNT
La función DISTINCTCOUNT cuenta el número de celdas distintas de una columna de números.
Sintaxis
DISTINCTCOUNT(<column>)
Estas funciones especiales también se pueden expresar con operadores. Por ejemplo, AND
puede escribirse como (reemplazado con) && en su fórmula DAX.
Puede usar operadores (como && ) cuando necesite más de dos condiciones en su fórmula, pero
de lo contrario, es mejor usar el nombre de la función en sí (como AND ) para la legibilidad de su
código DAX.
AND
Comprueba si ambos argumentos son TRUE y devuelve TRUE en ese caso. De lo contrario,
devuelve false.
Sintaxis
AND(<logical1>,<logical2>)
OR
Comprueba si uno de los argumentos es TRUE para devolver TRUE. La función devuelve FALSE
si ambos argumentos son FALSE.
Sintaxis
OR(<logical1>,<logical2>)
NOT
Cambia FALSE a TRUE o TRUE a FALSE.
Sintaxis
NOT(<logical>)
Logical: Valor o expresión que puede dar como resultado TRUE o FALSE.
IF
Comprueba si se cumple la condición proporcionada como primer argumento. Devuelve un valor
si la condición es TRUE y devuelve otro valor si la condición es FALSE.
Sintaxis
IF(logical_test>,<value_if_true>, value_if_false)
Logical_test: Cualquier valor o expresión que puede dar como resultado TRUE o FALSE.
IFERROR
Evalúa una expresión y devuelve un valor especificado si la expresión devuelve un error; en caso
contrario devuelve el valor de la expresión.
Sintaxis
IFERROR(value, value_if_error)
Funciones de información
Las funciones de información en DAX incluyen:
ISBLANK
ISNUMBER
ISTEXT
ISNONTEXT
ISERROR
Si bien estas funciones pueden ser útiles desde el punto de vista de la situación, es útil conocer
el tipo de datos de sus columnas antes de tiempo, en lugar de depender de estas funciones para
proporcionar el tipo de datos.
DAX usa las funciones MAX y MIN para agregar valores y comparar valores.
ISBLANK
Comprueba si un valor está en blanco y devuelve TRUE o FALSE.
Sintaxis
ISBLANK(<value>)
ISNUMBER
Comprueba si un valor es un número y devuelve TRUE o FALSE
Sintaxis
ISNUMBER(<value>)
ISTEXT
Comprueba si un valor es texto y devuelve TRUE o FALSE.
Sintaxis
ISTEXT(<value>)
ISNONTEXT
Comprueba si un valor no es texto (las celdas en blanco no son texto) y devuelve TRUE o FALSE.
Sintaxis
ISNONTEXT(<value>)
ISERROR
Comprueba si un valor es un error, y devuelve TRUE o FALSE.
Sintaxis
ISERROR(<value>)
value
El valor que quiere comprobar.
Funciones de texto
Las funciones de texto en DAX incluyen lo siguiente:
CONCATENTATE
REPLACE
SEARCH
UPPER
FIXED
Estos textos funcionan de forma muy similar a las funciones de Excel que tienen el mismo
nombre, por lo que si está familiarizado con la forma en que Excel maneja las funciones de texto,
ya está un paso adelante. De lo contrario, siempre puede experimentar con estas funciones en
Power BI y obtener más información sobre cómo se comportan.
CONCATENTATE
Combina dos cadenas de texto en una sola.
Sintaxis
CONCATENATE(<text1>, <text2>)
text1, text2: Cadenas de texto que se van a combinar en una única cadena de texto. Las cadenas
pueden incluir texto o números.
También puede utilizar referencias de columna.
REPLACE
REPLACE reemplaza parte de una cadena de texto, en función del número de caracteres que
especifique, con una cadena de texto diferente.
Sintaxis
REPLACE(<old_text>, <start_num>, <num_chars>, <new_text>)
SEARCH
Devuelve el número del carácter en el que se encuentra por primera vez un carácter o cadena
de texto concretos, si se lee de izquierda a derecha. En la búsqueda no se distinguen mayúsculas
y minúsculas, y se distinguen caracteres acentuados.
Sintaxis
SEARCH(<find_text>, <within_text>[, [<start_num>][, <NotFoundValue>]])
within_text: Texto en el que desea buscar find_text o una columna que lo contiene.
start_num: (opcional) Posición del carácter en within_text en la que desea empezar a buscar. Si
se omite, es 1.
NotFoundValue: (Opcional) el valor que se devuelve cuando la operación no encuentra una
subcadena coincidentes, normalmente 0, -1 o BLANK().
UPPER
Convierte una cadena de texto en letras mayúsculas
Sintaxis
UPPER (<text>)
Text: El texto que desea convertido en mayúsculas o una referencia a una columna que contiene
texto.
FIXED
Redondea un número a la cantidad especificada de decimales y devuelve el resultado como
texto. Puede especificar que el resultado se devuelva con o sin comas.
Sintaxis
FIXED(<number>, <decimals>, <no_commas>)
Number: Número que desea redondear y convertir en texto, o una columna que contiene un
número.
Decimals: (opcional) Número de dígitos situados a la derecha del separador decimal; si se omite,
es 2.
Si bien estas funciones son útiles para calcular y extraer información de los valores de fecha , no
se aplican a la inteligencia de tiempo, que utiliza una tabla de fechas.
Función DATE
Devuelve la fecha especificada en el formato DATETIME.
Sintaxis:
DATE(<year>, <month>, <day>)
érmino Definición
MONTH Número que representa el mes o un cálculo según las siguientes reglas:
Si month es un número comprendido entre 1 y 12, representa un mes del año. 1 representa enero, 2
representa febrero y así sucesivamente hasta 12 que representa diciembre.
Si escribe un entero mayor que 12, se produce el siguiente cálculo: la fecha se calcula sumando el valor
de mes al año. Por ejemplo, si tiene DATE(2008, 18, 1), la función devuelve un equivalente del valor
datetime del 1 junio de 2009, porque se suman 18 meses al principio de 2008, lo que da como resultado
el valor de junio de 2009. Vea los ejemplos a continuación.
Si escribe un entero negativo, se produce el siguiente cálculo: se calcula la fecha restando el valor de
mes al año. Por ejemplo, si tiene DATE(2008, -6, 15), la función devuelve el equivalente del valor
DAY Número que representa el día o un cálculo según las siguientes reglas:
Si día es un número comprendido entre 1 y el último día del mes dado, entonces representa un día del
mes.
Si escribe un entero mayor que el último día del mes dado, se produce el siguiente cálculo: la fecha se
calcula sumando el valor de día al mes. Por ejemplo, en la fórmula DATE(2008,3,2), La función DATE
devuelve un valor de datetime equivalente al 1 de abril de 2008, porque se suman 32 días al primero
de marzo, lo que da como resultado el 1 de abril.
Si escribe un entero negativo, se produce el siguiente cálculo: se calcula la fecha restando el valor de
day al month. Por ejemplo, en la fórmula DATE( 2008, 5, -15), La función DATE devuelve un valor
de datetime equivalente al 15 de abril de 2008, porque se resta 15 días del primero de mayo de 2008,
lo que da como resultado abril de 2008.
Si Day tiene una parte decimal, se redondea al valor entero más próximo.
Función DATEVALUE
Convierte una fecha del formato de texto al formato de fecha y hora.
Sintaxis
DATEVALUE(date_text)
Función DAY
Devuelve el día del mes, un número comprendido entre 1 y 31.
Sintaxis
DAY(<date>)
Date: Una fecha en formato datetime o una representación en texto de una fecha.
Función EDATE
Devuelve la fecha, que corresponde al número indicado de meses antes o después de la fecha
de inicio. Use EDATE para calcular las fechas de vencimiento que tienen lugar el mismo día del
mes que la fecha de emisión.
Sintaxis
EDATE(<start_date>, <months>)
Función EOMONTH
Devuelve la fecha en el formato datetime del último día del mes, antes o después de un número
especificado de meses. Use EOMONTH para calcular las fechas de vencimiento que tienen lugar
el último día del mes.
Función HOUR
Devuelve la hora como un número de 0 (12:00 a.m.) a 23 (11:00 p.m.)
Sintaxis
HOUR(<datetime>)
Función MINUTE
Devuelve el minuto como un número de 0 a 59, según un valor de fecha y hora.
Sintaxis
MINUTE(<datetime>)
Datetime: Valor o texto datetime en un formato de hora aceptado, como 16:48:00 o 4:48 p.m.
Función MONTH
Devuelve el mes como un número de 1 (enero) a 12 (diciembre).
Sintaxis
MONTH(<datetime>)
Función NOW
Devuelve la fecha y hora actuales en formato datetime.
Sintaxis
NOW()
Función SECOND
De los segundos de un valor de hora como un número de 0 a 59.
Sintaxis
SECOND(<time>)
Función TIME
Convierte las horas, minutos y segundos dados como números en una hora en formato datetime.
Sintaxis
TIME(hour, minute, second)
Función TIMEVALUE
Convierte una hora en formato de texto al formato de fecha y hora.
Sintaxis
TIMEVALUE(time_text)
time_text: Cadena de texto que representa una hora del día. Se omite cualquier información de
fecha incluida en el argumento time_text.
Función TODAY
Devuelve la fecha actual.
Sintaxis
TODAY()
Función WEEKDAY
Devuelve un número de 1 a 7 para identificar el día de la semana de una fecha. De forma
predeterminada, los días están comprendidos entre 1 (domingo) y 7 (sábado).
Sintaxis
WEEKDAY(<date>, <return_type>)
Tipo devuelto
Inicio de la semana
1 La semana comienza en domingo (1) y termina el sábado (7).
2 La semana comienza en lunes (1) y termina el domingo (7).
3 La semana comienza en lunes (0) y termina el domingo (6).
Función WEEKNUM
Devuelve el número de semana de la fecha y el año dados según el valor de return_type. El
número de semana indica la posición numérica de dicha semana en un año.
Sintaxis
WEEKNUM(<date>, <return_type>)
Tipo devuelto
Inicio de la semana
1: La semana empieza el domingo. Los días de la semana se numeran del 1 al 7.
2: La semana empieza el lunes. Los días de la semana se numeran del 1 al 7.
Función YEAR
Devuelve el año de una fecha como un entero de cuatro dígitos en el intervalo de 1900 a 9999.
Sintaxis
YEAR(<date>)
Date: Fecha en formato de texto o datetime, que contiene el año que desea buscar.
Función YEARFRAC
Calcula la fracción del año representada por el número de días enteros entre dos fechas. Use la
función de hoja de cálculo YEARFRAC para identificar la proporción de los beneficios o las
obligaciones de todo un año que se asignará a un período determinado.
Sintaxis
YEARFRAC(<start_date>, <end_date>, <basis>)
Basis Descripción
0 US (NASD) 30/360
1 Actual/actual
2 Actual/360
3 Actual/365
4 European 30/360
Estas funciones devuelven una tabla completa en lugar de un valor. Normalmente, utilizará los
resultados de una función de tabla en análisis posteriores como parte de una expresión mayor,
en lugar de usar una tabla devuelta con un valor final. Es importante tener en cuenta que cuando
utiliza una función de tabla, los resultados heredan las relaciones de sus columnas.
Puede mezclar funciones de tabla en su expresión, siempre que cada función use una tabla y
devuelva una tabla.
FILTER
Devuelve una tabla que representa un subconjunto de otra tabla o expresión.
Sintaxis
FILTER(<table>,<filter>)
Table: Tabla que se va a filtrar. La tabla también puede ser una expresión que dé una tabla como
resultado.
Filter: Expresión booleana que se evaluará para cada fila de la tabla. Por ejemplo, [Amount] > 0
o [Region] = "France"
CALCUALTE
Evalúa una expresión en un contexto que está modificado por los filtros especificados.
Sintaxis
CALCULATE(<expression>,<filter1>,<filter2>…)
EARLIER
Devuelve el valor actual de la columna especificada en un paso de la evaluación exterior de la
columna mencionada.
EARLIER es útil para los cálculos anidados en que se desea usar un cierto valor como entrada
para generar cálculos basados en esa entrada. En Microsoft Excel, estos cálculos solo se pueden
realizar dentro del contexto de la fila actual; sin embargo, en DAX el valor de la entrada se puede
almacenar y, a continuación, realizar el cálculo con los datos de la tabla completa.
Sintaxis
EARLIER(<column>, <number>)
ALL
Devuelve todas las filas de una tabla o todos los valores de una columna; se omiten los filtros
que se puedan haber aplicado. Esta función resulta útil para borrar filtros y crear cálculos en
todas las filas de una tabla.
Sintaxis
ALL( {<table> | <column>[, <column>[, <column>[,…]]]} )
ALLSELECTED
Quita los filtros de contexto de las columnas y filas de la consulta actual, a la vez que mantiene
todos los demás filtros de contexto o filtros explícitos.
La función ALLSELECTED obtiene el contexto que representa todas las filas y columnas de la
consulta, a la vez que conserva los filtros explícitos y los contextos que no sean filtros de fila y
de columna. Esta función se puede utilizar para obtener totales visuales en las consultas.
Sintaxis
ALLSELECTED([<tableName> | <columnName>])
tableName: Nombre de una tabla existente, con la sintaxis estándar de DAX. Este parámetro no
puede ser una expresión. Este parámetro es opcional.
columnName: Nombre, normalmente completo, de una columna existente que utiliza sintaxis
estándar de DAX. No puede ser una expresión. Este parámetro es opcional.
ALLEXCEPT
Quita todos los filtros de contexto de la tabla excepto los filtros que se han aplicado a las
columnas especificadas.
Sintaxis
ALLEXCEPT(<table>,<column>[,<column>[,…]])
Table: La tabla de la que se quitan todos los filtros de contexto, excepto los filtros de la columnas
que se especifican en los argumentos subsiguientes.
El primer argumento para la función ALLEXCEPT debe ser una referencia a una tabla base;
todos los argumentos subsiguientes deben ser referencias a las columnas base. Con la función
ALLEXCEPT no se pueden usar expresiones de tabla o de columna.
VALUES
Devuelve una tabla de una columna que contiene los valores distintos de la tabla o columna
especificada. En otras palabras, los valores duplicados se quitan y solo se devuelven los valores
únicos.
Nota:
Esta función no se puede usar para devolver valores en una celda o columna de una hoja de
cálculo, sino que más bien se usa como una función intermedia, anidada en una fórmula, para
obtener una lista de los distintos valores que se pueden contar, o usar para filtrar o sumar otros
valores.
Sintaxis
VALUES(<TableNameOrColumnName>)
DISTINCT
Devuelve una tabla de una columna que contiene los valores distintos de la columna
especificada. En otras palabras, los valores duplicados se quitan y solo se devuelven los valores
únicos.
Nota:
Esta función no se puede usar para devolver valores en una sola columna de una hoja de cálculo;
en vez de eso, se mira la función DISTICNT dentro de una fórmula para obtener una lista de los
valores distintos que se pueden pasar otra función y, a continuación, contarse, sumarse o usarse
para otras operaciones.
Sintaxis
DISTINCT(<column>)
Column: Columna de la que se devuelven los valores únicos. O una expresión que devuelve una
columna.
RELATED
Devuelve un valor relacionado de otra tabla.
Sintaxis
RELATED(<column>)
RELATEDTABLE
Evalúa una expresión de tabla en un contexto modificado por los filtros dados.
tableName: Nombre de una tabla existente, con la sintaxis estándar de DAX. No puede ser una
expresión.
Función CLOSINGBALANCEMONTH
Función DATEADD
Función DATESBETWEEN
Función DATESYTD
Función ENDOFMONTH
Función FIRSTDATE
Función LASTDATE
Función OPENINGBALANCEYEAR
Función PARALLELPERIOD
Función SAMEPERIODLASTYEAR
Función TOTALMTD
Función CLOSINGBALANCEMONTH
Evalúa la expression de la última fecha del mes en el contexto actual.
Sintaxis
CLOSINGBALANCEMONTH(<expression>,<dates>[,<filter>])
Función DATEADD
Devuelve una tabla que contiene una columna de fechas, desplazada cada una de ellas hacia
delante o hacia atrás en el tiempo de acuerdo con el número especificado de intervalos de fechas
en el contexto actual.
Sintaxis
DATEADD(<dates>,<number_of_intervals>,<interval>)
Sintaxis
DATESBETWEEN(<dates>,<start_date>,<end_date>)
Función DATESYTD
Devuelve una tabla que contiene una columna con las fechas del año hasta la fecha, en el
contexto actual.
Sintaxis
DATESYTD(<dates> [,<year_end_date>])
Función ENDOFMONTH
Devuelve la última fecha del mes en el contexto actual para la columna de fechas especificada.
Sintaxis
ENDOFMONTH(<dates>)
Función FIRSTDATE
Devuelve la primera fecha en el contexto actual para la columna de fechas especificada.
Sintaxis
FIRSTDATE(<dates>)
Función LASTDATE
Devuelve la última fecha en el contexto actual para la columna de fechas especificada.
Sintaxis
LASTDATE(<dates>)
Función OPENINGBALANCEYEAR
Evalúa la expression de la primera fecha del año en el contexto actual.
Sintaxis
OPENINGBALANCEYEAR(<expression>,<dates>[,<filter>][,<year_end_date>])
Función PARALLELPERIOD
Devuelve una tabla que contiene una columna de fechas que representa un paralelo del período
de las fechas de la columna dates especificada, en el contexto actual, con las fechas desplazadas
varios intervalos que reenvían a un tiempo posterior o uno anterior.
Sintaxis
PARALLELPERIOD(<dates>,<number_of_intervals>,<interval>)
Función SAMEPERIODLASTYEAR
Devuelve una tabla que contiene una columna de fechas desplazadas un año atrás en el tiempo
en la columna dates especificada, en el contexto actual.
Sintaxis
SAMEPERIODLASTYEAR(<dates>)
Función TOTALMTD
Evalúa el valor de la expression para el mes hasta la fecha, en el contexto actual.
Sintaxis
TOTALMTD(<expression>,<dates>[,<filter>])