Excel DAX - Funciones

La mayoría de DAX functionstienen los mismos nombres y funciones que las funciones de Excel. Sin embargo, las funciones de DAX se han modificado para utilizar tipos de datos de DAX y trabajar con tablas y columnas.

DAX tiene algunas funciones adicionales que no encontrará en Excel. Estas funciones de DAX se proporcionan para fines específicos, como búsquedas basadas en relaciones asociadas con los aspectos de la base de datos relacional del modelo de datos, la capacidad de iterar sobre una tabla para realizar cálculos recursivos, realizar agregaciones dinámicas y cálculos que utilizan inteligencia de tiempo.

En este capítulo, aprenderá sobre las funciones admitidas en el lenguaje DAX. Para obtener más información sobre el uso de estas funciones de DAX, consulte el tutorial - Funciones de DAX en esta biblioteca de tutoriales.

¿Qué es una función DAX?

Una función DAX es una función incorporada que se proporciona en el lenguaje DAX para permitirle realizar varias acciones en los datos de las tablas de su modelo de datos. Como se mencionó anteriormente, DAX se utiliza para fines de análisis de datos e inteligencia empresarial que requieren soporte para extraer, asimilar y derivar conocimientos de los datos. Las funciones de DAX que se basan en el modelo de datos le proporcionan estas utilidades que simplifican su trabajo, una vez que comprenda el lenguaje de DAX y el uso de las funciones de DAX.

Funciones de Excel frente a funciones de DAX

Existen ciertas similitudes entre las funciones de Excel que conoce y las funciones de DAX. Sin embargo, también existen ciertas diferencias. Debe tener claridad sobre estos, de modo que pueda evitar cometer errores en el uso de las funciones DAX y al escribir fórmulas DAX que incluyen funciones DAX.

Similitudes entre las funciones de Excel y las funciones de DAX

  • Muchas funciones de DAX tienen el mismo nombre y el mismo comportamiento general que las funciones de Excel.

  • DAX tiene funciones de búsqueda que son similares a las funciones de búsqueda de matrices y vectores en Excel.

Diferencias entre funciones de Excel y funciones de DAX

  • Las funciones de DAX se han modificado para aceptar diferentes tipos de entradas y algunas de las funciones de DAX pueden devolver un tipo de datos diferente. Por lo tanto, debe comprender el uso de estas funciones por separado, aunque tienen el mismo nombre. En este tutorial, encontrará todas las funciones de DAX con el prefijo DAX para evitar confusiones con las funciones de Excel.

  • No puede utilizar funciones de DAX en una fórmula de Excel o utilizar fórmulas / funciones de Excel en DAX, sin las modificaciones necesarias.

  • Las funciones de Excel toman una referencia de celda o un rango de celdas como referencia. Las funciones DAX nunca toman una referencia de celda o un rango de celdas como referencia, sino que toman una columna o tabla como referencia.

  • Las funciones de fecha y hora de Excel devuelven un número entero que representa una fecha como número de serie. Las funciones de fecha y hora de DAX devuelven un tipo de datos de fecha y hora que está en DAX pero no en Excel.

  • Excel no tiene funciones que devuelvan una tabla, pero algunas funciones pueden funcionar con matrices. Muchas de las funciones de DAX pueden hacer referencia fácilmente a tablas y columnas completas para realizar cálculos y devolver una tabla o columna de valores. Esta capacidad de DAX agrega potencia a Power Pivot, Power View y Power BI, donde se usa DAX.

  • Las funciones de búsqueda de DAX requieren que se establezca una relación entre las tablas.

  • Excel admite tipos de datos variantes en una columna de datos, es decir, puede tener datos de diferentes tipos de datos en una columna. Considerando que, DAX espera que los datos en una columna de una tabla sean siempre del mismo tipo de datos. Si los datos no son del mismo tipo de datos, DAX cambia toda la columna al tipo de datos que mejor se adapta a todos los valores de la columna. Sin embargo, si los datos se importan y surge este problema, DAX puede marcar un error.

Para obtener información sobre los tipos de datos DAX y la conversión de tipos de datos, consulte el capítulo - Referencia de sintaxis de DAX.

Tipos de funciones DAX

DAX admite los siguientes tipos de funciones.

  • Funciones con valores de tabla DAX
    • Funciones de filtro DAX
    • Funciones de agregación de DAX
    • Funciones de DAX Time Intelligence
  • Funciones de fecha y hora de DAX
  • Funciones de información de DAX
  • Funciones lógicas de DAX
  • Funciones DAX Math y Trig
  • Otras funciones de DAX
  • Funciones principales y secundarias de DAX
  • Funciones estadísticas de DAX
  • Funciones de texto DAX

