Logo Studenta

CPE-Power-BI-Introduccion-a-DAX-

¡Este material tiene más páginas!

Vista previa del material en texto

corporativo@institutocpe.edu.uy 12-908-20-59 institutocpe.edu.uy
Power BI
corporativo@institutocpe.edu.uy 22-908-20-59 institutocpe.edu.uy
Power BI
Introducción a DAX
Instituto CPE
corporativo@institutocpe.edu.uy 32-908-20-59 institutocpe.edu.uy
DAX (Data Analysis Expressions) 
• Utiliza algunos conceptos de 
programación
• DAX es simple, pero no es fácil.
• No traten de aprenderlo en la 
forma habitual…
• Mezcla de lenguaje Excel, SQL y 
MDX.
corporativo@institutocpe.edu.uy 42-908-20-59 institutocpe.edu.uy
DAX (Data Analysis Expressions) 
• Ejemplo de formula DAX:
corporativo@institutocpe.edu.uy 52-908-20-59 institutocpe.edu.uy
DAX (Data Analysis Expressions) 
• Sintaxis:
• 'Table 
Name'[ColumnName]
• Best Practice:
• No usar espacios en 
nombres de tablas
• Siempre incluir la 
tabla en las fórmulas
corporativo@institutocpe.edu.uy 62-908-20-59 institutocpe.edu.uy
DAX (Data Analysis Expressions) 
• Importante:
• En Excel, puedo poner diferentes tipos de valores en cada 
celda.
• En DAX, trabajo con tablas y columnas, por lo que todos los 
datos de cada columna deben ser del mismo tipo.
corporativo@institutocpe.edu.uy 72-908-20-59 institutocpe.edu.uy
DAX (Data Analysis Expressions) 
• Cada formula puede 
contener:
• Funciones
• Condicionales
• Referencias a valores
• Tablas
• Tiempo
corporativo@institutocpe.edu.uy 82-908-20-59 institutocpe.edu.uy
DAX (Data Analysis Expressions) 
• Tipos de DAX
• Numéricos
• Fecha /Fecha y Hora
• Texto
• True/False 
• Binario
• Importante: hay funciones que solo trabajan con 
Numéricos, y otros que trabajan con cualquier 
tipo de datos.
corporativo@institutocpe.edu.uy 92-908-20-59 institutocpe.edu.uy
DAX (Date Time) 
En DAX, los cálculos de fechas funcionan de la 
siguiente manera:
• Parte entera: Número de días después del 30 de 
diciembre de 1899.
• Parte decimal: Segundos: 1/(24*60*60)
• Expresiones DateTime:
• Date + 1 = el día después
• Date – 1 = el día anterior
• Date – 1,5 = un día y medio antes 
corporativo@institutocpe.edu.uy 102-908-20-59 institutocpe.edu.uy
DAX (Calculos primarios)
2 tipos de cálculos usando DAX:
Columnas calculadas
Medidas calculadas
Cuidado: el uso de columnas y medidas 
calculadas consume gran cantidad de RAM.
corporativo@institutocpe.edu.uy 112-908-20-59 institutocpe.edu.uy
DAX Columnas calculadas
Son útiles cuando 
necesitamos crear 
una columna o 
filtrar de acuerdo 
a un valor, o si 
queremos hacer 
un cálculo para 
cada fila en una 
tabla.
corporativo@institutocpe.edu.uy 122-908-20-59 institutocpe.edu.uy
DAX Columnas calculadas
Una vez seleccionado, 
aparece “Column =“ 
donde le podemos 
poner nombre a la 
columna y escribir la 
fórmula o haciendo clic
Si hacemos referencia a 
una columna en la 
fórmula, no 
necesitamos hacer 
referencia a la fila. 
Power BI lo hace 
automáticamente.
corporativo@institutocpe.edu.uy 132-908-20-59 institutocpe.edu.uy
DAX Columnas calculadas
En resumen:
• Son columnas creadas usando DAX
• Siempre toma en cuenta la fila actual
• Product[Price] significa:
• El valor del precio que figura en la columna 
(explicito)
• En la tabla “Product” (explicito, opcional)
• Para la fila actual (implícito)
• Diferente para cada fila
corporativo@institutocpe.edu.uy 142-908-20-59 institutocpe.edu.uy
DAX Medidas calculadas
Son útiles cuando 
estamos calculando 
porcentajes o ratios, o 
necesitamos formulas 
complejas.
Ejemplo: Gross Margin
% (no funciona en los 
reportes si creo una 
columna)
corporativo@institutocpe.edu.uy 152-908-20-59 institutocpe.edu.uy
DAX Medidas calculadas
Una vez seleccionado, aparece 
“Measure =“.
De la misma forma que las 
columnas, necesitamos:
• Un nombre
• Al menos una función o 
expresión
Aparece como un campo en la 
tabla, identificado con el ícono.
corporativo@institutocpe.edu.uy 162-908-20-59 institutocpe.edu.uy
DAX Medidas calculadas
No funciona fila por fila. 
Usa tablas y formulas.
No utiliza el término “current row”
Por eso debemos escribir funciones, y no solo referencias 
a columnas.
Ejemplo: 
Gross margin es una columna calculada, puede ser una 
medida.
Gross margin % tiene que ser una medida calculada.
corporativo@institutocpe.edu.uy 172-908-20-59 institutocpe.edu.uy
DAX Columna vs Medidas calculadas
Usar columna calculada:
• Necesitamos calcular un valor en cada fila, o aplicar un 
filtro en la formula.
Usar medidas calculadas:
• Calcular porcentajes
• Calcular ratios
• Calculos complejos
Espacio y uso de CPU
• Columnas consume memoria RAM
• Medidas consume CPU
corporativo@institutocpe.edu.uy 182-908-20-59 institutocpe.edu.uy
DAX Tipos de Funciones
Funciones de
• Matemáticas 
• Lógicas
• Información
• Texto
• Tiempo
corporativo@institutocpe.edu.uy 192-908-20-59 institutocpe.edu.uy
DAX Tipos de Funciones
Similar a Excel
Mientras ingresamos la función en la barra de 
formula, aparece una lista de funciones disponibles.
corporativo@institutocpe.edu.uy 202-908-20-59 institutocpe.edu.uy
DAX Matemáticos
Útiles para agregar valores:
• SUM → SUM ( table[column] )
• AVERAGE → AVERAGE ( table[column] )
• MIN → MIN ( table[column] )
• MAX →MAX ( table[column] )
• DIVIDE → DIVIDE ( <Numerator>, <Denominator> [, <AlternateResult>] )
Trabaja solamente con columnas numéricas.
El SUM, Solamente suma una columna, a diferencia del SUMX que es 
función X
• SUM ( Orders [Price])
• Funciones X:
• Múltiples columnas
• Iterativo en la tabla, y evalúa la expresión por cada fila.
corporativo@institutocpe.edu.uy 212-908-20-59 institutocpe.edu.uy
DAX Matemáticos
• Funciones:
• ABS, EXP
• FACT, LN
• LOG, LOG10
• MOD, PI
• POWER, QUOTIENT
• SIGN, SQRT
• Son iguales a Excel. Por ejemplo:
• → ABS ( <Number> )
• →ABS([DealerPrice]-[ListPrice]) 
corporativo@institutocpe.edu.uy 222-908-20-59 institutocpe.edu.uy
DAX Contar
• COUNT Solo para columnas numéricas, fecha o string
→ COUNT(Table [column]) 
• COUNTA cuenta cualquier tipo de dato excepto blancos 
→COUNTA(Table [column]) 
• COUNTBLANK Cuenta blancos de cualquier tipo de dato de la columna 
¡ el 0 es un dato!
→COUNTBLANK(Table [column]) 
• COUNTROWS Filas en una tabla
→COUNTROWS(Table [column]) 
• DISTINCTCOUNT cuenta valores distinto, ¡Blank es un dato!
→ DISTINCTCOUNT(Table [column]) 
• DISTINCTCOUNTNOBLANK cuenta todos los valores distintos de la 
columna sin incluir blanks
→ DISTINCTCOUNTNOBLANK (Table [column]) 
corporativo@institutocpe.edu.uy 232-908-20-59 institutocpe.edu.uy
DAX Funciones X
• Es una variante de las funciones
• SUMX
• AVERAGEX
• COUNTX
• MINX
• MAXX
• Iteración en la tabla y evalúa la expresión por cada fila
• Siempre recibe 2 parámetros
• 1 Tabla
• 1 Formula para evaluar por cada fila
• Ej valido para todas las formulas X→ COUNTX(<table>;<expression>) 
→ SUMX (Table; Table [column A] * Table [column B] )
→MAXX( Table; (Table [column F]) - Table [column Z]) *10)
corporativo@institutocpe.edu.uy 242-908-20-59 institutocpe.edu.uy
• CON FILTER:
• →AVERAGEX(Filter(Table; <filter1> );<expression>) 
Función Comodin CALCULATE
• →CALCULATE(<expression>;<filter1>;<filter2>…)
Es lo mismo:
→ SUMX (Filter(Table; [column CodPais]=54); Table [column A] *
Table [column B] )
→CALCULATE(SUMX (Table; Table [column A] * Table [column B] );
[column CodPais]=54)
corporativo@institutocpe.edu.uy 252-908-20-59 institutocpe.edu.uy
DAX Lógicas
• AND
• OR
• NOT
• IF
• IFERROR
IF/IFERROR son muy utilizados
AND/OR/NOT puede ser expresados por operadores:
AND(A,B) = A && B
→IF( <condición>; Resultado si se cumple la condición; Resultado si NO se 
cumple la condición)
corporativo@institutocpe.edu.uy 262-908-20-59 institutocpe.edu.uy
DAX Funciones de Información
• ISBLANK
• ISNUMBER
• ISTEXT
• ISNONTEXT
• ISERROR
Funciones que devuelven TRUE/ FALSE. La sintaxis es la 
misma para cualquiera de ellas.
→ ISERROR(<value>) 
Pondremos un ejemplo utilizándola dentro de una 
formula compuesta. 
corporativo@institutocpe.edu.uy 272-908-20-59 institutocpe.edu.uy
• recordando:→ IF(<logical_test>,<value_if_true>[, 
<value_if_false>])
entonces
→IF( ISERROR(SUM( TableA[SalesAmount_USD]) 
/SUM(TableB[SalesAmount_USD]) ) ; BLANK() ; 
SUM(TableA[SalesAmount_USD]) 
/SUM(TableB[SalesAmount_USD]) )
corporativo@institutocpe.edu.uy 282-908-20-59 institutocpe.edu.uy
DAX Funciones de Texto
• Concatenate
• Find, Left, Right, Mid
• Len, Lower, Upper
• Rept, Substitute
• Trim,
• Value, Exact, Fixed
• Format
https://msdn.microsoft.com/query-bi/dax/pre-defined-numeric-
formats-for-the-format-function
• https://msdn.microsoft.com/query-bi/dax/pre-defined-date-and-
time-formats-for-the-format-function
(Se verán los ejemplos en clase)
Similares a Excel
https://msdn.microsoft.com/query-bi/dax/pre-defined-numeric-formats-for-the-format-function
https://msdn.microsoft.com/query-bi/dax/pre-defined-date-and-time-formats-for-the-format-function
corporativo@institutocpe.edu.uy 292-908-20-59 institutocpe.edu.uy
DAX Funciones de Fechas
• DAY, WEEKNUM, MONTH, YEAR
• DATEVALUE, EDATE, EOMONTH
• HOUR, MINUTE, SECOND
• NOW, TODAY, DATE, TIME
• WEEKDAY, YEARFRAC
Todas admiten una columna.
Son muy útiles, pero se pueden simplificar usando 
una tabla de fechas. 
Ej; → DAY(Table[Column]) → YEAR(Calendar[Date])
corporativo@institutocpe.edu.uy 302-908-20-59 institutocpe.edu.uy
DAX Uso de Variables
• Power BI permite utilizar Variables para simplificar el 
lenguaje y tipeo de formulas complejas
• Ejemplo:
corporativo@institutocpe.edu.uy 312-908-20-59 institutocpe.edu.uy
DAX Relaciones de tablas
• Si quiero usar datos de otras tablas, y lo ingreso directamente en la 
formula, me da error. Entonces uso:
• RELATED
• Utilizado para buscar valores en otra tabla que esté relacionada.
• Se usa para relaciones many to one. (*,1)
• Ejemplo: Quiero calcular ventas totales utilizando una lista de precios en 
otra tabla.
• SUMX (Sales, Sales [Quantity] * Related (Product [Unit Price]))
• RELATEDTABLE
• Idem RELATED, pero se utiliza para relaciones one to many.(1,*)
• Ejemplo: Tengo una lista de productos, y quiero calcular las unidades 
vendidas (usando sumX), o la cantidad de veces que fue vendido el 
producto (Usando Countrows).
• SUMX (Relatedtable(Sales), Sales [Quantity] * Sales [Unit Price])
corporativo@institutocpe.edu.uy 322-908-20-59 institutocpe.edu.uy
DAX Tablas y Filtros
• Power BI permite crear tablas calculadas
• Esa tabla calculada surge de una formula, al que también 
puedo indicarle filtros
• La nueva tabla funciona como cualquier otra tabla
• Ej: de los datos de ventas, puedo crear una tabla 
“Productos”.
• En clase crearemos la tabla CALENDARAUTO
→ CALENDARAUTO() D
Dicha tabla nos traerá una columna con las fechascontinuas
desde el 01/01/ menor año de nuestro set de datos, hasta, 
31/12/mayor año de nuestro set de datos
corporativo@institutocpe.edu.uy 332-908-20-59 institutocpe.edu.uy
DAX Time Inteligence
• TOTALYTD
• TOTALMTD
• TOTALQTD
→ TOTALMTD(<expression>,<dates>[,<filter>]) 
→ TOTALMTD(TotalSales;Calendarauto[Date]; 
Country[CodPais]=2) 
Las 3 anteriores acumulan para periodos diferentes, por lo tanto la sintaxis es la misma para todas. 
Se calculan una ves y sirven para todos los años/trimestre/meses
• SAMEPERIODLASTYEAR se utiliza dentro de nuestro ‘Comodín’
Ej
→CALCULATE(SUM(ColumnA[Sales]); 
SAMEPERIODLASTYEAR(Calendarauto[Date]))
corporativo@institutocpe.edu.uy 342-908-20-59 institutocpe.edu.uy
• Power BI en todas sus actualizaciones incluye 
nuevas formulas DAX es un lenguaje que esta en 
constante crecimiento. 
Podemos llegar a los mismos resultados haciendo 
caminos distintos (Recordar Ejemplo CALCULATE y 
SUMX).
Realizá el Practico 4 y buscá diferentes formas de 
responder a las preguntas con diferentes formulas 
DAX.

Continuar navegando