Está en la página 1de 25

ANALÍTICA DE DATOS PODEROSA, ATRACTIVA Y DE AUTO-SERVICIO

Curso de DAX - Sesión 1


PRESENTADO POR JESUS NAVARRO/ BUSINESS INTELLIGENCE & ANALYTICS CONSULTANT
INSTRUCTOR JESUS NAVARRO PALOMINO 2

EXPERIENCIA

➢ Business Intelligence and Analytics Consultant en Kaits Consulting Group.


➢ Especialista en BI & BA de la escuela de postgrado de USIL.
➢ Trainer certificado de Microsoft en Analisis de datos
➢ +5 de exp implementando Proyectos de Business Intelligence & Analytics.
➢ +5 de exp en Manejos de Base de Datos para empresas nacionales e
internacionales.
➢ Speaker en talleres relacionados a Business Intelligence & Analytics.
➢ Instructor en Datux Peru.

CERTIFICACIONES Experiencia Laboral

PUNTOS DE CONTACTO
Correo: Jesus.Navarro@kaitsconsulting.com
LinkedIn: Jesus Navarro Palomino
Sesión 1 | OBJETIVO 3

Al finalizar la clase, el alumno logrará:


• Identificar el valor agregado del análisis de datos en las
empresas por medio de DAX.
• Conocer los componentes de DAX.
• Aprender contextos de evaluación.

Temas:
1. Qué es DAX y para qué sirve
2. Operadores de DAX
3. Funciones DAX
4. Contextos de evaluación
DAX es el lenguaje de formulas usado en Power
Introducción a BI que significa Data Analysis Expressions o
Expresiones de Análisis de Datos.
DAX
o Lenguaje de programación.
• Power Pivot
• SSAS Tabular
• Power BI

o DAX es simple, Pero no es fácil.


o Nuevos conceptos de programación y
patrones.
o Relativo a Excel ya que nació en PowerPivot,
en el 2010.
4
¿Lenguaje DAX es un lenguaje funcional, debido a que la ejecución fluye
con llamadas de función, aquí hay un ejemplo de
funcional? una fórmula DAX

Diferencias importantes
- No existe el concepto de "fila" y
"columna"
- Sistema de invocación diferentes
- Muchas funciones nuevas
- Diseñado para modelos de datos y
cálculos de negocios

5
Tipos de Datos DAX define varios tipos de datos y una columna sólo
puede contener datos de un mismo tipo

Los principales tipos de datos son


• Número entero
• Número decimal
• Cadena de texto
• Fecha
• Moneda
• Boolean

6
Tipos de datos DAX:
Numéricos Todos ellos tienen en común que su almacenamiento
ocupa 8 bytes.

• Número Entero (Whole Number): Permite hasta 19


dígitos en la parte entera, pero no admite decimales.
• Número Decimal (Decimal Number): son números de
punto flotante. Puede almacenar valores de hasta 15
dígitos, positivos y negativos, en los que el separador
decimal puede colocarse en cualquier parte del número.
• Número Decimal Fijo (Fixed Decimal Number): el
separador decimal tiene una ubicación fija. Puede Recomendación:
almacenar valores de hasta 19 dígitos, almacenando - Cuando almacenemos valores
«siempre» 4 decimales. financieros o de gestión que
necesiten almacenar números con
decimales, la mejor opción es
Número Decimal. Ya que diversas
operaciones pueden producir
pequeñas variaciones.
7
Tipos de datos DAX:
Fecha y Hora Un detalle importante que debes tener en cuenta es, que
aunque no es visible, estos al interno se guardan como
número decimal, que almacena la diferencia de tiempo
entre la fecha indicada y al 1/1/1900
Disponemos de tres tipos de datos para almacenar fechas y
horas:

• Fecha/Hora (Date/Time): almacena valores de fechas y


horas
• Fecha (Date): almacena sólo la parte de la fecha, siendo
siempre ceros los valores de la hora (parte decimal)
• Hora (Time): almacena sólo la parte de la hora, siendo
siempre ceros la pare de la fecha (parte entera, que por
tanto equivale a 1/1/1900) Recomendación:
- Cuando trabajemos con diversas medidas que
impliquen estos datos, debemos tener el
cuenta con el formato de origen ya que existen
diversos según la procedencia DD-MM-YYYY |
MM-DD-YYYY
8
Otros tipos de datos DAX
(Texto, Booleano, Binario)
Booleano: llamado Verdadero/Falso
Texto (Text). Almacena cadenas de (True/False), que admite únicamente esos
caracteres Unicode de hasta 512 MB. Por dos valores, almacenándose internamente
tanto, sin entrar a más detalles técnicos, se el valor ‘falso’ con un 0 (cero) y el valor
pueden almacenar cadenas de caracteres ‘verdadero’ con un 1.
de hasta 256 millones de caracteres
Unicode. No discrimina entre mayúsculas y
minúsculas (case-insensitive), es decir, hola Binario (Binary), que nos permite almacenar diversos objetos,
= Hola = HOLA. los cuales pueden ser desde fotos hasta rutas de acceso.