En esta sección, aprenderá sobre las funciones de DAX a nivel de categoría de funciones. Para obtener detalles sobre la sintaxis de la función DAX y lo que devuelve y hace la función DAX, consulte el tutorial de funciones DAX en esta biblioteca de tutoriales.

Las funciones de inteligencia de tiempo de DAX y las funciones de filtro de DAX son potentes y requieren una mención especial. Consulte los capítulos: Comprensión de la inteligencia de tiempo de DAX y las funciones de filtro de DAX para obtener más detalles.

Funciones con valores de tabla DAX

Muchas funciones de DAX toman tablas como tablas de entrada o salida, o hacen ambas cosas. Estas funciones DAX se denominan funciones con valores de tabla DAX. Debido a que una tabla puede tener una sola columna, las funciones con valores de tabla de DAX también toman columnas individuales como entradas. Tiene los siguientes tipos de funciones con valores de tabla DAX:

  • Funciones de agregación de DAX
  • Funciones de filtro DAX
  • Funciones de inteligencia de tiempo DAX

Comprender las funciones con valores de tabla de DAX le ayuda a escribir fórmulas de DAX de forma eficaz.

Funciones de agregación de DAX

Las funciones de agregación de DAX agregan cualquier expresión sobre las filas de una tabla y son útiles en los cálculos.

A continuación se muestran algunas funciones de agregación de DAX:

  • ADDCOLUMNS (<tabla>, <nombre>, <expresión>, [<nombre>, <expresión>]…)

  • PROMEDIO (<columna>)

  • PROMEDIOEA (<columna>)

  • PROMEDIO (<tabla>, <expresión>)

  • COUNT (<columna>)

  • CONTAR (<columna>)

  • CONTARA (<tabla>, <expresión>)

  • CONTAR.BLANCO (<columna>)

  • COUNTROWS (<tabla>)

  • COUNTX (<tabla>, <expresión>)

  • CROSSJOIN (<tabla1>, <tabla2>, [<tabla3>]…)

  • DISTINCTCOUNT (<columna>)

  • GENERAR (<tabla1>, <tabla2>)

  • GENERAR TODO (<tabla1>, <tabla2>)

  • MAX (<columna>)

  • MAXA (<columna>)

  • MAXX (<tabla>, <expresión>)

  • MIN (<columna>)

  • MINA (<columna>)

  • MINX (<tabla>, <expresión>)

  • PRODUCTO (<columna>)

  • PRODUCTX (<tabla>, <expresión>)

  • FILA (<nombre>, <expresión>, [<nombre>, <expresión>]…)

  • SELECTCOLUMNS (<tabla>, <nombre>, <expresión_escalar>,

  • [<nombre>, <expresión_escalar>]…)

  • SUM (<columna>)

  • SUMMARIZE (<tabla>, <groupBy_columnName>, [<groupBy_columnName>]…, [<name>, <expression>]…)

  • SUMX (<tabla>, <expresión>)

  • TOPN (<n_valor>, <tabla>, <orderBy_expression>, [<order>], [<orderBy_expression>, [<order>]]…)

Funciones de filtro DAX

Las funciones de filtro DAX devuelven una columna, una tabla o valores relacionados con la fila actual. Puede utilizar las funciones de filtro DAX para devolver tipos de datos específicos, buscar valores en tablas relacionadas y filtrar por valores relacionados. Las funciones de búsqueda de DAX funcionan mediante tablas y relaciones entre ellas. Las funciones de filtro DAX le permiten manipular el contexto de datos para crear cálculos dinámicos.

A continuación se muestran algunas funciones de filtro DAX:

  • ADDMISSINGITEMS (<showAllColumn>, [<showAllColumn>]…, <table>, <groupingColumn>, [<groupingColumn>]… [filterTable]…)

  • TODOS ({<tabla> | <columna>, [<columna>], [<columna>]…})

  • ALLEXCEPT (<tabla>, <columna>, [<columna>]…)

  • ALLNOBLANKROW(<table>|<column>)

  • ALLSELECTED ([<tableName> | <columnName>])

  • CALCULAR (<expresión>, <filtro1>, <filtro2>…)

  • CALCULATABLE (<expresión>, <filtro1>, <filtro2>…)

  • CROSSFILTER (<columnName1>, <columnName2>, <direction>)

  • DISTINCT (<columna>)

  • ANTES (<columna>, <número>)

  • EARLIEST(<column>)

  • FILTER(<table>,<filter>)

  • FILTERS(<columnName>)

  • HASONEFILTER(<columnName>)

  • HASONEVALUE(<columnName>)

  • ISCROSSFILjected (<columnName>)

  • ESFILTERIZADO (<nombre de columna>)

  • KEEPFILTERS (<expresión>)

  • RELATED(<column>)

  • RELATEDTABLE(<tableName>)

  • SUBSTITUTEWITHINDEX (<tabla>, <indexColumnName>, <indexColumnsTable>, <orderBy_expression>, [<order>], [<orderBy_expression>, [<order>]]…])

  • USERELATIONSHIP(<columnName1>,<columnName2>)

  • VALUES(<TableNameOrColumnName>)

