Descarga la aplicación para disfrutar aún más
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.
Compartir