En este link podrán profundizar en los Tipos de datos en Power BI


Desktop. https://powerbi.microsoft.com/es-
es/documentation/powerbi-desktop-data-types/
9
Operadores utilizados en DAX 10

Tipo de Operador Símbolo Uso Ejemplo

Paréntesis () Orden de precedencia o argumentos de agrupación (5 + 2) * 3

Aritmético + Adición 4+2


- Substracción/negación 5–3
* Multiplicación 4*2
/ División 4/2
Comparación = Igual a [Country] = “USA”
<> No igual a [Country] <> “USA”
> Mayor a [Quantity] > 0
>= Mayor o igual a [Quantity] >= 100
< Menor a [Quantity] < 0
<= Menor o igual a [Quantity] <= 100
Concatenación de texto & Concatenación de cadenas de texto “Value is “ & [Amount]
Lógico && AND condición entre dos expresiones TRUE/FALSE [Country] = “USA” &&
|| OR condición entre dos expresiones TRUE/FALSE [Quantity] > 0
! NOT operador de la expression TRUE/FALSE siguiente [Country] = “USA” ||
[Quantity] > 0
! ([Country] = “USA”)
Funciones básicas en DAX 11

Funciones para manipulación de texto


Formating Concatenating Casing Trimming Splitting Searching Replacing
FORMAT CONCATENATE LOWER LEFT MID SEARCH REPLACE
UPPER RIGHT FIND SUBSTITUE
TRIM

Funciones condicionales y lógicas

Testing (T/F) Logical


ISBLANK AND
ISERROR IF
ISLOGICAL IFERROR
ISNONTEXT NOT
ISNUMBER OR
ISTEXT
Documentación DAX de referencia:
https://msdn.microsoft.com/en-us/library/ee634396.aspx
Funciones DAX (Funciones Escalares) 12

Clasificación Funciones (algunas) Comentarios / Ejemplos

FUNCIONES DE SUM, AVERAGE, MIN, MAX ▪ Útiles para agregar columnas.


AGREGACIÓN ▪ Sólo operan columnas numéricas.
▪ Uso correcto:
▪ =SUM(Ventas[Monto])
▪ Uso incorrecto
▪ = SUM(Ventas[Monto] * Ventas[Cantidad])

FUNCIONES DE SUMX, AVERAGEX, MINX, ▪ Útiles para agregar fórmulas (expresiones).


AGREGACIÓN “X” MAXX ▪ Itera sobre una tabla y evalúa una fórmula (expresión) para cada
registro.
▪ Usa 2 parámetros:
▪ Tabla a iterar (recorrer)
▪ Fórmula (expresión) a evaluar (ejecutar)
FUNCIONES DE CONTEO COUNT, COUNTA, ▪ Funciones útiles para contar valores: numéricos, cualquier valor, solo
COUNTBLANK, COUNTROWS, <blanks>, filas en una tabla y conteo distintivo.
DISTINCTCOUNT ▪ Ejemplo:
▪ = COUNTROWS (Ventas) es equivalente a...
▪ = COUNTA (Ventas[VentaID]) + COUNTBLANK (Ventas[VentaID])
Funciones DAX (Funciones Escalares) 13

Clasificación Funciones (algunas) Comentarios / Ejemplos


FUNCIONES LÓGICAS AND, OR, IF, IFERROR, NOT ▪ Brindan lógica VERDADERO/FALSO.
▪ Funciones muy parecidas a las existentes en Excel. Por ejemplo:
▪ IF ( AND (Ventas[Ciudad] = “LIMA”, Ventas[Año] = 2016 ), “LIM-16”, BLANK( ) )