Funciones de DAX Time Intelligence

Las funciones de DAX Time Intelligence devuelven una tabla de fechas o usan una tabla de fechas para calcular una agregación. Estas funciones de DAX lo ayudan a crear cálculos que respalden las necesidades del análisis de Business Intelligence al permitirle manipular datos utilizando períodos de tiempo, incluidos días, meses, trimestres y años.

A continuación se muestran algunas funciones de DAX Time Intelligence:

  • CLOSINGBALANCEMONTH (<expresión>, <fechas> [, <filtro>])

  • CLOSINGBALANCEQUARTER (<expresión>, <fechas>, [<filtro>])

  • CLOSINGBALANCEYEAR (<expresión>, <fechas>, [<filtro>], [<fecha_final_año>])

  • DATEADD (<fechas>, <número_de_intervalos>, <intervalo>)

  • DATESBETWEEN (<fechas>, <fecha_inicio>, <fecha_final>)

  • DATESINPERIOD (<fechas>, <fecha_inicio>, <número_de_intervalos>, <intervalo>)

  • DATESMTD (<fechas>)

  • DATESQTD (<fechas>)

  • DATESYTD (<fechas>, [<fecha_final_año>])

  • ENDOFMONTH (<fechas>)

  • ENDOFQUARTER (<fechas>)

  • ENDOFYEAR (<fechas>, [<fecha_final_año>])

  • FIRSTDATE (<fechas>)

  • FIRSTNONBLANK (<columna>, <expresión>)

  • LASTDATE (<fechas>)

  • LASTNONBLANK (<columna>, <expresión>)

  • PRÓXIMO (<fechas>)

  • PRÓXIMO MES (<fechas>)

  • NEXTQUARTER (<fechas>)

  • NEXTYEAR (<fechas>, [<fecha_final_año>])

  • OPENINGBALANCEMONTH (<expresión>, <fechas>, [<filtro>])

  • OPENINGBALANCEQUARTER (<expresión>, <fechas>, [<filtro>])

  • OPENINGBALANCEYEAR (<expresión>, <fechas>, [<filtro>], [<fecha_final_año>])

  • PARALLELPERIOD (<fechas>, <número_de_intervalos>, <intervalo>)

  • PREVIOUSDAY(<dates>)

  • PREVIOUSMONTH(<dates>)

  • PREVIOUSQUARTER(<dates>)

  • ANTERIOR (<fechas>, [<fecha_final_año>])

  • SAMEPERIODLASTYEAR(<dates>)

  • STARTOFMONTH(<dates>)

  • STARTOFQUARTER(<dates>)

  • STARTOFYEAR(<dates>)

  • TOTALMTD (<expresión>, <fechas>, [<filtro>])

  • TOTALQTD (<expresión>, <fechas>, [<filtro>])

  • TOTALYTD (<expresión>, <fechas>, [<filtro>], [<fecha_final_año>])

Funciones de fecha y hora de DAX

Las funciones de fecha y hora de DAX son similares a las funciones de fecha y hora de Excel. Sin embargo, las funciones de fecha y hora de DAX se basan en el tipo de datos de fecha y hora de DAX.

A continuación se muestran las funciones de fecha y hora de DAX:

  • FECHA (<año>, <mes>, <día>)
  • DATEVALUE(date_text)
  • DAY(<date>)
  • EDATE (<fecha_inicio>, <meses>)
  • EOMONTH (<fecha_inicio>, <meses>)
  • HOUR(<datetime>)
  • MINUTE(<datetime>)
  • MONTH(<datetime>)
  • NOW()
  • SECOND(<time>)
  • HORA (hora, minuto, segundo)
  • TIMEVALUE(time_text)
  • TODAY()
  • WEEKDAY (<fecha>, <tipo_de_retorno>)
  • WEEKNUM (<fecha>, <return_type>)
  • YEAR(<date>)
  • YEARFRAC (<fecha_inicio>, <fecha_final>, <base>)

