Teoria
Teoria
https://www.linkedin.com/in/leandro-javier-teves-7519b684
https://www.youtube.com/@aprendiendoconleandro
[email protected]
Análisis de datos y Microsoft
Los datos y la información son el recurso empresarial más estratégico
¿Qué es BI?
Es la habilidad de transformar los datos en
información, y a su vez esta información en
conocimiento para la toma de decisiones.
Beneficios:
Permite generar reportes y dashboard de forma
intuitiva.
Capaz de manejar fuentes de información en la nube u
on premise.
Se conecta a un gran número de fuentes de datos.
Permite interactuar desde cualquier dispositivo (Ipad,
Iphone, Windows y Android).
Componentes de la Suite de Power BI
Power BI Desktop:
Herramienta de escritorio (on premise) que, permite crear
reportes y conectar a muchas fuentes de datos, está
orientado al ambiente de desarrollo y permite crear cálculos
con DAX.
Power BI Service:
Basado en el concepto de desarrollo en la nube, nos permite
compartir informes, crear visualizaciones y paneles.
Power BI Mobile:
Permite acceder a los reportes desde un dispositivo móvil y
visualizar paneles e informes desde cualquier lugar.
Componentes de Power BI
Power Query
Extract Transform Load
Lenguaje M
Power Pivot
Data Analysis EXpression
Componentes iniciales de Power BI
Power Query: Componente de Excel con la función de conectarse a múltiples
fuentes para transformarlas y limpiarlas de una manera rápida
y sencilla con la facilidad que se puede automatizar para
ejecutar estas tareas cuantas veces sea necesario (hace uso
del lenguaje M).
Power Pivot: El componente más famoso y conocido con un gran motor
para el moldeamiento cálculo de indicadores y creación de
KPI’s, con una excelente compresión de los datos.
Power View y Este componente se encarga de la construcción de reportes
Power Map: interactivos de una manera más natural y sencilla. Hoy en día
están desatendidos y únicamente se usa tecnologías de Drag
an Drop.
Rol del analista de datos en Power BI
Limitación en tamaño de modelo: No podemos Limitación en DAX: No podemos usar todas las
exceder más de 1GB. expresiones.
Limitación en consultas: La obtención de los
datos va a depender del rendimiento de la base
de datos.
Recursos
Power BI Desktop: https://www.microsoft.com/es-es/download/details.aspx?id=58494
Conexión a WEB: https://es.wikipedia.org/wiki/Poblaci%C3%B3n_humana_mundial
Conexión SQL:
Servidor: ------
Base de datos: ------
Usuario: ------
Password: ------
Transformación de
datos
Transformaciones
1. Primera fila como encabezado, tipo de valores en columnas, reemplazar valores, minúsculas, mayúsculas, recortar.
2. Eliminar columnas, Combinar columnas, duplicar columnas.
3. Dividir y extraer columnas.
4. Crear columnas a partir de ejemplos.
5. Rellenar celdas vacías.
6. Eliminar filas superiores y anexar consultas.
7. Combinar consultas.
8. Anular dinamización de columnas.
9. Dinamizar columnas.
10. Agrupar filas.
11. Concatenar valores agrupados.
12. Convertir reporte de columna en tabla
13. Importar datos de carpetas
14. Columna condicional
15. Referenciar y duplicar consultas
16. Creación de parámetro
17. Crear tabla de calendario: = List.Dates
18. Limpiar espacios excesivos entre palabras: let a = Text.Trim([text]), b = Text.Split (a, " "), c = List.Select (b, each
_<>"") in Text.Combine(c," ")
Crear tabla de Calendario y horas en Power Query
Crear tabla de calendario
Función: List.Dates(start as date, count as number, step as duration) as list
start: #date(año,mes,dia)
count: Número de registros de la tabla calendario
step: #duration(días, horas, minutos, segundos)
- Text.Split: Devuelve una lista de los valores de texto resultantes de dividir un valor de texto basado en el delimitador
especificado.
Sintaxis: Text.Split(text as text, separator as text)
text: Cadena de texto de dónde se va crear la lista de valores.
separator: Separador de la cadena de texto que servira para identificar los registros de la lista.
- List.Select: Devuelve una lista de valores de la lista, que coincide con la condición de selección.
Sintaxis: List.Select(list as list, selection as function)
list: Lista de valores
selection: Condición que deben cumplir los registros de la lista. Se expresa: each _ “condición”.
- Text.PadStart: Rellena una cadena de texto por la izquierda con un carácter hasta completar la longitud especificada.
Sintaxis: Text.PadStart(text as nullable text, count as number, optional character as nullable text)
text: Cadena de texto que se va rellenar, si tiene una longitud menor a la especificada.
count: Longitud de la cadena de texto esperada.
Optional Character: Carácter opcional que se usara para completer la longitud especificada. Si no se indica carácter se
llenara con espacios en blanco la cadena de texto.
Algunas funciones de Power Query
- Text.Middle: Extrae una cadena de caracteres desde una posición especificada.
Sintaxis: Text.Middle(text as nullable text, start as number, optional count as nullable number)
text: Cadena de texto desde dónde se va extraer el texto.
start: Posición de la cadena de texto desde donde se va extraer el texto (Considerar que el primer carácter tiene posición 0).
count: Longitud que se va extraer de la cadena de texto.
Capturar hora de actualización
1. DateTime.LocalNow: Devuelve fecha y hora del sistema.
2. DateTimeZone.From: Convierte un valor de fecha y hora, a un valor de fecha y hora con zona horaria.
3. DateTimeZone.SwitchZone: Sirve para cambiar la zona horaria, de un valor de fecha y hora con zona horaria.
Entonces, si nosotros queremos capturar la hora de actualización para nuestro Power BI Desktop,
la función seria: = DateTime.LocalNow()
Sin embargo, si queremos capturar la hora del sistema y además queremos subir nuestro reporte a Power BI Service
(considerando que somos de Perú), debemos utilizar la función siguiente:
= DateTimeZone.SwitchZone(DateTimeZone.From(DateTime.LocalNow()), -5)
Debemos tener en cuenta que Power BI Service utiliza la zona horaria UTC.
La zona horaria de Perú es UTC-5.
La zona horaria de México es UTC-6.
Modelamiento de
datos
Modelo de datos
Tiene su origen en la necesidad de contar con una base de datos que brinde velocidad y alto
rendimiento al acceder a una gran cantidad de datos, lo cual comparado al modelo relacional es
superior, esto se debe a que el modelo dimensional es altamente des normalizado.
Composición:
Tabla de hechos (fct – fact tables): Almacena información para medir el negocio, como las ventas,
costos, etc.
Tabla de dimensiones (dim): Almacena información descriptiva de la tabla de hechos.
Atributos: Características que describen una entidad (Campos que se encuentran en las tablas).
Relaciones: Son asociaciones que se crean al momento de vincular dos columnas de tablas distintas.
Cardinalidad: Hace referencia al número de filas de una tabla que están relacionadas con otra.
Medidas: Expresión que calcula un valor de los datos en el modelo.
Cardinalidad
Tipos de modelo dimensional
Esquema estrella
Es un esquema formado por una tabla de hechos, esta tabla de hechos contiene las métricas o los
datos numéricos a usar en el análisis, a lado de la tabla de hechos rodean otras tablas llamadas de
dimensiones que son los valores cualitativos, que proporcionan la descripción a los hechos.
Tipos de modelo dimensional
Esquema copo de nieve
Es un esquema usado cuando las dimensiones se implementan con más de una tabla de datos. Se
representa como una tabla de hechos conectada con dimensiones anidadas. Al normalizar por
completo las dimensiones el resultado parece un copo de nieve.
DAX
Data Analysis Expressions
¿Qué es DAX?
DAX es un lenguaje de fórmulas utilizado para realizar cálculos avanzados, definir medidas y columnas
calculadas, y realizar análisis de datos en modelos de datos tabulares. Se compone de una amplia gama
de funciones y operadores que permiten realizar cálculos complejos y avanzados sobre los datos.
Características principales:
Expresiones: DAX permite crear expresiones que realizan cálculos sobre los datos en el modelo
tabular.
Funciones: Proporciona una amplia variedad de funciones predefinidas para realizar cálculos, desde
operaciones matemáticas simples hasta análisis estadísticos complejos.
Contexto de filtro: DAX utiliza el contexto de filtro para evaluar las expresiones en función de las
interacciones del usuario y los filtros aplicados en el informe.
Mejoras en el rendimiento: DAX está diseñado para optimizar el rendimiento de los cálculos en
grandes conjuntos de datos, utilizando técnicas de compresión y agregación.
Integración con Power BI : Está integrado de forma nativa en Power BI Desktop y se utiliza para definir
medidas y columnas calculadas en modelos de datos tabulares.
EL MUNDO DE DAX
2. Conceptos básicos del 3. Conceptos intermedios del
1. Introducción al lenguaje DAX
lenguaje DAX lenguaje DAX
• Objetos del lenguaje DAX: Columnas • Funciones agregativas básicas: SUM, MIN, • Dominando CALCULATE.
calculadas, medidas y tablas. MAX, AVERAGE, DISTINCTCOUNT, etc. • Funciones de información y lógicas: ISBLANK,
• Conceptos DAX: Contexto de fila, Contexto de • Funciones iterativas: SUMX, MINX, MAXX, ISFILTERED, ISCROSSFILTERED, RELATED,
filtro, Transición de contexto. MEDIANX, etc. USERELATIONSHIP.
• Operadores de DAX. • Funciones de texto: CONCATENATEX, MID, LEN, • Dominando la transición de contexto.
• Buenas prácticas de codificación. SEARCH. • Funciones de tabla: FILTER, ALL, VALUES,
• Conceptos introductorios: Modelamiento de • Funciones lógicas básicas: IF, SWITCH, SUMMARIZE, etc.
datos, tipos de esquemas, cardinalidad de COALESCE. • Funciones adicionales: ALLSELECTED,
relaciones y dirección de filtro cruzado. • Introducción a CALCULATE. SELECTEDVALUE, HASONEVALUE, KEEPFILTERS,
• Variables en DAX. ISINSCOPE, etc.
Tipo Referencia
Agregación https://learn.microsoft.com/es-es/dax/aggregation-functions-dax
Fecha y hora https://learn.microsoft.com/es-es/dax/date-and-time-functions-dax
Filtro https://learn.microsoft.com/es-es/dax/filter-functions-dax
Financieras https://learn.microsoft.com/es-es/dax/financial-functions-dax
Información https://learn.microsoft.com/es-es/dax/information-functions-dax
Lógicas https://learn.microsoft.com/es-es/dax/logical-functions-dax
Matemática y trigonométrica https://learn.microsoft.com/es-es/dax/math-and-trig-functions-dax
Otras funciones https://learn.microsoft.com/es-es/dax/other-functions-dax
Primarias y secundarias https://learn.microsoft.com/es-es/dax/parent-and-child-functions-dax
Relación https://learn.microsoft.com/es-es/dax/relationship-functions-dax
Estadísticas https://learn.microsoft.com/es-es/dax/statistical-functions-dax
Manipulación de tablas https://learn.microsoft.com/es-es/dax/table-manipulation-functions-dax
Texto https://learn.microsoft.com/es-es/dax/text-functions-dax
Inteligencia de tiempos https://learn.microsoft.com/es-es/dax/time-intelligence-functions-dax
Nuevas funciones https://learn.microsoft.com/es-es/dax/new-dax-functions
Consejos para trabajar con DAX
El contexto de fila representa la fila actual en la que nos encontramos durante el proceso de iteración en una tabla.
¿En qué objeto de DAX tenemos iteración de manera natural?
En las columnas calculadas. Las medidas y tablas no usan contexto de fila por defecto, sino contexto de filtro.
¿En qué funciones tenemos iteración?
En las funciones X: SUMX, MINX, MAXX, MEDIANX, AVERAGEX, COUNTX, PERCENTILEX.INC, CONCATENATEX, RANKX, ETC.
Estas funciones reciben una tabla, luego generan un resultado virtual a partir de cada iteración evaluando el segundo
argumento en un contexto de fila, y al final a esos resultados parciales se le aplica la función.
¿En qué otras funciones tenemos iteración? Cualquier columna calculada, o
En las funciones de tabla: FILTER, SELECTCOLUMNS, ADDCOLUMNS, TOPN, GENERATE. cualquier expresión que tenga
En las funciones de inteligencia de tiempos: LASTNONBLANK, FIRSTNONBLANK. estas funciones genera un
contexto de fila.
¿Las funciones de relación generan contexto de fila?
Las funciones RELATED y RELATEDTABLE no generan contexto de fila,
sin embargo, si utilizan un contexto de fila.
RELATED: Se usa cuando estoy en el lado múltiple de la relación.
RELATEDTABLE: Se usa cuando estoy en el lado individual de la relación .
¿Qué es un filtro? Todo filtro en DAX es en
Es un conjunto de valores que puede tomar realidad una tabla.
Contexto de filtro una columna, los cuales van a restringir el
número de registros que tiene una tabla.
El contexto de filtro es el conjunto de filtros que actúan sobre modelos de datos durante la evaluación de una expresión
DAX.
El contexto de filtro siempre existe. Si no hay filtro significa que el contexto de filtro es vacío.
¿Qué objetos de DAX son afectados por el contexto de filtro?
Medidas y Tablas.
¿Se puede crear contextos de filtros? CALCULATE me permite modificar el
Sí, en Medidas puedo crear con CALCULATE y en Tablas con CALCULATETABLE. contexto de filtro de una expresión.
Microsoft: https://learn.microsoft.com/es-es/dax/calculate-function-dax
Funciones
Acumulativas de tiempo
DATESYTD
Devuelve una tabla que contiene una columna con las fechas del año hasta la fecha, en el contexto actual.
Sintaxis:
DATESYTD(<dates> [,<year_end_date>])
dates: Una columna que contiene fechas.
year_end_date: Cadena literal con una fecha que define la fecha de finalización del año. El valor predeterminado es el 31
de diciembre.
DATESMTD
Devuelve una tabla que contiene una columna con las fechas del mes hasta la fecha, en el contexto actual.
Sintaxis:
DATESMTD(<dates>)
dates: Una columna que contiene fechas.
TOTALYTD
Evalúa el valor anual hasta la fecha de la expresión en el contexto actual.
Sintaxis:
TOTALYTD(<expression>,<dates>[,<filter>][,<year_end_date>])
expression: Expresión que devuelve un valor escalar.
dates: Columna que contiene fechas.
filter: Expresión que especifica un filtro que se va a aplicar al contexto actual.
year_end_date: Cadena literal con una fecha que define la fecha de finalización del año. El valor predeterminado es el
31 de diciembre.
TOTALMTD
Evalúa el valor de la expresión del mes hasta la fecha en el contexto actual.
Sintaxis:
TOTALMTD(<expression>,<dates>[,<filter>])
expression: Expresión que devuelve un valor escalar.
dates: Columna que contiene fechas.
filter: Expresión que especifica un filtro que se va a aplicar al contexto actual.
Funciones
Comparativas de tiempo
DATEADD
Devuelve una tabla que contiene una columna de fechas que se han desplazado hacia delante o hacia atrás en el tiempo
según el número especificado de intervalos desde las fechas del contexto actual.
Sintaxis:
DATEADD(<dates>,<number_of_intervals>,<interval>)
dates: Una columna que contiene fechas.
number_of_intervals: Entero que especifica el número de intervalos que se van a sumar o restar a las fechas.
interval: Intervalo por el que se van a desplazar las fechas (year, quarter, month o day.)
SAMEPERIODLASTYEAR
Devuelve una tabla que contiene una columna de fechas desplazadas un año atrás en el tiempo desde las fechas de la
columna dates especificada, en el contexto actual.
Sintaxis:
SAMEPERIODLASTYEAR(<dates>)
dates: Una columna que contiene fechas.
PARALLELPERIOD
Devuelve una tabla que contiene una columna de fechas que representa un período paralelo a las fechas de la columna
dates especificada, en el contexto actual, con las fechas desplazadas un número de intervalos hacia delante o hacia atrás
en el tiempo.
Sintaxis:
PARALLELPERIOD(<dates>,<number_of_intervals>,<interval>)
dates: Una columna que contiene fechas.
number_of_intervals: Entero que especifica el número de intervalos que se van a sumar o restar a las fechas.
intervals: El intervalo según el cual se van a desplazar las fechas. El valor del intervalo puede ser uno de los siguientes:
year, quarter, month.
Dashboard
Mis primeros Dashboard
Tema: Innovación
Fondo del lienzo: #2C0F35
Fondo de objetos visuales: #741D57
Objeto visual por tipo – Movie : #FF719C
Objeto visual por tipo – TV show : #FFBFCD
Objeto visual por clasificación: #FFA7AE
Fondo de valor de segmentador: #4E1645
Link:
https://app.powerbi.com/view?r=eyJrIjoiMDJjZjQ4ZmMtZjMyZC00YjdiLTk3ZjAtNDJkY2Y0N2IzOTFkIiwidCI6ImM1MDM4M
WQ5LTA1OTEtNDNjZS04MWUzLTQxNGMzNWI1MzBkZiIsImMiOjR9
Mis primeros Dashboard
Tema: Rascielos
Link:
https://app.powerbi.com/view?r=eyJrIjoiN2ExMTc3NTQtNjIzMi00YmJiLWJkZmEtYjY1OGQyMTE3NWU5IiwidCI6ImM1MDM
4MWQ5LTA1OTEtNDNjZS04MWUzLTQxNGMzNWI1MzBkZiIsImMiOjR9
Mis primeros Dashboard
Link:
https://app.powerbi.com/view?r=eyJrIjoiOWI5ZDgzZTYtMDczYS00MWI1LWE1NzQtNzc4OWQyNDQyMGYxIiwidCI6ImM1M
DM4MWQ5LTA1OTEtNDNjZS04MWUzLTQxNGMzNWI1MzBkZiIsImMiOjR9
Mis primeros Dashboard
Link:
https://app.powerbi.com/view?r=eyJrIjoiYjQwOThiNDgtZjgwZi00YmQ0LWEzYjYtZGU5ZTQ0M2Q0MDBlIiwidCI6ImM1MDM
4MWQ5LTA1OTEtNDNjZS04MWUzLTQxNGMzNWI1MzBkZiIsImMiOjR9
Mis primeros Dashboard
Link:
https://app.powerbi.com/view?r=eyJrIjoiNDcxNzQ2ZDQtNWE3MS00YTQ1LThhYjktNzQxMjkzN2E2M2Q1IiwidCI6ImM1MD
M4MWQ5LTA1OTEtNDNjZS04MWUzLTQxNGMzNWI1MzBkZiIsImMiOjR9
Data Storytelling
¿Qué es
visualización
de datos?
Definición de Visualización de Datos
1. Buenas prácticas de
visualización de datos.
2. Uso moderado del color.
3. Análisis y exploración.
4. Intervienen 2 elementos:
Los datos y la
visualización
¿Qué es Data
Storytelling?
¿Qué es Data Storytelling?
1. Texto descriptivo:
• Se utilizan en tableros exploratorios.
• Son fáciles de detectar porque no enfatizan la conclusión.
• Ejemplo: Devoluciones por motivo.
Texto descriptivo vs texto explicativo
2. Texto explicativo:
• Se utilizan en tableros aclaratorios o estáticos.
• Ayudar a poner en contexto a la audiencia y resaltar el Insight.
• Ejemplo: El 64% de las devoluciones se debe a la descripción errónea de los
productos en la web.
Texto descriptivo vs texto explicativo
Texto descriptivo Texto explicativo
Tipos de Visualización de Datos
Visualizaciones Visualizaciones
Exploratorias Aclaratorias
Flujo de
Información
Introducción
Maqueta: https://excalidraw.com/
https://app.moqups.com/
https://app.mural.co/
Ejercicio
Antes Después
Pasos del Data Storytelling
https://datavizcatalogue.com/ES/metodos/graficos_de_barras.html#google_vignette
Extra
Extra
Fuentes de datos libres: https://dataverse.harvard.edu/
Fuentes de datos libres: https://www.kaggle.com/datasets
Fuentes de datos libres: https://datosabiertos.mef.gob.pe/dataset/
Fuentes de datos libres: https://data.world/datasets/free
Fuentes de datos libres: https://www.earthdata.nasa.gov/
Fuentes de datos libres: https://datasetsearch.research.google.com/
Fuentes de datos libres: https://www.datosabiertos.gob.pe/
Fuentes de datos libres: https://datos.gob.es/es
Fuentes de datos libres: https://datos.gob.mx/
Fuentes de datos libres: https://www.datos.gov.co/
Descargar iconos: https://fonts.google.com/
Descargar iconos: https://www.flaticon.es/
Descargar iconos: https://www.svgrepo.com/
RGB colores: https://www.rapidtables.com/web/color/RGB_Color.html
Paleta de colores: https://coolors.co/palettes/trending
Extra
Fondos de lienzo