Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Importante
Las clases quedaran grabadas y subidas en la plataforma, por
clase ya dictada.
DAX
Data Analysis Expressions
@BiwiserAcademy
¿Que es DAX?
• Medidas.
• Columnas calculadas.
• Tablas calculadas.
@BiwiserAcademy
Lenguaje funcional
@BiwiserAcademy
Diferencias con lenguaje Excel
@BiwiserAcademy
Tipos de calculos en DAX
• Se recalcula con la
actualización del reporte.
@BiwiserAcademy
FUNCIONES DAX
Data Analysis Expressions
@BiwiserAcademy
DAX – Estructura de una función
@BiwiserAcademy
DAX - Operadores
Los operadores aritméticos son utilizados para realizar operaciones matemáticas tales como sumas, restas o
multiplicaciones.
Operadores aritméticos Significado Ejemplo
+ (signo más) Suma 9+9
– (signo menos) Resta o inversión del signo 10-5
* (asterisco) Multiplicación 6*6
/ (barra diagonal) División 3/3
^ (símbolo de intercalación) Exponenciación 5^5
Los operadores de comparación permiten comparar dos valores, los cuales tendrán como resultado un valor
lógico, ya sea TRUE o FALSE.
Operadores de comparación Significado Ejemplo
= Igual a [Pais] = "Chile"
== Estrictamente igual a [Pais] == "Chile"
> Mayor que [Fecha Factura] > "Sept 2022"
< Menor que [Fecha Factura] < "Sept 2022"
>= Mayor o igual que [Venta] >= 2.000.000
<= Menor o igual que [Venta] <= 3.000.000
<> No igual a [Pais] <> "Chile"
@BiwiserAcademy
DAX - Funciones de Agregación
COUNT : Cuenta el número de filas de la columna especificada que contienen valores que no están en blanco.
Conteo Facturas Emitidas = COUNT(Comercial[N.º Factura])
Resultado = 1.200
COUNTROWS : Cuenta el número de filas de la tabla especificada o de una tabla definida por una expresión.
Cantidad de Registros tabla Comercial = COUNTROWS(Comercial)
Resultado = 1.200
@BiwiserAcademy
DAX - Funciones de Agregación
MAX : Devuelve el valor numérico mayor de una columna, o entre dos expresiones escalares.
MIN : Devuelve el valor numérico menor de una columna, o entre dos expresiones escalares.
@BiwiserAcademy
DAX - Funciones de Fecha / Hora
NOW : Devuelve la fecha y la hora actuales en formato datetime.
Fecha Now = NOW()
SECOND : Devuelve los segundos de un valor temporal como un número entre 0 y 59.
Segundo = SECOND(Comercial[Fecha])
Resultado = 50
MINUTE : Devuelve el minuto como un número entre 0 y 59, a partir de un valor de fecha y hora.
Minuto = MINUTE(Comercial[Fecha])
Resultado = 21
@BiwiserAcademy
DAX - Funciones de Fecha / Hora
YEAR : Devuelve el año de una fecha como un número entero de cuatro dígitos entre 1900 y 9999.
Año = YEAR(Comercial[Fecha])
Resultado = 2022
@BiwiserAcademy
DAX - Funciones de Fecha / Hora
WEEKDAY : Devuelve un número del 1 al 7 que identifica el día de la semana de una fecha.
Dia de semana = WEEKDAY(DATE(2022,10,21)) – Dia Viernes
Resultado = 6
WEEKNUM : Devuelve el número de semana de la fecha y el año especificados según el valor return_type (el tipo de valor devuelto).
Dia de semana = WEEKNUM(DATE(2022,10,21))
Resultado = 43
QUARTER : Devuelve el trimestre como un número del 1 al 4.
Trimestre = QUARTER(DATE(2022,10,21))
Resultado = 4
YEARFRAC : Calcula la fracción del año representada por el número de días enteros entre dos fechas.
Fracción Año = YEARFRAC(DATE(2022,01,01),DATE(2022,06,30))
Resultado = 0,50
@BiwiserAcademy
DAX - Funciones de Texto
RIGHT : Devuelve el último carácter o caracteres de una cadena de texto, en función del número de caracteres que especifique.
@BiwiserAcademy
DAX - Funciones de Texto
TRIM : Quita todos los espacios del texto, excepto los espacios individuales entre palabras.
Concatenado = TRIM(“Hola ”)
Resultado = Hola
@BiwiserAcademy
DAX - Funciones Lógicas
IF : Comprueba una condición y devuelve un valor cuando es "TRUE"; en caso contrario, devuelve un segundo valor
Sintaxis = IF(<Prueba Lógica>,<Verdadero>,<Falso>)
Función IF = IF( (10*11) > 100, "Es mayor que 100","Es menor que 100")
Resultado = Es mayor que 100
AND : Comprueba si los dos argumentos son TRUE y devuelve TRUE si todos lo son.
Función AND – Sintaxis 1 = IF( AND( (10*11) > 100, (10*11) < 109 ), "Es mayor que 100","Es menor que 100")
Cuando se necesitan más de dos condiciones puede cambiar AND por &&.
Función AND – Sintaxis 2 = IF( (10*11) > 100 && (10*11) < 109, "Dentro del intervalo","Fuera del intervalo")
Resultado = Fuera del intervalo
@BiwiserAcademy
DAX – Función Lógicas - SWITCH
SWITCH Evalúa una expresión en una lista de valores y devuelve una de varias expresiones de resultado
posibles.
SINTAXIS: SWITCH(<expresión>,
<Valor1>,<Resultado1>,
<Valor2>,<Resultado2>,<Else>)
@BiwiserAcademy
DAX – Función CALCULATE
CALCULATE es una de las funciones más importantes en el lenguaje DAX, ya que nos permite
evaluar expresiones en base a filtros aplicados, filtros los cuales pueden ser de un tipo de formato
de carácter Numérico, Fecha, Texto o Booleano.
SINTAXIS: CALCULATE(<expresión>,<filtro1>,<filtro2>…)
EJEMPLO: CALCULATE(SUM(Comercial[Ventas]),
Comercial[Pais]=“Chile”,
Comercial[Ciudad]=“Santiago”…)
@BiwiserAcademy
DAX – Contextos de cálculo - Filtro
El contexto de filtro aplica cuando Power BI permite filtrar una función previamente creada en función de un filtro.
Ejemplo: Medida “Suma de Importe”, se recalculará en función del o los filtros en selección
@BiwiserAcademy
DAX – Contextos de cálculo - Filas
El contexto de fila existe en el momento en el que se escribe una expresión en una columna calculada,
esta expresión se evalúa para cada fila de la tabla creando un contexto de fila para cada fila.
Este contexto también existe cuando utilizamos funciones DAX que cumplen un rol de “Iteradores”,
estas funciones en si finalizan en sus nombres con una “X” al final, por lo tanto, es más intuitivo poder
identificarlas, un par de ellas son:
• SUMX ()
• AVERAGEX ()
Por lo tanto, sus cálculos trabajan sobre una expresión de tabla, creando un contexto de fila.
@BiwiserAcademy
FUNCIONES
SUM
MIN
MAX
AVERAGE “Recordar… Encontraran muchas
MEDIAN funciones de Excel en DAX, como
DAY también funciones las cuales son
YEAR
exclusivas de DAX”.
MONTH
TODAY
MINUTE
SECOND
NOW
@BiwiserAcademy
CREACIÓN TABLAS CALENDARIO
DAX
@BiwiserAcademy
tabla calendario
En todo modelo de datos, es fundamental poder contar con una tabla calendario la cual nos permita
poder definir los distintitos atributos de un campo date y por consiguiente poder construir informes
bastantes más dinámicos ante el hecho de poder filtrar N cantidad de tablas con un solo campo fecha.
Para ello DAX nos entrega los comandos necesarios para su creación.
@BiwiserAcademy
DAX – Creación de tabla calendario – Opción 1
En conjunto a la función CALENDAR podemos generar series de tiempo a través de intervalos de fecha
previamente definidos.
EJEMPLO: CALENDAR(DATE(2022,01,01),DATE(2022,12,31))
@BiwiserAcademy
DAX – Creación de tabla calendario – Opción 2
En combinación de la función ADDCOLUMNS y CALENDAR podemos generar series de tiempo a través de
intervalos de fecha previamente definidos, la diferencia se presenta en que podemos generar nuevas
columnas a partir de la columna fecha generada por la función CALENDAR.
SINTAXIS: ADDCOLUMNS(<Tabla>,
<Nombre Columna1>,<Contenido Columna1>…)
EJEMPLO: ADDCOLUMNS(
CALENDAR(DATE(2021,1,1),DATE(2022,12,31)),
"AÑO", YEAR([DATE]),
"TRIMESTRE", QUARTER([DATE]),
"MES", MONTH([DATE]),
"NOM_MES",FORMAT([DATE],"mmm"),
"DIA",WEEKDAY([DATE],2),
"SEMANA", WEEKNUM([DATE],2) )
@BiwiserAcademy
Orden personalizado – valores de columnas
1 2
@BiwiserAcademy
Orden personalizado – valores de columnas – ¿Cómo lo conseguimos?
@BiwiserAcademy