Funciones de información de DAX

Las funciones de información de DAX observan la celda o fila que se proporciona como argumento y le indican si el valor coincide con el tipo esperado.

A continuación se muestran algunas funciones de información de DAX:

  • CONTIENE (<tabla>, <nombredecolumna>, <valor>, [<nombredecolumna>, <valor>] ...)

  • CUSTOMDATA()

  • ISBLANK(<value>)

  • ISERROR(<value>)

  • ISEVEN(number)

  • ISLOGICAL(<value>)

  • ISNONTEXT(<value>)

  • ISNUMBER(<value>)

  • ISONORAFTER (<scalar_expression>, <scalar_expression>, [sort_order], [<scalar_expression>, <scalar_expression>, [sort_order]]…)

  • ISTEXT(<value>)

  • LOOKUPVALUE (<result_columnName>, <search_columnName>, <search_value>, [<search_columnName>, <search_value>]…)

  • USERNAME()

Funciones lógicas de DAX

Las funciones lógicas de DAX devuelven información sobre los valores de una expresión. Por ejemplo, la función DAX TRUE le permite saber si una expresión que está evaluando devuelve un valor TRUE.

A continuación se muestran las funciones lógicas de DAX:

  • AND(<logical1>,<logical2>)
  • FALSE()
  • SI (prueba_lógica>, <valor_si_verdadero>, valor_si_falso)
  • SI.ERROR (valor, valor_si_error)
  • NOT(<logical>)
  • OR(<logical1>,<logical2>)
  • INTERRUPTOR (<expresión>, <valor>, <resultado>, [<valor>, <resultado>]…, [<else>])
  • TRUE()

Funciones DAX Math y Trig

Las funciones matemáticas y trigonométricas de DAX son muy similares a las funciones matemáticas y trigonométricas de Excel.

A continuación se muestran algunas funciones DAX Math y Trig:

  • ABS(<number>)
  • ACOS(number)
  • ACOSH(number)
  • ASIN(number)
  • ASINH(number)
  • ATAN(number)
  • ATANH(number)
  • TECHO (<número>, <significado>)
  • COMBIN (número, número_elegido)
  • COMBINA (número, número_elegido)
  • COS(number)
  • COSH(number)
  • CURRENCY(<value>)
  • DEGREES(angle)
  • DIVIDE (<numerador>, <denominador>, [<alternateresult>])
  • EVEN(number)
  • EXP(<number>)
  • FACT(<number>)
  • PISO (<número>, <significado>)
  • GCD (número1, [número2], ...)
  • INT(<number>)
  • ISO.CEILING (<número>, [<significado>])
  • MCM (número1, [número2], ...)
  • LN(<number>)
  • LOG(<number>,<base>)
  • LOG10(<number>)
  • INT(<number>)
  • MROUND (<número>, <múltiples>)
  • ODD(number)
  • PI()
  • POTENCIA (<número>, <potencia>)
  • PRODUCT(<column>)
  • PRODUCTX (<tabla>, <expresión>)
  • COCIENTE (<numerador>, <denominador>)
  • RADIANS(angle)
  • RAND()
  • RANDBETWEEN(<bottom>,<top>)
  • REDONDA (<número>, <número_dígitos>)
  • REDONDEAR (<número>, <num_digits>)
  • REDONDEAR (<número>, <número_dígitos>)
  • SIN(number)
  • SINH(number)
  • SIGN(<number>)
  • SQRT(<number>)
  • SUM(<column>)
  • SUMX (<tabla>, <expresión>)
  • TAN(number)
  • TANH(number)
  • TRUNC(<number>,<num_digits>)

Otras funciones de DAX

Estas funciones de DAX realizan acciones únicas que no pueden ser definidas por ninguna de las categorías a las que pertenecen la mayoría de las otras funciones.