FUNCIONES INFORMATIVAS ISBLANK, ISNUMBER, ISTEXT, ▪ Brindan información acerca de las expresiones. Por ejemplo:
ISNONTEXT, ISERROR ▪ Columna Ventas[MontoVentas] tiene BLANK en todos sus registros.
▪ [Suma Ventas] = SUM( Ventas[MontoVentas[ )
▪ IF( ISBLANK ( [Suma Ventas] ), “SIN VALORES”, [Suma Ventas])

FUNCIONES DE TRUNC, ROUNDDOWN, ▪ Permiten redondear valores numéricos.


REDONDEO ROUNDUP, ROUND, etc. ▪ Funciones muy parecidas a las existentes en Excel.

FUNCIONES DE TEXTO CONCATENATE, FIND, FORMAT, ▪ Permiten manipular cadenas de texto.


LEFT, LEN, RIGHT, LOWER, ▪ Funciones muy parecidas a las existentes en Excel.
UPPER, REPLACE, TRIM, VALUE,
etc.
Funciones DAX (Función de Tabla) 14

• Conjunto de funciones que operan sobre tablas (y retornan tablas como resultado):
– FILTER ( <TABLA>, <EXPRESIÓN> ) → Añade una nueva condición al filtro existente

– ALL ( <TABLA_O_COLUMNA> ) → Remueve todas las condiciones existentes sobre una tabla o
columna

– DISTINCT ( <COLUMNA> ) → Retorna una lista de valores distintos en una columna, no


considera BLANK

– El resultado de estas funciones es usado como input de otras funciones

– Estas funciones pueden combinarse para formar expresiones más complejas y potentes
Qué podemos crear con DAX? 15

• Columnas Calculadas
– Crea nuevas columnas en el modelo de datos
– Método para conectar tablas con múltiples columnas clave

• Tablas Calculadas
– Crea una nueva tabla derivada de otra tabla
– Puede ser utilizada para crear una tabla de tiempo (calendario) cuando aún no se encuentra creada

• Medidas Calculadas
– Crea cálculos agregados y dinámicos
– Soporta la inteligencia de tiempo (Time Intelligence: YTD, Last Year, etc.)
Columnas Calculadas 16

• Creando Columnas Calculadas


– Creadas utilizando expresiones DAX
– Se comportan igual que las columnas creadas por la carga de datos
– Los resultados se ven inmediatamente al ser definidas
• Los resultados se almacenan en disco (ocupan espacio)
– Referencian nombres de columnas
– Siempre evalúan los valores de la fila actual (current row conext)

• Current Row Context


FacturaID Producto Cantidad Valor Total Venta
10001 Samsumg S9+ 10 3000 30000
10001 Protector S9+ 20 100 2000
– [Total Venta] = [Cantidad]*[Valor]
– Igualito ocurre en una tabla Excel
Medidas Calculadas 17

• Creando Medidas Calculadas


– Creadas utilizando expresiones DAX
– Los resultados se ven en tiempo de ejecución en un reporte
• Los resultados no se almacenan en disco (no ocupan espacio)

– No trabajan fila por fila


– Sino, trabajan a nivel de tablas (múltiples filas de una columna) y agregaciones
– No existe el concepto “fila actual” (current row context)

En Power BI Desktop, las medidas se crean y muestran en Vista


de informes o Vista de datos. Las medidas que se creen
aparecerán en la lista Campos con un icono de
calculadora. Puede asignar el nombre que desee a las medidas
y agregarlas a una visualización nueva o existente como
cualquier otro campo.
Medidas Calculadas 18

• Medidas implícitas
– Agregaciones por defecto que ocurren en columnas numéricas. Por ejemplo: al arrastrar una
columna numérica de una tabla a una visualización, una medida implícita se crea de forma
automática.

• Medidas explícitas
– Una medida definida por usuario creada escribiendo una fórmula en el editor

• RECOMENDACIÓN: Evite medidas implícitas


– Las medidas explícitas pueden ser referenciadas por otras medidas o columnas
– Las medidas explícitas encapsulan código, haciendo más fácil la implementación de cambios
Columnas Calculadas vs Medidas Calculadas 19

• MargenBruto = MontoVentas – CostoProducto


– Columna Calculada
– Pero también podría ser una Medida Calculada

• [MargenBruto %] = MargenBruto / MontoVentas


– No debe ser calculado fila por fila, sino a nivel de agregaciones
– Necesita ser calculado con una Medida Calculada - ¿Por qué?

• Una medida calculada es requerida:


– SUMATORIA (MargenBruto / MontoVentas)
– ES DIFERENTE QUE
– SUMATORIA (MargenBruto) / SUMATORIA (MontoVentas)
Columnas Calculadas vs Medidas Calculadas 20

• Use una Columna Calculada, si:


– Necesita utilizarla como filtro de algún valor a nivel gráfico
– La expresión está vinculada a la fila actual
– Necesita ser persistida (ocupa espacio)

• Use una Medida Calculada, si:


– Calcula porcentajes y/o ratios
– Necesita agregaciones complejas

• Uso de espacio y CPU:


– Columnas consumen espacio (tamaño de archivo y memoria RAM)
– Medidas consumen CPU
Tablas Calculadas
• Crea una nueva tabla derivada de otra tabla
• Las tablas calculadas se crean mediante la característica Nueva columna en la vista de informe o la
vista de datos de Power BI Desktop.
• Puede ser utilizada para crear una tabla de tiempo (calendario) cuando aún no se encuentra creada

• Pruébalo tu mismo:
– Click en Ribbon → Modeling → New Table
– En la barra de fórmula escriba:
• Calendario = CALENDAR(“1/1/2017”, “31/12/2017”)
Es el contexto que modifica el valor retornado
Contextos de por una expresión DAX filtrando los datos del
modelo dando lugar a lo que se conoce como
Evaluacion current row o fila actual, cuando necesitamos
acceder al valor de una columna.
Descripción de contexto:
Las fórmulas de Power Pivot pueden verse afectadas por
los filtros aplicados en una tabla dinámica, por relaciones
entre las tablas y por filtros utilizados en fórmulas. El
contexto es aquello que permite llevar a cabo análisis
dinámicos. Entender el contexto es importante para
generar fórmulas y solucionar problemas.

Hay diferentes tipos de contexto: contexto de fila,


contexto de consulta y contexto de filtro.

22
Contexto de fila
El contexto de la fila sigue automáticamente las
relaciones entre las tablas para determinar qué filas de
las tablas relacionadas están asociadas a la fila actual.
Si crea una fórmula en una columna calculada, el contexto
de fila para esa fórmula incluye los valores de todas las
columnas en la fila actual. Si la tabla se relaciona con otra
tabla, el contenido también incluye todos los valores de esa
otra tabla que están relacionados con la fila actual.

Por ejemplo, la fórmula siguiente utiliza la función RELATED para capturar un


valor de impuesto de una tabla relacionada, en función de la región a la que
se envió el pedido. El valor del impuesto se determina utilizando el valor para
la región en la tabla actual, para ello, se busca la región en la tabla
relacionada y, posteriormente, se obtiene la tasa impositiva para esa región
de la tabla relacionada.
= [Freight] + RELATED('Region'[TaxRate])
Esta fórmula obtiene simplemente la tasa impositiva para la región actual, en
la tabla Region. No necesita conocer o especificar la clave que conecta las
tablas.
23
Contexto de consulta
Contexto de la consulta hace referencia al subconjunto
de datos que se recuperan implícitamente para una
fórmula.
Cuando se coloca un campo de medida u otro valor en una celda de
una tabla dinámica, el motor de Power Pivot examina los
encabezados de fila y columna, las segmentaciones y los filtros de
informe para determinar el contexto. A continuación, Power Pivot
realiza los cálculos necesarios para rellenar cada celda en la tabla
dinámica. El conjunto de datos que se recupera es el contexto de la
consulta para cada celda.
Por ejemplo, suponga que crea esta fórmula sencilla que suma los valores de la
columna Profit de la tabla Sales:
=SUM('Sales'[Profit]).
los resultados para la fórmula serán los mismos que para la tabla completa, porque el
contexto de la consulta para la fórmula siempre es el conjunto de datos completo de
la tabla Sales. Los resultados reflejarán beneficios en todas las regiones, todos los
productos, todos los años, etc.
Sin embargo, normalmente no desea ver los mismos resultados cientos de veces, sino
que desea obtener la ganancia correspondiente a un determinado año, país o región, o
producto o alguna combinación de estos y, posteriormente, obtener un total general.

24
Contexto de Filtro
El contexto de filtro se agrega al especificar restricciones de filtro
en el conjunto de valores permitido en una columna o tabla,
utilizando argumentos para una fórmula. El contexto del filtro se
aplica sobre otros contextos, como el contexto de la fila o el de la
consulta.

Por ejemplo, una tabla dinámica calcula sus valores para cada celda según los
encabezados de columna y fila, tal como se describe en la sección anterior en el
contexto de la consulta. Sin embargo, dentro de las medidas o de las columnas
calculadas que agregue a la tabla dinámica, puede especificar expresiones de filtro
para controlar los valores que se usan en la fórmula. También puede borrar de forma
selectiva los filtros en columnas específicas..

25

También podría gustarte