A continuación se muestran algunas otras funciones de DAX:

  • EXCEPTO (<table_expression1>, <table_expression2>

  • GROUPBY (<tabla>, [<groupBy_columnName1>], [<nombre>, <expresión>]…)

  • INTERSECT (<tabla_expresión1>, <tabla_expresión2>)

  • ISEMPTY(<table_expression>)

  • NATURALINNERJOIN (<izquierdaJoinTable>, <derechaJoinTable>)

  • NATURALLEFTOUTERJOIN (<izquierdaJoinTable>, <derechaJoinTable>)

  • SUMMARIZECOLUMNS (<groupBy_columnName>, [<groupBy_columnName>]…, [<filterTable>]…, [<name>, <expression>]…)

  • UNION (<table_expression1>, <table_expression2>, [<table_expression>]…)

  • VAR <nombre> = <expresión>

Funciones principales y secundarias de DAX

Las funciones padre e hijo de DAX son útiles para administrar datos que se presentan como una jerarquía padre / hijo en el modelo de datos.

A continuación se muestran algunas funciones de DAX para padres e hijos:

  • RUTA (<ID_columnName>, <parent_columnName>)
  • PATHCONTAINS (<ruta>, <elemento>)
  • PATHITEM (<ruta>, <posición>, [<tipo>])
  • PATHITEMREVERSE (<ruta>, <posición>, [<tipo>])
  • PATHLENGTH(<path>)

Funciones estadísticas de DAX

Las funciones estadísticas de DAX son muy similares a las funciones estadísticas de Excel.

A continuación se muestran algunas funciones estadísticas de DAX:

  • BETA.DIST (x, alfa, beta, acumulativo, [A], [B])

  • BETA.INV (probabilidad, alfa, beta, [A], [B])

  • CHISQ.INV (probabilidad, grados_libertad)

  • CHISQ.INV.RT (probabilidad, grados_libertad)

  • CONFIDENCE.NORM (alpha, standard_dev, tamaño)

  • CONFIANZA.T (alfa, desarrollo_estándar, tamaño)

  • DATABLE (ColumnName1, DataType1, ColumnName2, DataType2 ..., {{Value1, Value2 ...}, {ValueN, ValueN + 1 ...} ...})

  • EXPON.DIST (x, lambda, acumulativo)

  • GEOMEAN(<column>)

  • GEOMEANX (<tabla>, <expresión>)

  • MEDIAN(<column>)

  • MEDIANX (<tabla>, <expresión>)

  • PERCENTILE.EXC (<columna>, <k>)

  • PERCENTILE.INC (<columna>, <k>)

  • PERCENTILEX.EXC (<tabla>, <expresión>, k)

  • PERCENTILEX.EXC (<tabla>, <expresión>, k)

  • POISSON.DIST (x, media, acumulativa)

  • RANK.EQ (<valor>, <columnName> [, <order>])

  • RANKX (<tabla>, <expresión> [, <valor> [, <orden> [, <tipos>]]])

  • SAMPLE (<n_value>, <tabla>, <orderBy_expression>, [<order>], [<orderBy_expression>, [<order>]]…)

  • STDEV.P(<ColumnName>)

  • STDEV.S(<ColumnName>)

  • STDEVX.P (<tabla>, <expresión>)

  • STDEVX.S (<tabla>, <expresión>)

  • SQRTPI(number)

  • VAR.P(<columnName>)

  • VAR.S(<columnName>)

  • VARX.P (<tabla>, <expresión>)

  • VARX.S (<tabla>, <expresión>)

  • XIRR (<tabla>, <valores>, <fechas>, [adivinar])

  • XNPV (<tabla>, <valores>, <fechas>, <tasa>)

Funciones de texto DAX

Las funciones de DAX Text funcionan con tablas y columnas. Con las funciones de texto de DAX, puede devolver la parte de una cadena, buscar texto dentro de una cadena o concatenar valores de cadena. También puede controlar los formatos de fechas, horas y números.

A continuación se muestran algunas funciones de texto DAX:

  • BLANK()
  • CODE(text)
  • CONCATENAR (<texto1>, <texto2>)
  • CONCATENATEX (<tabla>, <expresión>, [delimitador])
  • EXACT(<text1>,<text2>)
  • FIND (<find_text>, <within_text>, [<start_num>], [<NotFoundValue>])
  • FIJO (<número>, <decimales>, <no_commas>)
  • FORMAT (<valor>, <format_string>)
  • IZQUIERDA (<texto>, <num_chars>)
  • LEN(<text>)
  • LOWER(<text>)
  • MID (<texto>, <num_inicio>, <num_caracteres>)
  • REEMPLAZAR (<texto_antiguo>, <número_inicio>, <número_caracteres>, <texto_nuevo>)
  • REPETIR (<texto>, <num_veces>)
  • DERECHA (<texto>, <num_chars>)
  • BÚSQUEDA (<find_text>, <within_text>, [<start_num>], [<NotFoundValue>])
  • SUSTITUIR (<texto>, <texto_antiguo>, <texto_nuevo>, <num_instancia>)
  • TRIM(<text>)
  • SUPERIOR (<texto>)
  • VALUE(<text>)