Inteligencia de Negocios con Excel y Power BI

    Inteligencia de Negocios con Excel y Power BI

    P4 months ago 173

    AIAI Summary

    toggle
    Bulleted
    toggle
    Text

    Key Insights

    • Bullet points not available for this slide.
    1/742
    Inteligencia de Negocios con Excel y Power BI - Page 2
    2/742
    Inteligencia de Negocios con Excel y Power BI - Page 3
    3/742
     
www.excelfreeblog.com
www.biisoluciones.com
    4/742
    Inteligencia de Negocios con Excel y Power BI
Un Guía Exhaustiva para: Preparación, Análisis y Modelamiento de Datos
Power Query, Power Pivot y DAX
Copyright © 2018 por Didier Atehortúa, Fabian Torres y Miguel Caballero
Todos los Derechos Reservados.
Publicado por:
Bii Soluciones & Excel Free Blog
Medellín y Bogotá, Colombia: Publicación Simultánea │ Publicado: 14/6/2018
www.biisoluciones.com
www.excelfreeblog.com
ISBN: 978-958-48-3993-0
Manufacturado en Medellín, Colombia.
Ninguna parte de este producto puede ser reproducida, almacenada, por ningún sistema 
de obtención de información o transmitido en ninguna forma: electrónica, mecánica, 
fotocopia, fotoquímica, grabación, escaneo o ninguna relacionada sin el permiso previo 
de los autores o autorización mediante el pago previo de impuestos y adjudicación de 
derechos de autor. 
DECLARACIÓN DE GARATÍA: LOS AUTORES, EDITORES DISTRIBUIDORES NO INCLUYE NINGUNA GARANTÍA O CONVENIENCIA RESPECTO A 
LA PRECISIÓN O INTEGRIDAD DEL CONTENIDO DE ESTE TRABAJO Y ESPECIFICAMENTE RENUNCIAN A TODA GARANTÍA, INCLUIDAS LAS 
GARNATÍAS DE LIMITACIÓN DE ADECUACIÓN PARA UN PROPOSITO PARTICULAR. NINGUNA GARANTÍA PUEDE SER CREADA O AMPLIADA 
POR VENTTAS O MATRIALES PROMOCIOANALES. LOS CONSEJOS Y ESTRATEGIAS AQUÍ CONTENIDO PUEDEN NO SER CONFORMES PARA 
CADA SITUACIÓN. ESTE TRABAJO SE VENDE CON EL ENTENIDMIENT DE QUE LOS AUTORES, EDITORES Y DISTRIBUIDORES NO ESTAN 
INVOLUCRADOS EN LA PRESTACIÓN DE SERVIOOS LEGALES, CONTABLEES U OTROS SERVICIOS PROFESIONALES. SI UN SERVICIO 
PROFESIONAL ES REQUERIDO, EL SERVICIO DE UNA PERSONA PROFESIONAL DEBERÍA SER BUSCADO. NI LOS EDITORES NI LOS AUTORES 
SERÁN RESPONSABLES DE LOS DAÑOS Y PERJUICIOS QUE DEREIVEN DE ELLO. El HECHO DE QUE UNA ORGANIZACIÓN O SITIO WEB 
SEA REFEREIDA EN ESTE TRABAJO COMO CITA O POTENCIAL FUENTE DE INFORMACIÓN NO SIGNIFICA QUE LOS AUTORES O EDITORES 
RESPALDEN LA INFORMACIÓN QUE LA ORGANIZACIÓN O SITIO WEB PUEDAN PROPRCIONAR O RECOMENDAR. ADEMÁS, LOS LECTORES 
DEBEN TENER EN CUENTA QUE LOS SITIOS EN INTERNET LISTADOS EN ESTE TRABAJO PUEDEN CAMBIAR O DESPARECER EN EL 
INTERVALO DE TIEMPO EN QUE ESTE TRABAJO ES REALIZADO Y CUANDO ES LEEIDO. 
Para información general o de nuestros otros productos por favor contactar a: 
didier.morales87@gmail.com o excelfreebymcs@gmail.com o fabian.torres.h@outlook.com
ISBN: 978-958-48-3993-0 │ Edición 1, Distribución 1: 14/06/2018.
    5/742
    A Vanessa Quintero, la esposa de Didier Atehortúa, sin ella este proyecto que palpaba lo quijotesco 
hubiera sido cuando menos utópico. Su apoyo semana a semana, día tras día fue la catapulta para que 
los autores produjeran a un ritmo de película con calidad exquisita. Su amabilidad y generosidad fue el 
catalizador para que elector tengas en sus manos la presente obra.
A Don Carlos Álvarez; por facilitar el espacio, entorno y condiciones más que necesarias para que lo 
autores pudieran trabajar hombro a hombro y de manera sinérgica bajo el mismo techo. Pero, sobre 
todo, por creer en este proyecto.
A la familia de Fabian Torres, por su confianza y apoyo de proporciones infinitas, pues fueron los 
ladrillos para construir este castillo.
A la familia de Miguel Caballero: María Sierra y Luis Fernando Caballero, por su apoyo y constante 
inyección de motivación para culminar este desafío.
A ti lector; por apostar por ti y dejar la piel cuando vayas página a página aprendiendo y utilizando esta 
joya.
A todos, gigantes, mil gracias prestarnos sus robustos hombros para llegar más alto.
    6/742
    Inteligencia de Negocios con Excel y Power BI - Page 7
    7/742
    PARTE I: PREPARACIÓN Y LIMPIEZA DE DATOS (POWER QUERY)..................... 39
Introducción a Power Query (Proceso ETL) .............................................................................. 41
Paseo por la interfaz de Power Query ....................................................................................... 46
Extrayendo datos de múltiples orígenes................................................................................... 53
Integración de datos.................................................................................................................. 121
Reordenación avanzada de datos ............................................................................................ 145
Manejo de consultas.................................................................................................................. 174
Inteligencia de Negocios con fechas ....................................................................................... 189
Introducción al Lenguaje M....................................................................................................... 213
Casos prácticos con Power Query ........................................................................................... 254
PARTE II: ANÁLISIS Y MODELAMIENTO DE DATOS (POWER PIVOT)................273
Introducción al Modelo Tabular................................................................................................ 275
Topología, Relación entre Tablas y sus Tipos.......................................................................... 287
Los 3 Sabores de Cálculos DAX más un Aroma ...................................................................... 301
Recetas DAX (Medidas Rápidas)............................................................................................... 335
La Llave para Dominar DAX: Síntesis de Contextos ............................................................... 351
Funciones Doradas: FILTER, Iteración y ALLxxxx..................................................................... 365
Propagación de Filtros al Desnudo .......................................................................................... 393
La Crema y Nata de las Funciones: CALCULATE...................................................................... 415
Indicadores y Métricas de Razones y Proporciones ............................................................... 449
Indicadores y Métricas de Inteligencia de Tiempo ................................................................. 459
PARTE III: VISUALIZACIÓN DE DATOS Y OBJETOS VISUALES (POWER BI)......513
Introducción a Objetos Visuales de Power BI ......................................................................... 515
Gráficos de Comparación.......................................................................................................... 523
    8/742
    Gráficos de Tendencia ............................................................................................................... 573
Gráficos de Seguimiento........................................................................................................... 595
Gráficos Geográficos................................................................................................................. 611
Gráficos de Segmentación........................................................................................................ 633
Matriz y Tabla ............................................................................................................................. 645
Gráficos Personalizados............................................................................................................ 659
Diseño Apropiado de Gráficos .................................................................................................. 679
Configuración de Reporte......................................................................................................... 687
PARTE IV: APÉNDICES...........................................................................................725
Apéndice A: Referencias y Bibliografía .................................................................................... 727
Apéndice B: DAX Formatter...................................................................................................... 729
Apéndice C: Palabras Claves para Lenguaje Natural............................................................... 731
    9/742
    Agradecimientos.............................................................................................................................................. vi
Contenido Resumido .....................................................................................................................................viii
Contenido Especifico....................................................................................................................................... x
Acerca de los Autores ....................................................................................................................................xix
Dedicatorias ....................................................................................................................................................xxi
Introducción..................................................................................................................................................xxiii
Acerca de Este Libro.....................................................................................................................................xxiv
PARTE I: PREPARACIÓN Y LIMPIEZA DE DATOS (POWER QUERY)..................... 39
Capítulo 1: ntroducción a Power Query (Proceso ETL)................................................ 41
Extracción:.......................................................................................................................................................42
Transformación:..............................................................................................................................................43
Carga:...............................................................................................................................................................43
Tabla:............................................................................................................................................................44
Informe de tabla dinámica: .......................................................................................................................44
Gráfico dinámico: .......................................................................................................................................44
Crear solo conexión: ..................................................................................................................................44
Agregar estos datos al modelo de datos: ...............................................................................................44
Versiones de Power Query ............................................................................................................................45
Capítulo 2: Paseo por la interfaz de Power Query........................................................ 46
Conceptos Básicos.........................................................................................................................................46
¿Qué es una consulta?...............................................................................................................................46
Formato Tabular.........................................................................................................................................46
Ingreso a Power Query desde Excel .............................................................................................................47
Ingresar a Power Query en Power BI............................................................................................................49
Capítulo 3: Extrayendo datos de múltiples orígenes ................................................... 53
Extraer datos de un archivo de texto o formato CSV................................................................................53
Extraer Datos de un archivo txt................................................................................................................54
Extraer Datos de un archivo CSV .............................................................................................................64
Extraer datos desde una tabla o rango........................................................................................................65
Aspectos por resaltar.................................................................................................................................68
Extraer datos de varias tablas o rangos de un mismo libro ......................................................................70
Conectando datos de un libro de Excel a otro ...........................................................................................84
    10/742
    Tratar errores en Power Query .................................................................................................................95
Error en cambio de nombre o ruta del archivo.......................................................................................97
Consolidar datos de una carpeta .................................................................................................................99
Consolidar varios archivos con una sola hoja.........................................................................................99
Consolidar varios archivos con varias hojas ........................................................................................ 104
Conectar datos de la Web.......................................................................................................................... 109
Vinculación a Bases de Datos .................................................................................................................... 110
Extracción de datos del correo .................................................................................................................. 114
Capítulo 4: Integración de datos..................................................................................121
Anexar consultas ......................................................................................................................................... 121
Definir encabezado................................................................................................................................. 122
Extraer datos de la carpeta .................................................................................................................... 123
Extraer datos de txt................................................................................................................................ 125
Extraer datos de archivo de Excel xlsx.................................................................................................. 125
Consolidar consultas .............................................................................................................................. 126
Combinar consultas .................................................................................................................................... 128
Relación uno a uno ................................................................................................................................. 128
Relación muchos a muchos ................................................................................................................... 138
Relación uno a muchos .......................................................................................................................... 141
Capítulo 5: Reordenación avanzada de datos............................................................. 145
Transponer tablas........................................................................................................................................ 145
Anulación de dinamización de columnas (Unpivot) ............................................................................... 147
Anulación de dinamización con dos niveles de encabezado ................................................................. 152
Anulación de dinamización con tres niveles de encabezado................................................................. 157
Columna dinámica....................................................................................................................................... 162
Ejercicio Práctico..................................................................................................................................... 164
Agrupación de datos ................................................................................................................................... 168
Agrupación básica................................................................................................................................... 169
Agrupación Avanzada............................................................................................................................. 171
Capítulo 6: Manejo de consultas ..................................................................................174
Propiedades de las consultas..................................................................................................................... 174
Actualizar cada “X” tiempo ................................................................................................................... 177
Actualizar consultas con macros VBA.................................................................................................. 179
Crear consulta desde una columna........................................................................................................... 182
Organizar consultas .................................................................................................................................... 185
Capítulo 7: Inteligencia de Negocios con fechas........................................................ 189
Crear tabla calendario................................................................................................................................. 189
Año............................................................................................................................................................ 192
    11/742
    Mes............................................................................................................................................................ 193
Trimestre .................................................................................................................................................. 194
Semana..................................................................................................................................................... 195
Día ............................................................................................................................................................. 196
Cálculo entre columnas fechas.................................................................................................................. 198
Cálculo de días en la misma columna ....................................................................................................... 204
Formatos fecha............................................................................................................................................ 209
Capítulo 8: Introducción al Lenguaje M.......................................................................213
Listas, Registros y Tablas en Power Query ............................................................................................... 213
Listas......................................................................................................................................................... 215
Registros (Record) .................................................................................................................................. 217
Tablas........................................................................................................................................................ 220
Editor Avanzado........................................................................................................................................... 221
Let ............................................................................................................................................................. 222
in................................................................................................................................................................ 222
Creación de Bloques ............................................................................................................................... 224
Declaración de variables......................................................................................................................... 228
Nombres de variables ............................................................................................................................. 228
Caracteres en el editor avanzado.......................................................................................................... 229
Funciones básicas ................................................................................................................................... 229
Funciones de texto. ................................................................................................................................ 233
Funciones Lógicas................................................................................................................................... 243
Funciones Lógicas Anidadas. ................................................................................................................. 247
Tratar errores en fórmulas. .................................................................................................................... 250
Descargar listado de funciones de Power Query................................................................................ 253
Capítulo 9: asos prácticos con Power Query .............................................................. 254
Análisis de inventario y pedidos ................................................................................................................ 254
Análisis de Ventas........................................................................................................................................ 260
Consolidar información contable .............................................................................................................. 266
PARTE II: ANÁLISIS Y MODELAMIENTO DE DATOS (POWER PIVOT)................... 273
Capítulo 10: Introducción al Modelo Tabular.............................................................. 275
El modelo multidimensional y tabular....................................................................................................... 275
¿Por qué el modelo tabular?................................................................................................................... 276
Modelo Tabular Vs Modelo Multidimensional ......................................................................................... 278
Futuro del Modelo Multidimensional ................................................................................................... 278
¿Qué es Power Pivot y el Lenguaje DAX?.................................................................................................. 278
Por qué deberías tomártelo enserio...................................................................................................... 279
    12/742
    Qué es el Lenguaje DAX......................................................................................................................... 280
Introducción a Power BI.............................................................................................................................. 280
La Suite de Power BI ............................................................................................................................... 281
Instalar Power BI de Escritorio............................................................................................................... 283
Interfaz de Power BI de Escritorio......................................................................................................... 286
Capítulo 11: Topología, Relación entre Tablas y sus Tipos........................................287
Tipos de Tablas en Bases de Datos ........................................................................................................... 287
Tablas de Hechos (Fact Tables)............................................................................................................. 288
Tablas de Dimensión o Tablas de Búsqueda (Dimensión Table)....................................................... 288
Tipos de Columnas en Tablas de Bases de Datos.................................................................................... 289
Clave Primaria o Primary Key ................................................................................................................. 289
Clave Externa o Foreign Key .................................................................................................................. 289
Entretejido de Tablas .................................................................................................................................. 290
Relaciones Automáticas en Power BI.................................................................................................... 290
Relacionar Tablas Manualmente ........................................................................................................... 293
Tipos de Relaciones ..................................................................................................................................... 295
Relación Uno a Muchos.......................................................................................................................... 296
Relación Uno a Uno ................................................................................................................................ 296
Relación Muchos a Muchos ................................................................................................................... 297
Miniinforme de Múltiples Tablas Relacionadas ................................................................................... 297
Capítulo 12: Los 3 Sabores de Cálculos DAX más un Aroma ....................................301
¿Qué es el Lenguaje DAX?.......................................................................................................................... 301
Los 3 tipos de cálculos (3 sabores)....................................................................................................... 302
Introducción a Medidas .............................................................................................................................. 304
¿Qué es una Medida?.............................................................................................................................. 304
Medidas en Power BI .............................................................................................................................. 305
Tipos de Medidas en Power BI............................................................................................................... 306
Medidas implícitas .................................................................................................................................. 308
Medidas explícitas manuales ................................................................................................................. 312
Medidas explícitas automáticas ............................................................................................................ 317
Introducción a Columnas Calculadas ....................................................................................................... 317
Tablas de Población de la Web.............................................................................................................. 317
Crear Columna Calculada....................................................................................................................... 322
Funciones DAX en Columnas Calculadas............................................................................................. 324
Variables en el Lenguaje DAX..................................................................................................................... 325
Acerca de Variables ................................................................................................................................. 325
Ejemplo Básico: Descuentos.................................................................................................................. 326
Elementos Para Medidas ............................................................................................................................ 327
Tablas para Alojar Medidas .................................................................................................................... 327
Descripción de Medidas ......................................................................................................................... 332
    13/742
    Capítulo 13: Recetas DAX (Medidas Rápidas)............................................................. 335
Medidas Rápidas.......................................................................................................................................... 335
Agregados por Categorías ..................................................................................................................... 337
Filtros ........................................................................................................................................................ 342
Inteligencia de Tiempo ........................................................................................................................... 345
Capítulo 14: La Llave para Dominar DAX: Síntesis de Contextos ...................351
Los 3 Pilares de Todo Crack en DAX ......................................................................................................... 352
Analogía para Propagación, Contexto y VertiPaq............................................................................... 352
Acerca del Ecosistema DAX Engine........................................................................................................... 353
Contextos en DAX................................................................................................................................... 354
Tres Pasos (Internos) Primordiales en DAX.............................................................................................. 357
Identificar Filtros ..................................................................................................................................... 358
Aplicar Filtros ........................................................................................................................................... 358
Ejecutar Expresión DAX.......................................................................................................................... 360
Contextos en DAX....................................................................................................................................... 361
Contexto de Filtro................................................................................................................................... 362
Contexto de Fila ...................................................................................................................................... 362
Capítulo 15: Funciones Doradas: FILTER, Iteración y ALLxxxx...................................365
Funciones Tabulares y Escalares................................................................................................................ 366
Funciones Escalares ................................................................................................................................ 366
Funciones Tabulares ............................................................................................................................... 367
Función FILTER............................................................................................................................................. 368
Sintaxis de la Función FILTER................................................................................................................. 368
Argumentos Tabulares en Funciones Escalares .................................................................................. 372
Funciones de Iteración................................................................................................................................ 375
Funciones con Sufijo X........................................................................................................................... 376
Funcionamiento Interno de las Funciones con Sufijo X..................................................................... 377
Otras Funciones de Iteración................................................................................................................. 383
Lista de Funciones de NO Sufijo X........................................................................................................ 384
Funciones ALLxxxx....................................................................................................................................... 384
Función ALL.............................................................................................................................................. 384
Las Dos Caras de ALL .............................................................................................................................. 386
Función ALLEXCEPT ................................................................................................................................ 391
Lista de Otras Funciones ALLxxxx ......................................................................................................... 392
Capítulo 16: ropagación de Filtros al Desnudo........................................................... 393
La Importancia de los Contextos............................................................................................................... 394
Propagación de Filtros ................................................................................................................................ 395
Configuración de la Matriz .................................................................................................................... 397
    14/742
    Tres Pasos Primordiales en DAX............................................................................................................ 398
Filtros Indirectos o Cruzados................................................................................................................. 406
Mecanismo de Propagación de Filtros...................................................................................................... 407
Propagación en Acción........................................................................................................................... 408
Tres Pasos (Internos) Primordiales en DAX con Propagación ........................................................... 413
Recomendaciones para trabajo con múltiples tablas y Propagación............................................... 413
Capítulo 17: La Crema y Nata de las Funciones: CALCULATE ....................................415
Anomalías en Medidas de Participación con SUMX y ALL ..................................................................... 416
Variación Discreta de Contexto ............................................................................................................ 418
Primera Profundización en el Contexto de Filtro .................................................................................... 423
Listas (Filtros) en el Ambiente de Contextos ...................................................................................... 423
Significado de Modificar el Contexto de Filtro.................................................................................... 426
Contexto de Filtro una Definición más Aproximada........................................................................... 427
El ABC de la Función CALCULATE.............................................................................................................. 427
Sintaxis de la Función CALCULATE ....................................................................................................... 428
Procedimiento Interno de la Función CALCULATE.............................................................................. 429
La Máscara para Condición Booleana................................................................................................... 430
El Operador IN ......................................................................................................................................... 439
Condiciones Booleanas con Disyunción Lógica.................................................................................. 441
Casos de Condiciones Booleanas para CALCULATE........................................................................... 444
Las 3 Posibles Condiciones de CALCULATE ............................................................................................. 444
Condición en Forma de Tabla ................................................................................................................ 445
Solución % Participación............................................................................................................................ 447
Capítulo 18: Indicadores y Métricas de Razones y Proporciones ............................. 449
% Participación Dinámica........................................................................................................................... 450
Función ALLSELECTED............................................................................................................................ 452
Total de Fila o Columnas ........................................................................................................................ 455
Capítulo 19: ndicadores y Métricas de Inteligencia de Tiempo ................................ 459
Tablas de Calendario................................................................................................................................... 459
Qué es una Tabla de Calendario............................................................................................................ 460
¿Cuáles son las columnas que debe tener una tabla de calendario?................................................ 463
Características y Propiedades de una Tabla de Calendario ............................................................... 464
Métodos de Construcción de Tablas de Calendario........................................................................... 466
Construcción de Tabla de Calendario con CALENDAR y CALENDARAUTO ..................................... 467
Marcar como Tabla de Calendario ........................................................................................................ 474
Construcción de Tabla de Calendario con GENERATE y ROW .......................................................... 476
Interacción de Tabla de Calendario con las demás Tablas................................................................. 478
Orden Cronológico para Meses ............................................................................................................ 479
Extensión de Tablas de Calendario ....................................................................................................... 481
    15/742
    Días No Laborales con Tablas de Calendario (Sábados, Domingos y Festivos).............................. 484
Funciones de Inteligencia de Tiempo (Time Intelligence) ...................................................................... 487
Acumulados: Total a la fecha (YTD, MTD y QTD)................................................................................ 487
Acumulados con: TOTALYTD, TOTALQTD y TOTALMTD .................................................................... 497
Acumulado: Histórico a la Fecha (HTD)................................................................................................ 498
Comparación de Períodos (PY, PQ y PM)............................................................................................. 500
Total del Año Pasado .............................................................................................................................. 505
Mismo Acumulado del Año Pasado: PY YTD........................................................................................ 507
Diferencias en Periodos.......................................................................................................................... 509
Cálculo del Total Anual Móvil ................................................................................................................ 510
PARTE III: VISUALIZACIÓN DE DATOS Y OBJETOS VISUALES (POWER BI)......513
Capítulo 20: Introducción a Objetos Visuales de Power BI .......................................515
Cómo Crear un Objeto Visual en Power BI .............................................................................................. 515
¿Qué es un Gráfico?................................................................................................................................ 516
Panel de Visualizaciones ........................................................................................................................ 516
Creando Objetos Visuales en Power BI ................................................................................................ 517
Evolución Matriz a Gráfico ......................................................................................................................... 519
Cambiar el Tipo de Visualización........................................................................................................... 519
Evolución Matriz a Gráfico..................................................................................................................... 520
Tipos de Objetos Visuales en Power BI ................................................................................................ 522
Capítulo 21: Gráficos de Comparación........................................................................523
Objetivo de los Gráficos de Comparación................................................................................................ 523
¿Cuáles son los gráficos de Comparación?.............................................................................................. 524
Subcategoría I: Columnas y Barras............................................................................................................ 525
Gráfico de Barras Apiladas ..................................................................................................................... 525
Gráfico de Columnas Apiladas............................................................................................................... 536
Gráfico de Barras Agrupadas ................................................................................................................. 539
Gráfico de Columnas Agrupadas........................................................................................................... 544
Gráfico de Columnas Apiladas y de Líneas........................................................................................... 546
Gráfico de Columnas Agrupadas y de Líneas....................................................................................... 548
Subcategoría II: Distribución...................................................................................................................... 550
Gráfico de Barras 100% Apiladas y Gráfico de Columnas 100% Apiladas....................................... 550
Gráfico Circular........................................................................................................................................ 554
Gráfico de Anillos .................................................................................................................................... 557
Treemap.................................................................................................................................................... 559
Subcategoría III: Flujo de Datos................................................................................................................. 561
Gráfico de la Barra de Herramientas ..................................................................................................... 561
    16/742
    Embudo .................................................................................................................................................... 570
Capítulo 22: Gráficos de Tendencia .............................................................................573
Objetivo de los Gráficos de Tendencia ..................................................................................................... 573
¿Cuáles son los Gráficos de Tendencia? ................................................................................................... 574
Gráficos de Tendencia................................................................................................................................. 574
Gráfico de Líneas ..................................................................................................................................... 574
Gráfico de Áreas ...................................................................................................................................... 580
Gráfico de Áreas Apiladas....................................................................................................................... 583
Gráfico de Dispersión.............................................................................................................................. 585
Capítulo 23: Gráficos de Seguimiento.........................................................................595
Objetivo de los Gráficos de Seguimiento................................................................................................. 595
¿Cuáles son los Gráficos de Seguimiento?............................................................................................... 596
Gráficos de Seguimiento ............................................................................................................................ 596
Medidor .................................................................................................................................................... 596
Tarjeta....................................................................................................................................................... 601
Tarjeta de Varias Filas ............................................................................................................................. 603
KPI ............................................................................................................................................................. 605
Capítulo 24: Gráficos Geográficos ...............................................................................611
Objetivo de los Gráficos Geográficos ....................................................................................................... 611
¿Cuáles son los Gráficos Geográficos?...................................................................................................... 612
Gráficos Geográficos................................................................................................................................... 612
Mapa......................................................................................................................................................... 612
Mapa Coroplético.................................................................................................................................... 616
Mapas ArcGIS para Power BI.................................................................................................................. 619
Capítulo 25: Gráficos de Segmentación......................................................................633
Objetivo de los Gráficos de Segmentación.............................................................................................. 633
¿Cuáles son los Gráficos de Segmentación?............................................................................................ 633
Segmentación de Datos ............................................................................................................................. 634
Capítulo 26: Matriz y Tabla ........................................................................................... 645
Matriz............................................................................................................................................................ 645
Tabla.............................................................................................................................................................. 656
Capítulo 27: gráficos Personalizados ..........................................................................659
¿Qué son los Gráficos Personalizados?..................................................................................................... 659
¿Como Agregar un Gráfico Personalizado?.......................................................................................... 660
Importar desde el Market Place............................................................................................................. 664
Bullet Chart by OKViz ................................................................................................................................. 666
Thermometer by MAQ Software ............................................................................................................... 670
    17/742
    Tachometer .................................................................................................................................................. 672
Otros Gráficos Personalizados................................................................................................................... 678
Capítulo 28: Diseño Apropiado de Gráficos ................................................................ 679
Lineamientos de Diseño para Visualización de Datos ............................................................................ 679
Claridad .................................................................................................................................................... 680
Consistencia ............................................................................................................................................ 681
Legibilidad ................................................................................................................................................ 682
Balance ..................................................................................................................................................... 683
Transmitir el Mensaje Apropiado........................................................................................................... 684
Simplificar el Color.................................................................................................................................. 685
Capítulo 29: Configuración de Reporte.......................................................................687
Configuración .............................................................................................................................................. 687
Formato de Página.................................................................................................................................. 687
Opciones de una Visualización.............................................................................................................. 689
Interacciones Visuales ............................................................................................................................ 695
Panel de Filtros ........................................................................................................................................ 700
Marcadores .............................................................................................................................................. 709
Preguntas y Respuestas ......................................................................................................................... 714
Botones .................................................................................................................................................... 717
PARTE IV: APÉNDICES .....................................................................................725
Apéndice A: Referencias y Bibliografía ........................................................................727
Apéndice B: DAX Formatter .......................................................................................... 729
Apéndice C: Palabras Claves para Lenguaje Natural...................................................731
    18/742
    Empresario y fundador de la empresa Bii Soluciones (Business 
Intelligence Information Soluciones) una compañía dedicada a la 
consultoría y desarrollo de soluciones en análisis financiero y 
de costos, inteligencia de negocios y análisis de información. 
Didier es ingeniero financiero certificado por Microsoft como 
especialista en Excel, con un amplio recorrido en el sector 
empresarial. 
Además de su labor como asesor y consultor, es también docente en Excel y las 
herramientas inteligencia de negocios, entrenando anualmente más de mil personas en 
esta extraordinaria herramienta. Convencido de que la información es la columna vertebral 
de toda compañía o negocio, por ende, Excel y Power BI son las herramientas más 
poderosas para analizar datos y resumir gerencialmente la información.
Es creador de contenido, autor y consultor en análisis de datos 
utilizando Excel y la suite de herramientas de Microsoft BI. 
Miembro del equipo en EFB y Coautor de los libros: Tablas 
Dinámicas La Quinta Dimensión y El ADN de Power Pivot. 
Ingeniero Industrial por formación, desarrollador de Cuadros 
de Mando, reportes Inteligentes e informes interactivos.
Él ha ejecutado variedad de entrenamientos con empresas privadas y de grupos
independientes, gracias al trabajo continuo en Excel Free Blog con un enfoque en 
visualización de datos.
Fabian es entusiasta en visualización de datos y se especializa en la optimización a través 
de la comunicación mediante gráficos, objetos visuales y herramientas de diseño.
    19/742
    Es formador y consultor en análisis de datos e inteligencia de 
negocios utilizando las tecnologías de Microsoft BI. Ha 
entrenado a centenares de personas en Medellín y Bogotá 
Colombia, ello gracias a la vinculación con empresas privadas 
y su gestión mediante su blog y canal de YouTube: Excel Free 
Blog.
Miguel, También se ha ido erigiendo como un autor prolífico gracias a tu coautoría en los 
libros Tablas Dinámicas La Quinta Dimensión y El ADN de Power Pivot, este último posicionado 
como uno de los mejores títulos en habla hispana en la bibliografía para aprender y 
dominar Power Pivot y DAX para Excel. El también escribió Funciones Primordiales en Excel, 
un minilibro en versión beta que enfatiza en las funciones claves de Excel para generar un 
diferencial ágilmente. 
Ingeniero industrial por formación y profesional Excel developer por entrenamiento, ha 
desarrollado proyectos en el sector textil, financiero y comercial, así mismo ha trabajado 
en el área de retribución salarial creando y validando modelos de compensación fija y 
variable apoyadas en hojas de caculos sofisticadas.
    20/742
    – Didier Atehortúa
A Dios en primer lugar, por darme la capacidad y dones que tengo, por conocer 
amigos como Miguel y Fabian y hacer sinergia y crear este gran proyecto. 
A mi esposa Vanessa Quintero, porque es de esas personas que hace todo 
detrás de cámaras, por ello terminan con un papel de más peso que el mismo 
protagonista, gracias por todo su apoyo en esta aventura.
A mis hijos: Sofía, Miguel y Simón, son un motivo más para segur avanzado.
– Fabian Torres
Para Enith y Pablo, por enseñarme el valor de la disciplina y el amor hacia el 
trabajo.
– Miguel Caballero 
A la memoria de mi padre: Miguel Antonio Caballero Arrieta.
    21/742
    Inteligencia de Negocios con Excel y Power BI - Page 22
    22/742
    Power BI no es un programa para analizar datos, tampoco es un conjunto de tecnologías para 
el análisis de negocios, Power BI es en realidad y esencia: un estilo de vida.
¿Una premisa excesiva?, ni de cerca, es en su lugar la definición más fiel a la realidad, la que mejor 
encaja cuando nos volcamos en el aprendizaje de la que es hoy por hoy el software líder en BI 
o Business Intelligence. Te lo vamos a dibujar con detalle: Qué sucede cuando depende de tu 
voluntad las horas que trabajas, cuando tienes la potestad absoluta de decidir si le dedicas 
mayor o menor tiempo a un proyecto o tarea laboral, en filtrar y seleccionar entre un trabajo u 
otro; en que escalar sea una constante del día a día, parte de tu ser ¿No es eso un estilo de vida?
Power BI va a poner a tu disposición todo eso gracias a que te dará más de lo necesario para 
preparar datos como solo la élite de la élite puede lograrlo, analizarlos como un genio 
adelantado a su época, visualizarlos como cual Leonardo Da Vinci y su Mona Lisa más un 
horizonte tupido de posibilidades para compartir, manejar niveles de privacidad, generar roles 
de administración, manejo de biga data y muchísimo más. Y, ¿Dónde ha quedado Excel?
Excel está ahí, asechando, siempre a la vanguardia y despuntando como la herramienta número 
uno para manipular datos, y, para que no quede el mínimo vestigio de duda, hay que conocer y 
resaltar con tinta indeleble que Power BI es la yuxtaposición de Power Query, Power Pivot, 
Power View y Power Map; todos ellos complementos y características nativas de Excel, así que 
como mínimo cuando aprendes Power BI aprendas las herramientas de inteligencia de negocios 
de Excel y viceversa. Quieres un super estilo vida, haz tu mantra: Excel y Power BI.
¿Preparado para saborear y devorar cada hoja, página, párrafo y letra de este libro?, excelente:
«Bon appétit».
    23/742
    Para entender la estructuración y hoja de ruta de este libro es imperativo clarificar desde el 
minuto cero que: la inteligencia de negocios con las tecnologías de Microsoft BI esta pavimentado 
sobre el proceso BI, es decir, por cuatro etapas secuenciales e íntimamente relacionadas:
▪ Preparación de Datos
▪ Análisis de Datos
▪ Visualización de Datos
▪ Compartir información
Adicionalmente existen diversas tecnologías de Microsoft para BI, pero aquí nos centraremos en 
dos: Excel y Power BI, para captar como coinciden esos dos programas con las etapas del proceso 
BI desglosemos cada uno:
Excel
▪ Power Query → Preparación de Datos
▪ Power Pivot (DAX Engine) → Análisis de Datos
▪ Power View y Power Map → Visualización de Datos
Power BI de escritorio
▪ Power Query → Preparación de Datos
▪ DAX Engine → Análisis de Datos
▪ Objetos Visuales → Visualización de Datos
Se puede apreciar que independientemente del programa nos encontraremos con las funcionalidades 
de preparación, análisis y visualización de datos, quiere decir que el conocimiento será 
intercambiable entre un programa y otro, podrá ser aplicado en ambas direcciones.
    24/742
    Este no es un libro de Excel, tampoco es un libro de la suite de Power BI, es un libro sobre los 3 primeros
ejes para inteligencia de negocios con Excel y Power BI.
Excel es la herramienta por excelencia para el tratamiento y manipulación de datos, esto quiere 
decir que no solo no sirve para las etapas del proceso de inteligencia de negocios, sino también 
para capitación y registro de datos, validación y corrección, creación de aplicaciones con la 
interfaz, programación con VBA entre muchas otras cosas.
Otro aspecto por destacar es que Power BI no es un programa, es en realidad una familia (suite)
de programas constituida principalmente por: Power BI de escritorio (Power BI Desktop), el 
servicio de Power BI en la nube (Power BI Services) y Power BI para dispositivos móviles (Power 
BI Mobile)
Este libro está basado en los “complementos” de Excel para inteligencia de negocios y Power BI 
de escritorio, abordando la espina dorsal para el análisis de datos. Power BI Services y Power BI 
Mobile no será tratados en este libro, ni tampoco otras funcionalidades diferentes de Excel,
pues si nos diéramos a una tarea de semejantes proporciones sin duda terminaríamos con un 
compendio de más de 5000 páginas.
Excel: Es necesario contar con Excel 2016 o 2013.
Power BI Desktop: Descargar la actualización del mes en curso, por lo menos corroborar que 
tenemos la versión de abril del 2018.
    25/742
    Este libro esta divido en tres grandes partes, cada uno agrupa una serie de capítulos de acuerdo 
con la etapa del proceso BI, cada parte hará el desarrollo de su respectiva temática en un 
programa en particular, con esto lo que se busca es ver la intercambiabilidad de conocimiento 
entre un software y otro.
▪ Parte I: Preparación y Limpieza de Datos (Capítulo 1 a 9): Esta parte está compuesta 
por nueve capítulos donde encontrarás una multitud de trucos, herramientas y 
utilidades para: limpiar, depurar, integrar, enriquecer e incluso resumir datos; por si fuera 
poco, esta aderezado con los fundamentos del lenguaje M.
▪ Parte II: Análisis y Modelamiento de Datos (Capítulo 10 a 19): Esta parte formada por 
10 capítulos cubre los puntos necesarios y determinantes para convertirte en usuario 
competente del lenguaje para el análisis de datos (DAX) y así crear tus propias métricas e 
indicadores de análisis de negocio.
▪ Parte III: Visualización de Datos y Objetos Visuales (Capítulo 20 a 29): La variedad de 
gráficos y objetos visuales de Power BI es el foco de esta parte, su configuración, diseño, 
herramientas analíticas individuales, casos de uso y buenas prácticas te acompañaran a 
lo largo de cada capítulo.
▪ Parte IV: Apéndices (A,B y C): Este libro tiene tres apéndices que cubren la bibliografía, 
el DAX Formatter y las palabras claves del lenguaje natural.
La Parte I se desarrollará en su totalidad en Excel mientras que las Partes II y III se 
desarrollarán en Power BI de escritorio.
    26/742
    Cada parte del presente texto es una parte integral de los tres primeros ejes del proceso de 
inteligencia de negocios, todos los capítulos de este libro se catalizan unos a otros como los 
ingredientes de un complejo multivitamínico, te dejamos la tabla nutricional capítulo a capítulo.
PARTE I: Preparación y Limpieza de Datos
Capítulo 1: Introducción a Power Query y Proceso ETL
El primer capítulo trata sobre los fundamentos teóricos para la preparación y administración de 
datos, en concreto el Proceso ETL. Además se trata los múltiples destinos de carga que se 
pueden manejar en Power Query para Excel.
Capítulo 2: Pase por la Interfaz de Power Query
Para trabajar con Power Query es necesario conocer su interfaz a la perfección, en definitiva, 
nos permitirá navegar y empezar con el temario aplicado.
Capítulo 3: Extrayendo Datos de Múltiples Orígenes
Una de las maravillas de Power Query es la gran variedad de orígenes a las que se puede 
conectar, de hecho, está en constante aumento. En este capítulo se verán todas las opciones 
para conectarse a un archivo de Excel: con una hoja, con múltiples hojas; a archivos con 
múltiples hojas, a múltiples archivos múltiples hojas, etc.
Capítulo 4: Integración de Datos
La capacidad de tomar varias consultas o tablas y consolidarlas de acuerdo con nuestra 
necesidad específica y lógica de los datos es el tema en el que ahondará el capítulo de 
integración de datos, estudiando como anexar y combinar datos.
    27/742
    Capítulo 5: Reordenación Avanzada de Datos
Cuantas veces no te has encontrado con formatos de tablas completamente diferentes al 
estándar, es decir, con organización variada y estructuración que en algunos casos pareciera 
nos seguir ningún orden lógico, las técnicas de reordenación avanzada de datos: Anulación de 
dinamización, Columna Dinámica y Agrupación te brindaran un arsenal fuerte de trucos avanzados 
para la preparación de datos. 
Capítulo 6: Manejo de Consultas
Las consultas son el bloque de trabajo que internamente siguen el proceso ETL para la 
preparación de datos, en este capítulo se verá cómo organizarlos correctamente y programar
su actualización de forma manual y con VBA.
Capítulo 7: Inteligencia de Negocios con Fechas
Power Query cuenta con opciones para manejo de fechas desde su interfaz, en otras palabras, 
nada de código o funciones enrevesadas, en su lugar permite realizar cálculos y manipulación 
sobre fechas con clics.
Capítulo 8: Introducción al Lenguaje M
Todo el funcionamiento interno de Power Query, desde la extracción de datos hasta las 
acciones sobre la interfaz y su carga se traducen al final en unas funciones llamadas lenguaje 
M, en este capítulo se verán los fundamentos de este lenguaje.
Capítulo 9: Casos Prácticos con Power Query
Aunque todo hasta aquí ha sido practico para ser implementado en nuestro trabajo y sacarle el 
jugo en áreas laborales específicas: una serie de escenarios concretos de carácter contable, 
inventarios y ventas se verán en esta parte del libro para cerrar con broche de oro la parte de 
preparación y limpieza de datos.
    28/742
    PARTE II: Análisis y Modelamiento de Datos
Capítulo 10: Introducción al Modelo Tabular
A partir de aquí se emprende el vuelo por la etapa de análisis de datos, el itinerario de inicio se 
basa en entender qué es el modelo tabular y por qué nos interesa, qué es el modelo 
multidimensional y los fundamentos de iniciación en Power BI de escritorio.
Capítulo 11: Topología, Relación entre Tablas y sus Tipos
Un modelo de datos puede tener una o varias tablas, en el segundo caso debemos entender los 
conceptos básicos en modelamiento de datos y la relación entre tablas, esta temática es el eje 
de giro del capítulo.
Capítulo 12: Los 3 Sabores de Cálculos DAX más un Aroma
DAX es lenguaje de funciones utilizado en Power BI, Power Pivot para Excel y SSAS en su modelo 
tabular para extraer información del conjunto de tablas del modelo. DAX puede llegar a ser 
bastante complejo de dominar en su pensum más avanzado, a pesar de ello, todo orbita en 3 
cálculos. La introducción y fundamentos a los 3 cálculos DAX es el recorrido del capítulo.
Capítulo 14: Recetas DAX (Medidas Rápidas)
A diferencia de Power Query para Excel o Power BI, DAX no cuenta con una generosa y 
bondadosa interfaz para crear pasos y solucionar tareas con sólo clics, eso sí, las medidas 
rápidas (un sabor cálculo DAX) son las primeras aproximaciones.
Capítulo 15: La Llave para Dominar DAX: Síntesis de Contextos
Este capítulo tiene como foco lo que hemos denominado como: el peldaño para domina DAX, 
el carburador para el análisis de datos en Microsoft BI, el destino donde debes pasar más tiempo, 
etc. En conclusión, son los fundamentos teóricos obligados que tienes que leer con detalle.
    29/742
    Capítulo 16: Funciones Doradas FILTER, Iteración y ALLxxxx
El leguaje DAX puede ser abrumador por la cantidad impresionante y en constante crecimiento 
de funciones que nos brinda, en este capítulo, extraemos las imprescindible, las funciones 
doradas que te permitirán ejecutar un amplio abanico de tareas.
Capítulo 17: Propagación de Filtros al Desnudo
Será tema de este capítulo comprender como funciona las relaciones declarativas que existen 
en las tablas del modelo de datos: cómo se comunican, cómo se afectan y las reglas que debes 
acatar para nos mostrar valores anómalos.
Capítulo 18: La Crema y Nata de las Funciones CALCULATE
Este capítulo empieza así; “Una función para gobernarlas a todas. Una función para encontrar todas 
las respuestas, una función para utilizarlas en un mismo lugar y atarlos en un mismo ambiente. La 
función única, CALCULATE, no es siniestra sino más bien todo lo contrario: el verdadero poder” tal vez, 
el capítulo más importante de la parte 2.
Capítulo 19: Indicadores y Métricas de Razones y Proporciones
En el catálogo de cálculos que se encuentra una analista en el día a día está el % de participación
y todas sus variantes, es decir, porcentaje del total general, porcentaje del total de columna y 
porcentaje de total de fila. Este capítulo recorre las expresiones DAX para cada una y la manera 
más flexible de crearlas.
Capítulo 20: Indicadores y Métricas de Inteligencia de Tiempo
Un capítulo, cómo lo ponemos: “gordo”, está cargado con todo lo necesario para añadir en 
nuestro modelo de datos las tablas necesarias para segmentar por fechas y prácticamente 
cualquier sistema de tiempo, a ello súmesele un tour por las funciones para crear indicadores 
de tipo: YTD, PY, PY Total, MAT, entre otros.
    30/742
    PARTE III: Visualización de Datos y Objetos Visuales (Power BI)
Capítulo 21: Introducción a Objetos Visuales en Power BI
No podemos ser ciegos a la realidad, los gráficos e interactividad de las visualizaciones en Excel 
se quedan cortos, por esto en este capítulo te invitamos a que conozcas los fundamentos de 
los objetos visuales en Power BI puesto que en este sentido te dará lo necesario para descrestar 
con tus presentaciones.
Capítulo 22: Gráficos de Comparación
Una de las tareas más comunes en el análisis y visualización de datos es: la comparación entre 
categorías, periodos de tiempo e incluso variables, ya que nos permite contrastar resultados 
para entender lo que está sucediendo en un escenario en particular, este capítulo trata uno y 
cada uno de ellos.
Capítulo 23: Gráficos de Tendencia
Los gráficos para ver datos a través del tiempo y hacer comparaciones con esta variable como 
centro de atención principal es el objetivo de este capítulo.
Capítulo 24: Gráficos Geográficos
En este capítulo se ven aquellas visualizaciones para geolocalizar, pero sobre todo y ante todo 
te invitamos a abrazar los Mapas ArcGIS, puesto que es posible agregar capas de referencia, 
modificar el tema por un catálogo más extenso, ver tiempos de recorrido e incluso tomar datos 
públicos para verlos junto con nuestro modelo. 
Capítulo 25: Gráficos de Segmentación
Algo que no se puede negar de Power BI es que es dinámico e interactivo hasta la médula, de 
hecho, las segmentaciones de datos ofrecen la posibilidad de cambiar la perspectiva del reporte 
con un objeto visual de fácil configuración, en este capítulo se detalla.
    31/742
    Capítulo 26: Matriz y Tablas
Este capítulo explica dos objetos visuales nativos de Power BI para mostrar datos detallados, es 
decir, en tablas y matrices. La matriz es el hermano gemelo de una tabla dinámica de Excel por 
lo que este capítulo te ayudará sentirte más cómodo si eres un usuario de tablas dinámicas
intermedio y estas sembrando tus primeros pinitos en Power BI.
Capítulo 27: Gráficos Personalizados
Si hay algo que hace que Power BI despunte como líder en inteligencia de negocios en contraste 
con otras tecnologías a parte de su capacidad de preparación de datos y proceso ETL, es la 
creación de gráficos personalizados y utilización de un catálogo creciente a paso galopante y 
firme.
Capítulo 28: Diseño Apropiado de Gráficos
Las buenas prácticas de diseño para presentación de gráficos que trasmitan de la mejor manera 
la información de los datos es el tema de este capítulo.
Capítulo 29: Configuración de Reporte
Este libro esta divido en tres grandes partes, cada una agrupa una serie de capítulos de acuerdo 
con la etapa del proceso BI, cada parte hará el desarrollo de su respectiva temática en un 
programa en particular.
Sin importar si tienes un conocimiento básico de Excel, si eres un programador de VBA 
avanzado o si más bien no tienes idea de Power BI o has hecho ya un recorrido por él; el presente 
texto te aportará las herramientas básicas y avanzado para extraer información valiosa de los 
datos.
    32/742
    Tomate un minuto para escanear esta sección para conocer los recuadros que le dan vida a las 
explicaciones, y otros elementos visuales que buscan que el viaje sea lo más enriquecedor 
posible. 
▪ Nota: Este recuadro invita a tomar nota, es decir, a tener en plena consideración lo que 
allí se describe, pues son puntos claves para el manejo y sentirse cómodo con el tema y 
sus aplicaciones por parte del lector en el futuro.
▪ Definición o Aclaración: Este recuadro resalta un concepto o definición de vital 
importancia para compresión plena de la temática, también, los encontraras para 
clarificar puntos críticos.
▪ ¡Advertencia!: Señalan posibles obstáculos que puedes encontrar. Presta atención, te 
alertan de problemas que de otra manera te podría tomar horas .
Nota. Los pasos aplicados en la consulta se ordenan a medida que se va realizando 
la limpieza, puedes ir dando clic de principio a fin a cada uno de los pasos y los datos 
va mostrando los cambios que ya se ha realizado, debes tener muy en cuenta si vas 
a crear un paso nuevo estar ubicado en el último paso, a no ser que quieras crear un 
paso intermedio.
Cálculos DAX Los Cálculos DAX componen la Escalera Real en nuestra mano de 
póquer BI para doblegar los datos para que nos entreguen la información necesaria 
en el momento oportuno.
¡Advertencia! Debes estar conectado a Internet para que los Mapas funcionen 
correctamente, de otra manera, no se visualizan los datos.
    33/742
    Aunque este libro está concebido como un todo y cada capítulo es parte de un objetivo global: 
Tomar los datos de ayer y hoy para tomar mejores decisiones mañana. Está más que claro que este 
libro esta divido en tres partes.
▪ Preparación de Datos
▪ Análisis de Datos
▪ Visualización de Datos
Si el lector le urge aprender a crear métricas e indicadores para analizar datos, puede arrancar 
con la Parte II sin ningún problema, no obstante, si tu rutina diaria te demanda arreglara y 
prepara tablas, recorre cada capítulo de la Parte I: de preparación de datos es perfectamente 
válido, del mismo modo, si desea conocer en primera instancia sobre visualización de datos la 
Parte III es tu punto de partida.
Los archivos que se trabajan en este libro vienen en dos categorías, al adquirir una copia de este 
libro también tendrás a tu disposición un zip que al descomprimirlo te proporcionará dos 
carpetas:
▪ Disproductos: Esta carpeta tiene las tablas: Pedidos, CategoriaDeProductos, 
SKUProductos y Descuentos.
▪ Capítulo a Capítulo: Una carpeta con subcarpetas capítulo a capítulo donde tendrás el 
material para el desarrollo de cada uno de ellos.
    34/742
    El presente libro lo hemos creado con mucho cariño, dedicación y, sobre todo: dejando la piel en 
la cancha, para así brindarte lo mejor. No obstante, minimizar a cero errores e inconvenientes 
de un libro de esta envergadura es una tarea compleja y de aproximaciones sucesivas.
– Programa de Actualización de Contenido:
Por lo anterior este libro cuenta con algo llamado: Programa de Actualización de Contenido, es 
decir, que haremos correcciones y mejoras a este texto a lo largo del tiempo para así mejorarlo
y perfeccionarlo constantemente como un compromiso de los autores para dotarte con la 
mejor referencia de inteligencia de negocios utilizando Excel y Power BI en habla hispana.
Al adquirir este libro quedas registrado automáticamente en nuestra base de datos, por lo que al 
momento de ocurrir una actualización te llegará un correo con todas las instrucciones sin 
ningún costo adicional
– Distribuciones:
Estas actualizaciones o versiones mejoradas del libro digital las llamaos Distribuciones y puedes 
identificar a cuál corresponde en la página cinco del PDF en la parte inferior.
    35/742
    – Feedback:
Tu como el lector de este libro eres uno de los críticos más valioso, por esto es muy importante 
para nosotros escuchar de su parte cualquier opinión, critica, corrección, sugerencia, mejoras, 
ilustraciones, consejos, complementos, anomalías etc. En cuyo caso puede escribirnos al cualquiera 
al siguiente correo electrónico:
▪ E-mail 1: excelfreebymcs@gmail.com 
▪ E-mail 2: didier.morales87@gmail.com
▪ E-mail 3: fabian.torrres.h@outlook.com
También te invitamos a que te unas al grupo abierto en Facebook Enciclopedia Power BI: 
▪ Grupo en Facebook: https://www.facebook.com/groups/149226925872805/
Allí podremos compartir y ayudarnos entre todos.
    36/742
    Inteligencia de Negocios con Excel y Power BI - Page 37
    37/742
    Inteligencia de Negocios con Excel y Power BI - Page 38
    38/742
     
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
EN ESTA PARTE
Capítulo 1
Introducción a Power Query (Proceso ETL)
Capítulo 2
Paseo por la interfaz de Power Query
Capítulo 3
Extrayendo datos de múltiples orígenes
Capítulo 4
Integración de datos
Capítulo 5
Reordenación avanzada de datos
Capítulo 6
Manejo de Consultas
Capítulo 7
Inteligencia de negocios con fechas
Capítulo 8
Introducción al lenguaje M
Capítulo 9
Casos prácticos con Power Query
En esta primera parte aprenderás todo lo 
necesario para la extracción, 
transformación y carga de datos, ya que es 
el proceso inicial para la inteligencia de 
negocios, todo lo relacionado con la 
higiene y limpieza de datos, listos para ser 
procesados, analizados y visualizados
    39/742
    40/742
     
CAPÍTULO 1 
Después de este capítulo tú sabrás:
▪ ¿Qué es Power Query?
▪ El proceso ETL
▪ Versiones de Power Query
Una de las grandes herramientas para la inteligencia de negocios es Power Query que su 
definición en español es consulta de poder, es decir, es el inicio del proceso Bi (Business 
Intelligence) el origen de todo parte en esta herramienta. Power Query es la revolución para la 
limpieza de datos, si alguna vez has usado Excel para realizar un cálculo, una gráfica o un 
informe en especial sabemos que te has encontrado con dificultades porque los datos no están 
como tú quieres o como deberían estar, pues bien, te queremos contar y asegurar que nunca 
habíamos encontrado una herramienta con tanto poder para la solución a tus problemas a la 
hora de trabajar con datos, es como hoy en día tener oro en tu casa pero que no sabes en que 
parte esta, lo mismo pasa con Power Query muchos aún saben que existe pero no saben dónde 
está o tal vez ni has escuchado de él.
Es imposible para nosotros quedarnos con tanto potencial en nuestras mentes, por eso 
queremos compartir contigo todo el conocimiento, habilidades y experiencias que durante 
muchos años hemos desarrollado para este momento, ya que esta herramienta como este libro 
te va a dar un gran impulso al futuro y competencia única en tu vida profesional y empresarial, 
si eres un usuario de Excel básico o avanzado ten la certeza de lo mucho que vas a aprender, 
aún si has manejado otras herramientas ofimáticas y de estadística.
    41/742
    Para entrar en contexto sobre Power Query y el eje central de la herramienta es la manera en 
que muele u organiza los datos, ya sean estructurados o no estructurados, si eres de los que te 
has encontrado con varios archivos de Excel y necesitas realizar un informe consolidado y esto 
te toma demasiado tiempo y lo peor aún es una tarea repetitiva y periódica y cada semana o 
cada mes es el mismo proceso, esta es la buena noticia, Power Query llegó para salvarte la vida, 
o si necesitas hacer un cruce de información en la cual tienes varias tablas o hacer relaciones 
entre ellas y te tocó aprender la funciones de búsqueda como BUSCARV o aún no las dominas, 
te tengo otra súper noticia, estas apunto de encontrar oro en tu casa y en los casos más 
comunes que siempre te toca realizar el mismo proceso con tus datos, hacer limpiezas, 
ordenarlos, eliminar y añadir filas y columnas y cuanto truco y manejo estas acostumbrado y 
esto te quita horas de trabajo y en casos hasta semanas, llegó tu libertad !!!. Nuestra filosofía 
es que tengas más tiempo para analizar y menos para procesar.
Todo esto es lo que se denomina proceso ETL (Extract, Transform, Load). Extracción, 
Transformación y Carga.
En esta parte se extrae toda la información requerida para nuestro proceso, se pueden extraer 
datos de diferentes orígenes, ya sean desde:
▪ Archivos txt o CSV
▪ Libros de Excel
▪ Bases de datos
▪ Páginas Web
▪ Redes sociales
▪ Servicios en la nube
▪ Correos electrónicos
    42/742
    Es la parte que le corresponde limpiar los datos, toda la higiene y transformación para que tus 
datos estén de la forma adecuada y rápida para ser analizados y visualizados se encuentra en 
este proceso, si trabajas con archivos de Excel o extrae datos de otro tipo de fuentes, te has 
dado cuenta de que por lo general no llegan como debería estar o siempre falta anexar o 
eliminar columnas, filas o en ciertos casos hacer cruces con otro tipo de información, realizando 
cálculos u ordenando fechas o demás tipos de datos para el buen manejo de la información. 
Pues bien, este ítem es uno de los más relevantes en el proceso ETL, acá interactuamos con 
toda la interfaz de Power Query, pestañas, comandos, funcionalidades y sobre todo lo más 
importante el Lenguaje M el motor de Power Query el cual explicaremos en el capítulo 8.
Luego de haber transformado los datos y tenerlos listos para nuestro objetivo final que es la 
presentación de informes y la meta del proceso ETL es tener los datos en formato tabulado lo 
cual explicaremos en capitulo posteriores procedemos a la carga de datos lo cual tiene varios 
tipos de carga en:
▪ Tabla
▪ Informe de tabla dinámica
▪ Gráfico dinámico
▪ Crear solo conexión
▪ Agregar estos datos al modelo de datos
    43/742
    Tabla:
Es la carga más común de todas la cual nos tira los datos en un formato tabla, en Excel es lo 
que se conoce como insertar tabla (no tabla dinámica) y los datos quedan anclados a una 
estructura de filas y columnas.
Informe de tabla dinámica:
Si se cargan los datos en esta opción de una vez se abre la herramienta de tablas dinámicas 
para ser manipulada y pivotear los datos según nuestro tipo de informe deseado.
Gráfico dinámico:
Ya los datos se muestran de forma gráfica, es decir, ya la visualización no es de números y textos 
sino de barras, columnas, círculos y líneas según el tipo de gráfico que se escoja, solo es 
cuestión de arrastrar los campos necesarios para el gráfico.
Crear solo conexión:
Esta es una de las grandes bondades con las que contamos en Power Query, el tipo de cargas 
anteriores necesariamente necesitas tener los datos o los campos para poder mostrar el 
informe final, con esta opción los datos quedan colgados en una especie de nube interna o 
como consulta para ser usados en cualquier momento sin necesidad de estar visible, y lo mejor 
te consume menos peso en tus archivos.
Agregar estos datos al modelo de datos:
Esta opción es única y exclusivamente si se está trabajando con Power Pivot o se va iniciar un 
modelo de datos pero reiterando que las tablas o los datos que se agregan a la herramienta 
Power Pivot.
Nota. Este tipo de opciones de carga de datos son únicos y exclusivos para Excel, 
ya que para Power BI no hay esta posibilidad de escoger como queremos cargar 
los datos
    44/742
    Power Query viene funcionando desde el año 2010, por ende, no funciona en versiones 
anteriores, aunque cabe recalcar que todo lo que se está enseñando está escrito en office 2016, 
para las versiones 2010 y 2013 sus funcionalidades son casi todas iguales.
Power Query es una herramienta extra de Excel, que bien dicho es la revolución para la limpieza 
de datos, según la versión que tú tengas de Excel viene incorporada o no, para las versiones 
2010 y 2013 se debe ir a Google y digitar: Descargar Power Query para Excel 2010 o 2013 
según sea el caso y queda como una pestaña más:
Para la versión 2016 ya viene en la pestaña Datos en el grupo Obtener y transformar 
Para Power BI también viene incorporado en Inicio en el grupo Datos externos
    45/742
    CAPÍTULO 2 
Después de este capítulo tú sabrás:
▪ Conceptos básicos
▪ Ingresar a Power Query desde Excel y Power BI
▪ Identificar cada uno de los elementos, funciones y objetos de la herramienta
Power Query como cualquier otra herramienta tiene su propia interfaz en la cual exploraremos 
en este capítulo, es muy intuitiva lo que nos permite identificar rápidamente la posición y 
ubicación de sus iconos, componentes y demás, también es importante entender los conceptos 
básicos que se manejaran durante todo el aprendizaje
¿Qué es una consulta?
Una consulta (Query) es un bloque de datos listos para ser transformados y llevados a formato 
tabular
Formato Tabular
Son los datos convertidos en filas y columnas de manera organizada, es decir, una tabla de 
datos fácil de identificar, sin campos con errores, ni filas y columnas en blanco, sin subtotales 
ni totales, son datos listos para ser transformados y visualizados, toda una materia prima lista 
para el horno
    46/742
    Para ingresar a Power Query solo es abrir un libro nuevo de Excel, ir a la pestaña Datos, al grupo 
Obtener y transformar datos y luego clic en obtener datos.
Al dar clic en obtener datos vemos un menú desplegable el cual nos da la posibilidad de 
conectarnos a múltiples fuentes de datos, para este capítulo vamos a entrar a una consulta en 
blanco ya que solo nos compete dar un paseo por la interfaz, en el siguiente capítulo 
profundizaremos en los diferentes orígenes de datos para cargar en la interfaz de Power Query.
En obtener datos nos deslizamos Desde otras fuentes y damos clic al final en Consulta en 
blanco, tal como se muestra en la siguiente figura:
    47/742
    Estando en el editor de Power Query procedemos a dar un paseo por cada uno de sus 
comandos, la cual tiene funcionalidades como Excel u otra plataforma, pero a diferencia de esta, 
es que no tiene celdas, es decir, no se hacen referencias a celdas sino a columnas y filas y tablas 
como tal, veamos:
1
3
2
4
5
    48/742
    Esta es la ventana de Power Query en Excel, a continuación, vamos a explicar su interfaz:
1. La cinta de opciones: Son las pestañas donde se encuentran todas las funcionalidades 
para la limpieza y transformación de datos, también podemos agregar columnas 
personalizadas, es donde el Lenguaje M juega un papel importante, adicional podemos 
ver el editor avanzado (vista) y la configuración de la consulta, orígenes y demás.
2. Listado de consultas: En esta parte encontramos las consultas que hemos realizado en 
el mismo libro de Excel
3. Barra de Fórmulas: Igual que Excel, Power Query tiene la barra fórmulas y en esta 
podemos ver la programación que arroja cada paso, es decir, lo que venimos llamando 
Lenguaje M
4. Configuración de Consulta: Las propiedades y los pasos aplicados se encuentran en 
esta parte, es muy relevante entenderla ya que en las propiedades podemos cambiar el 
nombre de la consulta y en los pasos aplicados es el paso a paso que se va generando 
cada vez que hacemos cambios, limpiezas o modificaciones a los datos, es una especie 
de grabadora muy similar a la grabadora de macros de Excel, va creando un código cada 
que encuentra cambios en la manipulación de los datos.
5. Área de resultados: Los resultados de cada consulta se van viendo reflejados en esta 
área, tanto la consulta inicial como la consulta transformada
Para ingresar a Power Query desde la interfaz de Power BI, debemos abrir Power Bi Desktop, 
como vimos en la figura 1.3, en Inicio en el grupo Datos externos damos clic en Obtener datos, 
Consulta en blanco.
Power BI Desktop es una de las herramientas de inteligencia de negocios, que se descarga 
totalmente gratis, en el capítulo 11 veremos el paso para descargar y sus bondades.
    49/742
    Lo mismo que Power Query en Excel tiene múltiples opciones para realizar consultas de diversas 
fuentes de datos, para este caso vamos a realizar una consulta en blanco para entrar 
directamente al editor de consulta de Power Query en Power BI
Como se puede observar la interfaz es muy idéntica a la interfaz en Excel, uno de los pequeños 
cambios está en la parte de Inicio Cerrar y Cargar para Excel y Cerrar y aplicar para Power BI, 
explicados en el capítulo 1 en los diferentes tipos de carga
    50/742
     
 
 
 
 
 
 
 
 
Nota. La diferencia entre Power Query en Excel y Power Query en Power BI solo 
está en la manera de cerrar y cargar los datos, todo lo demás tiene las mismas 
características y funcionalidades, por ende, todo el proceso ETL que vamos a 
explicar se realizará en Excel ya que la manera de cerrar y cargar los datos nos va a 
permitir ver diferentes escenarios, pero recuerde tienen la misma funcionalidad
    51/742
    52/742
    CAPÍTULO 3 
Después de este capítulo tú sabrás:
▪ Traer datos desde un archivo de texto o formato CSV
▪ Conectarse con los datos de un libro de Excel, tabla o rango
▪ Consolidar varias hojas de un mismo libro
▪ Crear una base de datos de varios libros, con anexo automáticos
▪ Extraer datos de la web
▪ Realizar consultas a bases de datos 
▪ Extraer datos del correo
A diario nos vemos en la tarea de extraer datos de diferentes fuentes de información, pero no 
es desconocido que dichos datos no están en el formato adecuado o de forma tal que puedan 
ser usados para la presentación o informe final, o si eres de los que periódicamente trabajas con 
muchos datos al mismo tiempo de múltiples tablas, libros o bases de datos y aún no tienes este 
proceso automatizado, porque siempre te toca hacer la misma consolidación, agrupación, 
cálculos o limpiezas, en este capítulo encontraras el oro que tanto has deseado.
Los archivos de texto o CSV son muy conocidos ya que por muchos datos que contengan dichos 
archivos su peso es mínimo, por ende, empresas o páginas web los usan para que su 
manipulación sea mucho mejor, pero estos tipos de archivos necesitan ser llevados a una hoja 
de cálculo como Excel o a herramientas de inteligencia de negocios como Power BI para ser 
procesados, analizados y graficados.
    53/742
    Extraer Datos de un archivo txt
Procedamos; abrimos un libro de Excel nuevo y vamos a la pestaña Datos, al grupo Obtener y 
transformar datos (recuerda que estamos trabajando en la versión 2016 de Excel), y damos clic 
Desde el texto/CSV tal como se muestra en la siguiente figura:
Al dar clic en la en la pestaña indicada nos abre una ventana de cuadro de dialogo la cual nos 
está indicando en que ruta está el archivo que se quiere cargar, busca la carpeta del Capítulo 3
y selecciona el archivo de texto nombrado Producción_1999.txt y clic en importar.
Cuando encontramos la carpeta del Capítulo 3 se muestran solo los archivos con extensión txt 
o CSV, seleccionamos el archivo Producción_1999.txt y damos clic en importar.
    54/742
    La figura 3.3 es el cuadro de dialogo preliminar a la carga de datos y la entrada hacia la interfaz 
de Power Query, siempre que deseemos extraer datos desde cualquier fuente externa este 
cuadro nos va salir, así que durante el libro siempre le vamos a dar Editar, ya que todo el proceso 
ETL se realiza dentro de la interfaz de Power Query, este cuadro preliminar es más un aviso solo 
si los datos ya están ordenados o de la manera que deseamos, si esto sucede aunque no es muy 
común solo le damos en Cargar, de lo contrario vamos a dar clic en Editar.
    55/742
    Como vimos anteriormente la interfaz de Power Query en la figura 2.3, en este caso ya tenemos 
cargados los datos de una forma tabulada, es decir, separado por filas y columnas y cada 
columna tiene su respectivo encabezado y el formato adecuado, si es número, texto o fecha. 
¿Pero cómo Power Query de manera automática me identifico los tipos de datos y me los 
organizo de la manera correcta?, pues bien esta es una de las grandes bondades que posee esta 
herramienta, la identificación de datos y el ordenamiento de ellos, sé que te estas preguntando 
pero no siempre es así, ya lo habíamos mencionado al inicio del libro, en capítulos posteriores 
estudiaremos casos puntuales que Power Query no puede identificar, pero no hay lío todo tiene 
solución con esta potente herramienta.
En la parte derecha de la figura 3.4 vemos que hay unos pasos aplicados por defecto, aún no 
hemos entrado a realizar ningún cambio y Power Query ya de entrada organizo los datos, 
entremos un poco en detalle.
    56/742
    Estos son los pasos aplicados que por defecto realizó Power Query para organizar los datos, si 
hacemos clic en cada uno de ellos va mostrando la evolución del proceso que realizó Power 
Query después de haber cargado los datos, veamos:
La figura 3.6 muestra el origen de cómo se encontraban los datos, los nombres de las columnas 
tienen un consecutivo de Columna 1, Columna 2……, aún no tienen sus encabezados correctos 
ni el tipo de dato (número, texto o fecha). Debemos dar clic en el siguiente paso “Encabezados 
promovidos”.
    57/742
    Ya en este paso los encabezados tienen el nombre correcto, pero bien todas las columnas están 
como formato texto (ABC), lo que se necesita darle el formato adecuado según el tipo de dato, 
Power Query de manera automática crea el tercer paso “Tipo cambiado” y le da el formato que 
el cree adecuado para cada columna.
¡En este tercer paso ya los encabezados y el tipo de dato están correctamente!
La pregunta del millón: Si Power Query no realiza este promovido de encabezado y por aún 
motivado no identifica los tipos de datos, ¿Cómo hacemos esto? En la figura 3.8 en cada paso 
aplicado excepto el de origen cada que nos ubicamos en ellos tienen una x al inicio, lo que indica 
que dichos pasos los podemos eliminar en caso tal que Power Query no realizó bien la limpieza.
Eliminemos los dos últimos pasos (Encabezados promovidos y Tipo cambiado) y la consulta 
queda como se muestra en la figura 3.6. Ahora vamos a realizar cada uno de estos pasos para 
que veas como funciona:
▪ Cinta de opciones Transformar
▪ En el grupo Tabla
▪ Clic en Usar la primera fila como encabezado
    58/742
    Con ese par de clic realizamos los pasos que por defecto al inicio Power Query ya había 
ejecutado, pero no termina todo, los pasos aplicados ya habíamos hecho énfasis en el Capítulo 
2 que funciona como un tipo de grabadora, va guardando cada una de las acciones realizadas 
por el usuario, es decir, si queremos cambiar un tipo de dato, por otro formato, o eliminar o 
añadir columnas, todos estos pasos se van aplicando.
▪ Seleccionemos la columna Bodega
▪ Clic derecho encima del encabezado Quitar
    59/742
    Al adicionar este paso la columna Bodega ya no está y en el panel de Pasos aplicados no se 
agrega un nuevo ítem llamado Columnas quitadas.
Ya la columna Bodega no se encuentra y hay un paso nuevo, Power Query agrega los pasos con 
nombres que tiene en su diccionario de pasos o según lo que se ejecute, estos pasos los 
podemos personalizar, ya que en este archivo no tenemos inconveniente ya que hemos 
acabado la tarea de limpiar y transformar los datos para luego llevarlos al Excel o a Power BI, 
pero en ocasiones vas a tener que realizar un proceso ETL mayor y el panel de pasos aplicados 
cada vez se te va ir llenando, es bueno que te acostumbres a cambiar el nombre de los pasos 
aplicado, o al menos a los pasos que hiciste en el proceso más relevante.
    60/742
    ▪ Selecciona el paso Columnas quitadas
▪ Clic derecho encima de la selección
▪ Cambiar nombre
▪ Editamos el nombre Bodega eliminada
Ya tenemos nuestros datos listos para ser cargados a Excel o Power BI, vamos a Inicio Cerrar y 
Cargar:
    61/742
    Si escogemos la primera opción, inmediatamente nos arroja los datos a formato tabla de Excel, 
la segunda nos permite escoger si queremos cargar los datos en diferentes escenarios, tal como 
se explicó en la introducción de esta primera parte del libro:
El escenario más común es el modo de carga Tabla ya que nos arroja los datos para revisar, 
filtrar y auditar de manera más rápida.
    62/742
    Ya tienes todo un conjunto de datos listo para ser usados en cualquier informe. En la parte 
derecha de Excel puedes ver la consulta que se creó con el número de filas y el nombre de la 
consulta, el cual adopta el nombre del archivo inicial txt, en caso de que desees cambiar el 
nombre solo es dar clic derecha encima de la consulta y cambiar nombre.
Espero que hasta este momento todo valla de maravilla, como ves no es para nada difícil 
empezar a interactuar con Power Query, o si ya eres un usuario de Excel avanzado sé que estás 
pensando, pues esto mismo lo realizaba, pero con otro método y de manera más rápida, si 
tienes razón, ¡pero aún no te he contado el boom! de todo esto. Este proceso que acabamos 
de realizar es lo que llamamos ETL, pues extraemos los datos, los transformamos y luego los 
cargamos, pero lo mejor de todo es que cuando te llegue el nuevo archivo txt de Producción 
1999 solo es guardar como, reemplazar el anterior archivo por el nuevo y vas al Excel y clic 
derecho en la tabla Actualizar y cada paso que aplicamos en Power Query va a ejecutarse uno 
a uno hasta llegar a esta tabla de datos en solo un par de segundos.
    63/742
    Este es uno de los métodos para actualizar las consultas, la otra opción es ir a la consulta como 
se muestra en la figura 3.16 seleccionarla y dar clic derecho actualizar, o directamente en la 
cinta de opciones de Excel, Datos, y Actualizar todo.
Extraer Datos de un archivo CSV
CSV (Comma, Separated, Value), valores separados por comas, son archivos que usan para 
disminuir el peso, ya que no guarda fórmulas, es un archivo plano.
Vamos a repetir los mismos pasos que realizamos para extraer datos de un txt: abrimos un libro 
de Excel nuevo y vamos a la pestaña Datos, al grupo Obtener y transformar datos y damos clic 
Desde el texto/CSV.
Buscamos en la carpeta el Capítulo 3, seleccionamos el archivo llamado “Producción_2015” y 
clic en importar, el cuadro de dialogo que se abre como habíamos reiterado le vamos a dar 
Editar, ahora si estamos en la interfaz de Power Query:
¡Advertencia! Como es un proceso automatizado, por múltiples razones que serán 
explicadas en capítulos posteriores no se puede cambiar el nombre del archivo 
“Producción_1999” ni cambiarle la ruta, es decir, moverlo de carpeta o cambiar el 
nombre de la carpeta, ya que cuando se realizó la consulta inicialmente Power 
Query toma esto como un enlace y cada que se actualice la consulta, va y busca 
en dicha dirección, carpeta y nombre de archivo para aplicar los pasos ya 
explicados.
    64/742
    A diferencia de la consulta anterior, ya los datos no están en el formato tabular, es el objetivo 
de Power Query, tener datos limpios listos para ser analizados. Ya las columnas no tienen el 
nombre adecuado, adicional vemos que los datos deben ser transpuestos, es decir, cambiar filas 
a columnas y viceversa y por ende Power Query no identifica el tipo de dato y todas las 
columnas las deja en formato texto, esta transformación la veremos en capítulo 5, donde 
veremos una reordenación avanzada de datos.
Por el momento vamos a cerrar y cargar los datos, y vemos que de la misma manera que se 
cargan los datos como archivo txt se extrae los datos de un archivo CSV.
Si necesitamos realizar una consulta en Power Query y los datos los tenemos en una tabla o 
simplemente un rango de datos en el mismo libro de Excel, simplemente es abrir el archivo con 
dicha información, ubicarnos en cualquier celda dentro de los datos y seguimos los siguientes 
pasos:
▪ Abrir el archivo “Ventas Por País 1” descargado en la carpeta Capítulo 3
▪ Pestaña Datos en el grupo Obtener y transformar datos
▪ Clic desde una tabla o rango
    65/742
    Sin importar si los datos están en formato tabla, al crear la consulta automáticamente los datos 
los convierte a dicho formato, nos muestra un cuadro de diálogo preguntando si el rango de 
datos esta correcto y si la tabla posee encabezados, es el mismo proceso que pregunta si nos 
vamos por la pestaña Insertar tabla.
    66/742
    Damos clic en Aceptar y de inmediato nos abre el editor de consultas de Power Query, listo para 
realizar el proceso ETL a los datos. 
Los datos se ven que no presentan algún problema, ya que Power Query pudo identificar de 
manera correcta los datos con sus respectivos encabezados. Antes de cerrar y cargar en la 
configuración de consultas cambiemos el nombre de Tabla 1, por Ventas Colombia.
Ahora si damos clic en Cerrar y cargar
¡Advertencia! Cuando se esté trabajando en el editor o interfaz de Power Query 
NO se puede abrir o desplazarse a ningún otro libro de Excel, incluso ni el mismo 
libro en que se está realizando la consulta, se puede mostrar hasta que no hallamos 
cerrado Power Query
    67/742
    Aspectos por resaltar
Power Query creo otra hoja llamada “Hoja 1”, es decir, que los datos quedaron duplicados, la 
base original que estaba en la Hoja “Colombia” y los datos que arroja Power Query como 
resultado de la nueva consulta. ¿Tiene esto sentido?, te digo la verdad, en el momento no, ya 
que no hicimos ninguna transformación a los datos, pero más adelante, este tipo de consultas 
desde una tabla o rango nos va a servir a la hora de anexar, combinar y trabajar con otras 
consultas en conjunto.
Verificamos que el nombre de la consulta si se cambió por “Ventas Colombia” y si notamos en 
la fila número 20 tenemos celdas en blanco, ¿Qué sucede con esto? Al realizar una tabla 
dinámica o realizar operaciones entre fecha nos puede traer error ya que una celda en blanco 
no la reconoce como fecha o cantidad, recuerda es diferente una celda en blanco a tener valor 
cero.
Vamos a quitar estas celdas o filas en blanco para no tener errores o dolores de cabeza a futuro, 
volvamos al editor de Power Query y eliminemos estas filas en blanco.
▪ Seleccionamos la consulta que se encuentra en la parte derecha de Excel
▪ Clic derecho editar
    68/742
    Otra forma de editar las consultas o volver al editor de Power Query es si estoy ubicado dentro 
de la tabla nos vamos a la pestaña Consulta y Editar.
Estando en el editor de consultas, nos dirigimos a la columna Fecha y tal cual como funciona 
en Excel hacemos el despliegue del filtro y deseleccionamos el valor que dice null
Nota Los campos o filas en blanco, Power Query los identifica y los renombra como 
null, nunca vas a encontrar campos en blanco
    69/742
    Al dar clic en aceptar en el cuadro de pasos aplicados se agrega Filas filtradas, lo estudiado en 
pasos anteriores, siempre que haya una celda o dato en blanco no lo va a tomar dicha columna 
por el filtrado ya indicado. Vamos a Inicio Cerrar y cargar y observamos que dichas filas en 
blanco no se encuentran en nuestra tabla de datos.
Este caso sé qué te parece más familiar, en ocasiones te has encontrado que en un mismo libro 
de Excel contiene varias hojas con información cada una de ellas, Periódicamente te toca 
unificar dichas hojas para realizar un informe consolidado por país, año, mes y cuanto detalle 
contenga la información.
Este proceso puede tomarte algún tiempo y cuanto truco y habilidad tienes realizas el informe,
pero este no es peor escenario, imagínate ya haber terminado tu informe, y debes anexar una 
hoja nueva o varias hojas de más, ¡en esta escena es donde entra la revolución de los datos con
    70/742
    Power Query y boom! Nunca pensaste hacer consolidación de hojas de la manera tan sencilla y 
automática, aún si programas macros en Excel o sabes mucho de fórmulas esto va a cambiar tu 
rutina de ahora en adelante.
De nuevo vallamos a la carpeta Capitulo 3 y tomemos el libro llamado “Ventas Por País 2”, este 
libro tiene 4 hojas de los países Colombia, Argentina, Perú y Chile, cada uno de ellos tiene la 
información en formato tabla, lo que ya habíamos hablado anteriormente, pero Chile no tiene 
formato tabla, pero tiene algo en particular, el rango de datos esta definido por un nombre 
personalizado, veamos.
En la pestaña Fórmulas, Administrador de nombres, el cuadro de diálogo enseña que todos los 
países están en formato tabla excepto Chile, lo más recomendado es que todas las hojas se
    71/742
    encuentren en formato tabla para no tener problemas con nuestra consolidación. Entremos en 
materia:
▪ Nos ubicamos en cualquier hoja de Excel
▪ Vamos a la pestaña Datos -> Obtener y transformar datos -> Obtener datos y hacemos 
el despliegue
▪ Seleccionamos desde otras fuentes consulta en blanco, tal como se describió el proceso 
en la figura 2.4 del Capítulo 2
▪ Ya estamos en el editor de Power Query
En la barra de fórmulas vamos a aplicar la siguiente función: =Excel.CurrentWorkbook()
Damos enter, y al ejecutar la función nos trae todo las tablas y rangos que encuentre dentro 
del libro de Excel
¡Advertencia! Power Query es muy sensible al definir las funciones, es decir, a 
diferencia de Excel que permite minúsculas y mayúsculas, en Power Query hasta el 
momento no funciona así, se debe escribir tal cual se indicó, la palabra Excel debe 
la primera letra en mayúscula y la palabra Current y Work de la misma forma, todo 
lo demás en minúscula
    72/742
    La figura 3.29 claramente muestra las tablas y rangos que hay dentro del archivo de Excel, las 
dos columnas que vemos son Content y Name, la primera en vez de tener un filtro tiene dos 
fechas en sentido contrario lo que significa que se puede realizar una expansión y sus filas tiene 
la palabra Table, no es un dato normal, sino que hace referencia a una cantidad de datos, que 
va ser el resultado si expandimos dicho campo, el campo Name tiene el nombre de las tabla o 
rangos como está en la figura 3.27.
También vemos que hay un error en la fila 4, tiene que ver con el rango Chile, mencionado 
anteriormente, este tipo de definiciones de rango nos puede traer problemas. Vamos a 
comprobarlo:
▪ Damos clic en el campo Content en expansión de flechas
    73/742
    El cuadro de diálogo muestra las columnas o campos que contiene cada tabla, se debe 
deshabilitar el cuadro Usar el nombre de columna original como prefijo, para que los 
encabezados de las columnas queden con el nombre original y no con un prefijo, ejemplo: 
Content VENDEDOR, Content FECHA….
Damos aceptar y vemos en la siguiente figura la apertura de los datos.
    74/742
    Vemos que no se registró ningún error, pero si vamos a la pestaña Inicio->Cerrar y cargar
Y sucede lo inesperado
Un error que no deja cargar los datos informa que no se encontró una tabla de Excel 
denominada ‘Chile’, y tiene razón, ya que Chile no está en formato tabla.
Damos clic en Aceptar y luego vamos a editar la consulta, seleccionamos la consulta -> clic 
derecho editar
Estando en el editor de Power Query vamos al panel de Pasos aplicados y eliminamos el último 
paso llamado “Se expandió Content” y volvemos al origen de los datos.
    75/742
    ▪ Vamos al campo Name
▪ Clic en la pestaña de filtro
▪ ¡Deshabilitamos Chile y Chile! FilterDatabase
    76/742
    Con este simple par de clic ya hemos organizado el error. Ahora volvemos al campo Content y 
expandimos la información, no olvidar deshabilitar el cuadro Usar el nombre de columna 
original como prefijo.
La tarea ya es organizar los tipos de datos en los encabezados:
▪ Clic en la esquina derecha del campo VENDEDOR (ABC/123) y cambiamos a texto
▪ Campo FECHA, le damos un formato Fecha
▪ Campo CANTIDAD Número entero
▪ Campo Name se deja como campo texto
Es importante tener los campos o encabezados en el formato adecuado, ya que a medida que 
vamos avanzado en este proceso vamos a entender su relevancia cuando estemos inteligencia 
de fechas, cruces de información o cálculos en el Lenguaje M.
Ahora si tenemos nuestra consulta lista para ser arrojada en Excel, vamos a Inicio-> Cerrar y 
cargar. La figura siguiente muestra el número de filas que se han cargado, y si realizamos un 
filtro en la columna Name para verificar que se hallan cargado las 3 tablas, vemos los siguiente:
    77/742
    Al realizar el filtro en el campo Name, nos encontramos con esta sorpresa: 
No solo hay las 3 tablas que debería cargar, adicional tenemos una llamada 
Hoja1!DatosExternos_1, pues bien Excel a cargado 2.066 filas según la consulta, y si sumamos 
las filas de Colombia, Argentina y Perú, exactamente nos da este número de registro. 
¿Pero qué es entonces esta nueva hoja?
Por algún motivado Power Query duplica los datos de las 3 tablas, probemos y actualicemos la 
consulta.
Clic derecho encima de la tabla-> Actualizar
    78/742
    El nombre de Hoja1!DatosExternos_1 ha cambiado por Consulta1, y el número de filas se ha 
duplicado, es decir, los datos se han multiplicado, pero aun así Power Query tiene una solución 
para esto, no hay problema, como dice un conocido narrador de Football: “Tú tranquilo”. 
Ingresemos al editor de consulta de Power Query y solo con un par de clic daremos la solución.
    79/742
    Cuando realizamos un filtro por lo general en la visualización de los datos, no están todos, solo 
le damos clic en parte inferior derecha Cargar más y deseleccionamos Consulta1.
    80/742
    Inicio-> Cerrar y cargar. 
Quedo solucionado el problema, los datos vuelven a su normalidad con las tablas necesarias.
Tenemos una consulta limpia y lista para trabajar, aún falta un pequeño detalle, las 3 tablas 
corresponden a las 3 primeras hojas del libro, pero si queremos realizar un informe que se 
muestren los datos a que país corresponden, debemos cambiar el nombre de las tablas en cada 
una de las hojas:
▪ Vamos a cada tabla de la hoja
▪ Cinta de opciones diseño
▪ Grupo propiedades y cambiamos el nombre de la tabla
    81/742
    Realizamos estos mismos pasos para para la tabla de Argentina y Perú.
Nos ubicamos en la consulta que está en la Hoja 1->clic derecho-> Actualizar.
    82/742
    Hasta el momento solo hemos realizado algunos pasos y clic para llegar a nuestro objetivo, 
unificar los datos de los 3 países y si en cada hoja se ingresa más filas o columnas, al actualizar 
la consulta los datos de manera automática se ingresan a la hoja consolidada. Pero te debes 
estar preguntando ¿Qué pasa con Chile?, pues bien, como lo estudiamos al inicio de esta 
sección, debemos convertir los datos de la hoja Chile en formato tabla.
▪ Nos ubicamos en una celda de los datos de Chile
▪ Pestaña Insertar->Tabla ->Aceptar
▪ Como el nombre Chile ya existe en un rango definido, debemos nombrarlo con un 
carácter diferente al que ya existe en la consulta, puede ser un punto al final o un guion 
bajo
▪ Cambiamos el nombre de la tabla en la Pestaña Diseño->Grupo Propiedades->Chile.
Actualizamos de nuevo la consulta, y esto es lo ¡sorprendente de Power Query! De nuevo 
encontramos oro en este gran truco, todas las hojas que se agreguen en formato tabla 
automáticamente se anexan los datos al consolidado final, datos listos para tu reporte final y lo 
mejor todo a un solo clic.
    83/742
    El proceso anterior aprendimos como integrar dentro de un libro de Excel varias hojas con 
formato tabla y lo mejor, su automatización para cada vez que las tablas crezcan o hallan más 
hojas se integran de manera dinámica. En esta parte nos conectaremos de un libro de Excel a 
otro. Antes de empezar, vamos a abrir el libro del Capítulo 3 “Ventas_Pedidos”, para ver el 
estado de los datos.
    84/742
    Notablemente los datos no están organizados, hay mucho que depurar (errores, filas en blanco, 
celdas concatenadas, texto, etc.), imagínate cuanto tiempo toma ordenar y dejar la tabla lista 
para ser usada, Power Query es la solución ideal para este problema. Manos a la obra:
Cerramos el libro, y vamos a abrir un nuevo libro de Excel y desde ahí nos vamos a conectar a 
“Ventas_Pedidos”.
▪ Ir a la pestaña Datos->Obtener datos
▪ Desde un archivo ->Desde un libro
Seleccionamos nuestro archivo “Ventas_Pedidos” y damos clic en importar, hay un nuevo 
cuadro de diálogo.
    85/742
    Esta nueva ventana preliminar a la entrada de Power Query, enseña las hojas o tablas que el 
libro de Excel contiene, en este caso la tabla Pedidos 1 es la misma información que la hoja 
Pedidos, podemos elegir cualquiera de ellas, como venimos trabajando con tablas, 
seleccionemos Pedidos 1 y clic en editar.
Ahora si estamos en el editor de consulta y tenemos trabajo que realizar
    86/742
    Si realizamos una lista de los pasos que debemos realizar, es decir, es hora de aplicar el proceso 
ETL a dicha información, vemos que:
▪ Los encabezados están en la fila 4
▪ Quitar filas en blanco y con errores
▪ Adecuar tipo de dato a cada columna
▪ Dividir columnas, es decir, separar números de texto o columnas que estén combinadas
▪ Y cuanta filas y columnas que no sirvan para dejar depurada la información
Inicialmente solo hay 3 pasos aplicados, son los que hicimos mención al inicio de este Capítulo, 
cuando terminemos la limpieza este panel va estar full.
Vamos a eliminar las filas con errores
▪ Pestaña Inicio->Quitar filas->Quitar errores
En esta misma pestaña vamos a eliminar las 3 primeras filas y dejar los encabezados correctos:
▪ Pestaña Inicio->Quitar filas->Quitar filas superiores->3->Aceptar
▪ Pestaña Transformar->Usar la primera fila como encabezado
xx
    87/742
    En la pestaña Inicio->Quitar filas->Filas en blanco. Ya poco a poco se va limpiando el archivo.
En la primera columna Número de Pedido -Tip de Compra, aún quedan filas por eliminar, por 
ejemplo, totales y filas que no siguen un comportamiento normal de esta columna.
Desplegamos el filtro->Parte inferior derecha->Cargar más->Deshabilitamos los datos como 
totales, “xxxx” o “****” que no hacen parte del tipo de compra->Aceptar
Cada vez se ve mejor, creemos que las filas ya se han limpiado si encontramos algo raro en el 
camino lo ajustamos, ahora vamos a dar un paseo por cada columna y hacer el proceso de 
higiene debido y tener listo los datos para procesar.
Nota. Para Power Query es indiferente el comienzo de la limpieza, si empiezas por 
ordenar filas o columnas, o los tipos de datos no hay inconvenientes ya que por eso 
la herramienta aplica a paso como grabadora para ejecutar de la misma forma que 
vas realizando tú proceso.
    88/742
    Dividamos el Número de Pedido del Tipo de Compra:
▪ Seleccionamos la columna->Clic derecho->Dividir Columna: Nos da dos opciones, por 
delimitador o número de caracteres, antes de seleccionar uno de ellos, debemos 
entender cómo funcionan.
Con la columna seleccionada, y listos para dividir, reiteramos que se debe dar clic derecho 
encima del encabezado, de lo contrario no se muestra la opción de dividir columna.
Número de Caracteres: Si los datos a dividir tienen un mismo tamaño, es decir, en 
este caso vemos que la columna tiene números y texto, y los números tienen todos 
un mismo largo, hablando de caracteres, se compone de 8 números.
Delimitador: Si los datos a dividir tienen un carácter en común que los divide, ya 
sea una coma, guion o un punto y coma. La columna SKU tiene un carácter en 
común y es el guion, en este caso lo puedo aplicar
    89/742
    Con clic derecho en cada encabezado hay una serie de opciones de acceso rápido para la 
limpieza de datos. Escogemos Por número de caracteres y completamos el cuadro de dialogo 
siguiente:
Si contamos los números, cada código se compone de 8 caracteres, y debemos seleccionar. 
*Una vez, lo más a la izquierda posible, ya que los números se encuentran en la parte izquierda, 
si en vez de los números, el texto sería el objetivo, la segunda opción es la adecuada o en caso 
tal que se desee separar en varias columnas, cada 8 caracteres, la última opción nos hace esto.
Al dar Aceptar, se divide la columna tal como la necesitamos.
▪ Clic derecho en la primera columna ->Cambiar nombre a “Número de Pedido”->Enter
▪ Clic derecho en la segunda columna->Cambiar nombre a “Tipo de Compra”->Enter
La columna SKU la debemos dividir, en este caso aplicamos la separación por delimitador
▪ Clic derecho en SKU ->Dividir columna->Por delimitador.
En lo posible, Power Query identifica el tipo de carácter que está delimitando la división de la 
columna, en este caso, lo identifico como guion. Pero puedes escoger las diferentes opciones 
x
    90/742
    que brinda y como el paso anterior nos da las 3 opciones: Izquierda, derecha o cada que este el 
delimitador.
Aceptar y ya tenemos de nuevo dos columnas.
▪ Clic derecho en la columna SKU.1 -> Cambiar nombre -> “SKU”
▪ Eliminamos la Columna siguiente -> Clic derecho -> Quitar 
Demos un pequeño vistazo a nuestros datos, cada vez va cogiendo forma.
x
X
    91/742
    Si has hecho todo el paso a paso tal como te hemos indicado debes tener las primeras columnas 
como muestra la figura 3.55. La columna Precio de venta está en formato texto, Power Query 
no reconoció los datos como números ya que están separados por puntos, es decir, mi sistema 
está configurado para que los puntos sean separadores de miles y las comas de decimales, en 
este caso, debemos reemplazar los puntos por comas y convertir el encabezado en formato 
número decimal.
▪ Clic derecho en columna Precio de Venta -> Reemplazar los valores 
▪ Valor que buscar “.” -> Reemplazar con “,”, tal como se muestra en la siguiente figura
▪ Al final cambiamos el formato de encabezado por Número decimal
Aceptamos los reemplazos y al cambiar el formato de la columna a número decimal, 
inmediatamente los números cambian de posición y se alinean en la parte derecha, tal como en 
Excel, informando que ya son números
x
    92/742
    Ya vamos culminando nuestro proceso, espero hasta el momento te hallas sentido cómodo con 
la herramienta, si bien has notado hasta este punto, los comando y funcionalidades de Power 
Query son relativamente fácil de usar y aplicar solo es dar un par de clic y tus datos toman vida.
Seguimos en nuestro tour por las demás columnas, vemos que, desde Unidades hasta Fecha de 
Llegada, los datos están relativamente bien, solo es dar clic en cada encabezado y cambiar al 
tipo de datos que a cada uno le corresponde:
▪ Unidades a número entero
▪ Costo del Producto, Costo de Envío y Costo Empaque a número decimal
▪ Fecha de Envío y Fecha de Llegada a formato fecha
Y como muestra la figura siguiente, los datos están en el formato adecuado:
La columna País, tiene mezclado letras mayúsculas con minúsculas, con un par de cli 
solucionamos este pequeño inconveniente
▪ Clic derecho en Campo País -> Transformar -> y nos abre un panel de opciones el cuál 
para este caso nos es útil -> Poner en Mayúscula Cada Palabra.
Si has usado la función NOMPROPIO en Excel, esta tiene la misma funcionalidad, pero solo a un 
clic, lo mismo si se quiere convertir a minúscula o solo mayúscula.
Por último, seleccionamos las últimas 3 columnas con CTRL sostenido y clic derecho -> Quitar
    93/742
    ¡Misión cumplida! Fue todo un éxito tu limpieza, y como te informamos al principio de esta 
sección, si te desplazas al panel de PASOS APLICADOS, está cada vez más lleno
x
u
    94/742
    Inicio -> Cerrar y cargar, los datos son arrojados a Excel. Revisemos
Vemos que todos los datos están relativamente bien, pero la consulta nos dice que hay 4 
errores, como muestra la figura 3.60. 
Tratar errores en Power Query
Damos clic en 4 errores. Se abre el editor de consultas y nos muestra el tipo en que filas 
exactamente se encuentran los errores.
x
Nota. Los pasos aplicados en la consulta se ordenan a medida que se va realizando 
la limpieza, puedes ir dando clic de principio a fin a cada uno de los pasos y los datos 
va mostrando los cambios que ya se ha realizado, debes tener muy en cuenta si vas 
a crear un paso nuevo estar ubicado en el último paso, a no ser que quieras crear un 
paso intermedio.
    95/742
    Power Query nos indica en que número de fila se encuentran los errores. Inicio -> Cerrar y Cargar
El primer error está en la fila 24.892, Power Query no cuenta el encabezado, en Excel el 
encabezado corresponde al número 1, por ende, si el error en Power Query está en la fila 24.892, 
en Excel debemos revisar la fila 24.893 y así sucesivamente.
Efectivamente hay unas filas en blanco y datos que no tienen nada que ver con la información.
Volvamos al editor de consultas de Power Query, hay varias formas de enmendar este error, 
podemos filtrar por Tipo de Compra y deshabilitar los datos que nos muestra el Excel o le damos 
quitar las últimas 5 filas.
Yo opte por realizar un filtro en la columna Tipo de Compra, y dejar habilitado, solo Normal y 
Devolución. Veamos.
x
x
    96/742
    Inicio -> Cerrar y cargar, ya los errores han desaparecido, tenemos materia prima lista para ser 
procesada.
Error en cambio de nombre o ruta del archivo
Si descargas el archivo con la solución y actualizas la consulta te va a salir este error:
Debemos entrar al editor de consulta de Power Query.
Clic en Configuración de origen de datos –> Cambiar origen
x
x
    97/742
    Cuando damos clic en Cambiar origen, nos abre un nuevo panel para editar la ruta o 
simplemente damos clic en examinar y buscamos el archivo en la ruta indicada, y todo vuelve a 
su normalidad. Ya puedes usar el archivo con su consulta.
Lo mismo sucede si le cambias el nombre al archivo al cual te conectaste, aún si le falta un 
caracter, coma o espacio, debes realizar el mismo proceso de configuración de Origen de datos
x
    98/742
    Uno de los grandes retos como usuario de Excel o de herramientas de análisis de datos, es que 
no siempre los datos se encuentran todos en un mismo lugar, puede que estén en la misma 
carpeta, pero en diferentes archivos, en este escenario es donde cada vez más Power Query va 
cogiendo poder y solución a tus problemas.
Si tienes 2, 3, 10 o más archivos de Excel y necesitas consolidar dicha información en una sola 
base de datos y que adicional cada que se elimine o agregue un archivo nuevo automáticamente 
los cambios se reflejen en la base consolidada.
Consolidar varios archivos con una sola hoja
Deseamos realizar un análisis de 16 archivos, los cuales cada uno de ellos contiene una hoja 
con su inventario.
Abrimos un libro de Excel nuevo -> Pestaña Datos ->Obtener y transformar datos -> Obtener 
datos -> Desde un archivo -> Desde una carpeta -> Capítulo 3 ->Inventarios
Tal como se explico en la figura 3.47 y en el cuadro de dialogo buscamos la carpeta donde se 
encuentran los archivos o simplemente copiamos y pegamos el enlace de la ruta de los archivos.
¡Advertencia! Para consolidar archivos desde una carpeta solo es permitido las 
siguientes extensiones, hasta la versión 2016:
▪ Archivos CSV
▪ Archivos xlsx, xlsm
Si se quiere consolidar archivos de versiones igual o menor a 2003 NO es posible, 
nos trae error
    99/742
    En el siguiente cuadro diálogo damos clic en Editar y tenemos el siguiente pantallazo:
La primera columna es la del contenido de los datos de todos los archivos, la siguientes 
columnas son datos sobre los archivos: fechas de edición, fechas de creación, rutas y 
extensiones, por eso vemos que la columna Content no tiene filtro sino un par de flechas lo
    100/742
    que representa una expansión de los datos, pero antes de dar clic allí, asegúrate de filtrar en la 
columna Extensión, solo los archivos que sean .xlsx, por seguridad, ya que si por error ingresan 
otro tipo de archivo no lo cargue a la consulta y lo omita.
Luego editamos que sea igual a .xlsx y con esto evitamos posibles errores.
Procedemos a expandir la columna Content, nos abre el cuadro de diálogo de combinar archivos 
y por defecto nos muestra el primer archivo de la carpeta. Seleccionamos ya sea la tabla o la 
Hoja 1 para continuar con el proceso
    101/742
    Aceptamos y listo, ahora tenemos todos los 16 archivos consolidado en una sola base de datos.
Hagamos algunos ajustes:
▪ En la columna Source.Name -> clic derecho -> Reemplazar los valores ->.xlsx -> 
Reemplazar con: dejamos el cuadro vacío. Esta columna es útil en caso de que el nombre 
del archivo necesitamos que valla en una columna de la base de datos
▪ Clic derecho en la misma columna -> Cambiar nombre ->” Nombre”
▪ En la columna Fecha cambiamos el formato del encabezado a Fecha
Listo nuestros datos para ser exportados a Excel o recuerda también, que pueden ser procesado 
para Power BI (Es el mismo procedimiento).
    102/742
    Inicio -> Cerrar y cargar y verifica que efectivamente todos nuestros archivos fueron cargados 
a Excel, también puedes hacer pruebas ingresando otro archivo de inventario 2016 o eliminar 
unos de ellos, actualizas y puedes observar los cambios, ¡oro verdad! Todo a unos cuantos clics.
x
    103/742
    Consolidar varios archivos con varias hojas
El caso anterior fue todo un éxito, solo que cada libro solo contenía una hoja, ¿Qué sucede si 
algunos o todos de los libros contienen varias hojas? De nuevo Power Query entra en acción.
Abrimos un libro de Excel nuevo -> Pestaña Datos ->Obtener y transformar datos -> Obtener 
datos -> Desde un archivo -> Desde una carpeta
Según lo explicado en la figura 3.67, ingresamos la ruta o buscamos la carpeta donde se 
encuentran los archivos, en este caso, la carpeta está en el Capítulo 3 -> Ventas
Damos clic en Editar y ya estamos en la interfaz de Power Query
De nuevo Power Query carga el detalle de los archivos, realizamos de nuevo el filtro en la 
columna Extensión, según lo visto en la figura 3.69, para que solo cargue archivo .xlsx.
A diferencia del anterior proceso, en este debemos aplicar unos pasos demás para obtener no 
solo la información de los archivos, sino los datos que se encuentran en todas las hojas.
▪ Señalamos la columna Content y Name -> Clic derecho -> Quitar otras columnas
x
    104/742
    El siguiente paso, es crear una columna personalizada, para extraer todo lo que haya dentro de 
cada libro de Excel, este es el truco:
▪ Pestaña Agregar columna -> Columna personalizada
▪ En el cuadro de diálogo escribimos la siguiente función:
▪ Excel.Workbook([Content])
▪ Clic en aceptar, la función deber ser exacta tal como lo vimos al inicio de este capítulo
Este tipo de funciones, entraremos en detalle cuando estemos explicando Lenguaje M, en el 
capítulo 8
Ya contamos con una columna adicional, la columna personalizada, es la que usaremos para 
extraer todo el contenido de cada libro de Excel, así seleccionamos la columna Content -> Clic 
derecho -> Quitar
x
    105/742
    Procedemos a expandir la columna Personalizada y deshabilitamos Usar nombre de columna 
original como prefijo
Power Query nos carga 5 columnas:
Name: Son los nombres de los libros que están en la carpeta
Name.1 : Son los nombres de las hojas que existen en cada libro
Data: Son los datos que están dentro de las hojas, es decir, los que necesitamos extraer
Item: Repite el nombre de cada hoja
Kind: Informa en que formato o tipo están los datos, si en las hojas o en tablas
¡Advertencia! Se recomienda realizar un filtro en este campo y decirle que solo 
queremos trabajar con Sheet=Hojas, ya que no podemos dejar todas las opciones, 
corremos el riesgo de duplicar la información, los datos obligatoriamente están 
arrojados en hojas, pero no necesariamente en tablas, por ende, seleccionamos 
Sheet.
    106/742
    Hidden: Es un resultado binario, de falso o verdadero, con respecto si hay datos ocultos
Ya hemos entendido cada uno de los campos, ahora realizamos el filtro en el campo Kind -> 
Seleccionamos Sheet -> Aceptar
▪ Seleccionamos las columnas Name, Name.1 y Data ->Clic derecho -> Quitar otras 
columnas
▪ Expandimos la columna Data ->Deshabilitamos Usar el nombre de columna original 
como prefijo -> Aceptar
Y ¡boom!, tenemos todos nuestros datos de libros y hojas consolidados
Echemos un vistazo:
Solo nos queda dar un poco de retoque a cada columna:
▪ Cambiemos el nombre de los encabezados por la primera fila -> Pestaña Transformar -> 
Usar la primera fila como encabezado 
▪ Las columnas VENTA y COSTO ->Clic encabezado -> Formato Número entero
    107/742
    Solo queda un pequeño detalle, como se consolido todas las hojas, los encabezados de cada 
hoja los repite como fila, filtremos la columna ciudad, y carguemos todos los datos
El campo CIUDAD está siendo parte de una fila, lo des chuleamos, cambiamos el nombre del 
campo Enero por Mes.
La Columna 2016.xlsx -> Cambiar nombre “Año” ->Seleccionamos la columna -> Clic derecho -
> Reemplazar los valores ->.xlsx y el campo siguiente lo dejamos en blanco
Y efectivamente se han cargado todos los datos tanto de los dos libros como de todas las hojas.
x
    108/742
    Puedes probar ingresando más libros o eliminando hojas de los archivos, actualizas y notas los 
cambios
Traer datos de la Web nunca había sido tan fácil con Power Query, y lo mejor si los datos en la 
Web cambian, dinámicamente los datos se actualizan.
Abrir un nuevo libro de Excel -> Datos -> Obtener y transformar datos -> Desde la Web
Ingresamos la dirección URL o la copiamos y pegamos -> Aceptar -> Editar
¡Advertencia! Si vas a ingresar más archivos a la carpeta o más hojas a los libros, 
debes asegurarte de que contenga el mismo formato, es decir, los mismos campos 
de columnas, tal cual están en esta consulta, en capítulos posteriores te 
enseñaremos como consolidar información, aunque no tengan el mismo formato.
x u
    109/742
    Tenemos la tabla que nos arroja el link, depuramos un poco:
Transformar -> Usar la primera fila como encabezado
Inicio -> Cerrar y cargar, ya tenemos nuestros datos en Excel listo para procesar
Como son datos provenientes de la Web, para actualizar es importante reiterar tener internet 
y luego actualizar para ver los cambios.
Esta conexión es útil cuando se trabaja con indicadores de páginas Web que constantemente 
están en cambio.
Vamos a conectarnos a bases datos, pare este ejemplo usaremos Access
    110/742
    El proceso de vinculación a Access es el mismo proceso de conexión a cualquier otra fuente de 
información, tal como hemos venido trabajando.
Abrimos un archivo de Excel nuevo -> Datos -> Grupo obtener y transformar datos -> 
Desplegamos Obtener datos ->Desde una base de datos
Para el ejemplo, buscamos la carpeta con el Capítulo 3, el archivo de Access se llama 
“Ventas_Detalle Transacción” e importamos.
El cuadro de diálogo nos muestra las tablas que contiene Access, seleccionamos las 3 tablas o 
las tablas que deseemos cargar a la consulta.
x
    111/742
    Estando en el editor de Power Query, vemos que efectivamente se cargaron las 3 consultas, 
damos un recorrido por cada una de ellas para empezar su limpieza
x
x
    112/742
    Si ya hiciste el recorrido dando clic en cada consulta, la única tabla que se debe ajustar, es 
Categorías de Productos, ya que la columna Precio de venta esta como texto, como lo 
explicamos en la figura 3.55 y 3.56, debemos cambiar los puntos por comas y dejarlo en formato 
Número decimal.
Clic derecho en columna Precio de Venta -> Reemplazar los valores ->Puntos por comas
Inicio -> Cerrar y cargar, ya las 3 tablas se encuentran arrojadas en Excel, listas para ser 
procesadas.
    113/742
    De la misma forma nos podemos conectar a cualquier base de datos ya se a SQL, MySQL, 
ORACLE o una conexión ODBC y traer las tablas con las que vamos a trabajar.
Cada correo que recibimos, enviamos, guardamos o eliminamos, en alguna parte debe quedar 
todos estos registros, incluso en el mismo panel del correo podemos buscar cada registro, ¿Será 
que podemos tener una base de datos detallada de cada correo? La respuesta es SI, si tenemos 
un correo con cuenta Microsoft Office 365.
x
¡Advertencia! Si te vas a conectar a una base de datos, debes tener instalado 
en tu computadora el programa de dicha base o los permisos y versiones para 
dicha extracción. También puedes conectarte a bases de datos en la nube.
    114/742
    Abrimos un libro de Excel nuevo -> Datos ->Obtener y transformar datos ->Obtener datos -> 
Desde los servicios en línea.
Ingresamos el correo con cuenta Microsoft y damos Aceptar
Esta la opción de ingresar con una cuenta Exchange o con una cuenta Microsoft 
Seleccionamos Cuenta de Microsoft, de nuevo ingresamos el correo y la contraseña ->Iniciar 
sesión y Conectar
x
    115/742
    Nos pregunta si estamos desde una cuenta Personal o empresarial, en este caso es personal.
El cuadro de diálogo preliminar a la entrada de Power Query, nos muestra las tablas que 
contiene el correo, seleccionamos la tabla Mail.
x
x
    116/742
    Damos clic en Editar, ya nos encontramos en la pantalla de Power Query, son todas las 
columnas que contiene cada correo, en algunos campos vemos que hay flechas de expansión, 
es decir, son tablas dentro de la misma columna.
Cuando en Power Query no encontramos con demasiadas columnas y es tedioso ir a través de 
la barra desplazadora seleccionando y quitando columnas, veamos esta opción.
Inicio-> Elegir columnas -> Elegir columnas
Seleccionamos las columnas:
▪ Folder Path: Ruta de la carpeta
▪ Subject: Tema o asunto del correo
▪ Sender: Enviado por y el correo del envío
▪ Date Time Sent: Fecha de enviado
▪ Date TimeReceived: Fecha de recibido 
▪ Body: Cuerpo o detalle del correo
xuu
    117/742
    Con estas columnas podemos tener un buen análisis o una búsqueda fácil de cualquier tipo de 
correo, asunto o nombre de la persona quien envía el correo.
Realizamos 3 pasos adicionales:
▪ Filtramos la columna Folder Path -> Seleccionamos la carpeta ->Matemáticas Financiera
▪ Expandimos la columna Sender y Body, recuerda deshabilitar Usar el nombre de la 
columna original como prefijo.
▪ Cerrar y cargar
    118/742
    Este es el objetivo principal que fijamos desde el comienzo, llevar todos nuestros datos a 
formato tabular, aún los correos los llevamos a esta meta.
x
    119/742
    Inteligencia de Negocios con Excel y Power BI - Page 120
    120/742
    CAPÍTULO 4 
Después de este capítulo tú sabrás:
▪ Trabajar con diferentes consultas a la vez
▪ Anexar consultas
▪ Combinación de consultas: Uno a uno, uno a muchos y muchos a muchos
▪ Reemplazo de BUSCARV
Como consultores y docentes en Inteligencia de Negocios nos encontramos con muchos 
usuarios de Excel y Power BI, con múltiples problemas para manejar cantidades de información 
y aún más, si la información se encuentran en diferentes fuentes o tablas, y una de las primeras 
funciones que aprenden para cruzar o traer información de dichas fuentes, es la función 
BUSCARV, según encuestas de Microsoft ha sido la función más usada y ganadora de todas, 
que tal si te dijera que con Power Query es aún más fácil de lo que crees: Cruzar información, 
anexar tablas a otras, es toda una revolución de datos esta herramienta.
Cuando tenemos información de diferentes fuentes o tablas y debemos consolidar todos los 
datos en una sola base, Power Query tiene la ventaja de trabajar con diferentes consultas a la 
vez e ir anexando una o varias tablas debajo de cada una sin importar el tipo de extensión del
    121/742
    archivo o fuente de datos, es decir, si tenemos 10 consultas con la misma estructura y solo 
queremos reunirlas todas en una sola. Empecemos.
Tenemos el siguiente escenario: En una carpeta están los archivos con extensión CSV de la
 Producción 2010 a 2015, un archivo de texto con la producción 1999 el cual 
cargamos en el Capítulo 3, ver figura 3.2 a 3.4 y un archivo de Excel con extensión 
xlsx.
Con este escenario en la mesa, tenemos en mente que se deben realizar ya varias consultas:
▪ Primero debemos definir los encabezados que va a tener cada consulta
▪ Extraer archivos desde una carpeta
▪ Extraer los datos del archivo de texto
▪ Extraer datos de archivo de Excel xlsx
▪ Consolidar todas las consultas
Debemos seguir este paso a paso para lograr nuestro objetivo
Definir encabezado
Abrimos alguno de los archivos CSV, de texto o xlsx para definir los encabezados de columnas
x
    122/742
    Extraer datos de la carpeta
En el capítulo anterior en la figura 3.67 y 3.68 aprendimos a conectarnos desde una carpeta 
repetimos los pasos hasta llegar al editor de Power Query
Abrimos un libro de Excel nuevo -> Pestaña Datos ->Obtener y transformar datos -> Obtener 
datos -> Desde un archivo -> Desde una carpeta -> Capítulo 4 ->Producción 2010_2014
Buscamos la carpeta o pegamos la dirección de la carpeta y editar.
Expandimos los datos y damos aceptar, tenemos todos los datos de cada archivo, pero al tener 
todas las columnas de la carpeta, vemos que hay una nueva, debemos eliminarla ya que en la 
figura 4.1 hemos definido la estructura de datos.
x
x
    123/742
    Con la estructura lista, vamos a Inicio -> Hacemos despliegue en Cerrar y Cargar -> Cerrar y 
cargar en… -> Seleccionamos solo Conexión
Este tipo de carga, como la estudiamos en la introducción de Power Query, la usamos cuando 
no necesitamos arrojar o ver los datos en Excel.
La figura 4.5 muestra varias consultas, Power Query, cuando realiza extracción de datos desde 
una carpeta, crea unos pasos y consultas internas, para que no halla confusión entre las 
xx
    124/742
    consultas que vamos a adicionar, contraemos la carpeta llamada “Transformar archivo de 
Producción 2010_2014”.
Extraer datos de txt
Si has leído el paso a paso de este libro, ya tienes más habilidad con la herramienta, si no habías 
tenido ninguna relación con Power Query, ahora usamos los pasos para extraer datos de un 
archivo de texto. Ver figura 3.1 a 3.4 hasta llegar a la interfaz. El archivo de texto se encuentra 
en la carpeta Capítulo 4, Producción_1999
En el mismo libro donde está la consulta anterior, vamos a Datos -> Desde el txt/CSV e ir a hasta 
el interfaz.
Verificamos que los encabezados están como definimos en la estructura inicial, solo nos queda 
Cerrar y cargar en… -> Crear solo conexión.
Extraer datos de archivo de Excel xlsx.
Este cuarto paso, es el repaso de la figura 3.47 y 3.48, en el mismo libro que estamos arrojando 
las consultas nos conectamos al libro de Excel ubicado en el capítulo 4, Producción_2015.
Datos -> Obtener datos -> Desde un archivo -> Desde un libro -> Seleccionamos Hoja 1 -> Editar
Ahora vemos el estado de los datos:
x
    125/742
    Revisando los datos, la tabla trajo dos columnas adicionales, Ventas y Días Entrega, para poder 
consolidar todas las consultas es recomendable eliminar estas dos últimas columnas y así 
conservaremos la estructura inicial para no tener confusiones en su unificación.
Cerrar y cargar en… -> Crear solo conexión
Cambiamos el nombre de la consulta ->Seleccionamos la consulta -> Clic derecho -> Cambiar 
nombre -> “Producción_2015”
Consolidar consultas
Estamos cada vez más cerca de consolidar nuestros datos, un par de clics más y terminamos.
Ingresemos de nuevo al editor de Power Query, clic derecho en alguna de las consultas -> Editar
Estando en la interfaz, vamos a la pestaña Inicio -> Grupo Combinar -> Se despliega Combinar 
Consulta.
En este caso seleccionamos Anexar consultas para crear una nueva, si seleccionamos Anexar 
consultas, las demás tablas se van a anexar debajo de la que estamos editando.
    126/742
    Como estamos ubicados en la Consulta Producción 2010_2014, si no seleccionamos la opción 
Anexar consulta para crear una nueva, las 2 tablas se ingresan debajo de esta consulta.
Seleccionamos Tres o más tablas -> CTRL sostenido seleccionamos Producción_1999 y 
Producción_2015 -> Agregar -> Aceptar.
Cambiamos el nombre de la consulta por -> Producción Total ->Cerrar y cargar
x
x
    127/742
    Funcionó perfectamente, ahora tenemos todos nuestros datos en una sola tabla, listos para 
preparar un gran reporte.
Combinar consultas es una las nuevas sorpresas que nos trae Power Query, en el día a día se 
que nos ha tocado traer información de otras tablas, cruzar informes y comparar datos, 
BUSCARV ha sido la ayuda de muchos para estos casos, pero hay casos que se nos ha 
complicado ese relacionamiento de informes, terminando este capítulo te aseguro que no 
imaginabas lo fácil que ya es con Power Query
Antes de empezar vamos a nombrar los 3 tipos de combinaciones que hay:
▪ Relación uno a uno
▪ Relación muchos a muchos
▪ Relación uno a muchos
Relación uno a uno
Si tenemos 3 tablas, en una de ellas tenemos los movimientos diarios de las ventas, en la 
segunda los detalles de los clientes, y en la última la información de los productos. Los 
movimientos diarios de ventas me traen el ID CLIENTE y el ID PRODUCTO, pero no trae los
nombres tanto de clientes como de productos e información adicional de los clientes como 
País, Ciudad, lo mismo con los Productos, no trae el nombre ni el precio del Producto. Veamos.
x
    128/742
    ¡
Ya estás pensando lo que hay que hacer! Debemos relacionar las tablas de tal forma que los 
datos de las tablas maestras me alimenten la información de Ventas, ya que es muy difícil 
realizar un informe solo con los ID, necesitamos presentar nuestros gráficos y reportes al mejor 
detalle posible. Iniciemos.
Descargamos el archivo Combinación uno a uno de la carpeta Capítulo 4.
Vamos a realizar 3 conexiones del mismo libro:
Hoja Ventas -> Datos -> Obtener y transformar datos -> Desde una tabla o rango ->Aceptar
Afortunadamente los datos están nítidos, en caso de que no, ya tenemos la experiencia para 
aplicar una buena limpieza.
Cerrar y cargar en… Las Ventas vamos a cargarlas en formato tabla.
Cambiamos el nombre de la consulta por: Ventas
Ahora tenemos una nueva hoja “Hoja 1” y la primera consulta descargada a Excel.
Veamos la figura 4.13
x
Nota. La tabla de Ventas la vamos a llamar tabla transaccional, y las tablas Clientes 
y Productos la vamos a llamar tablas maestras, esto lo veremos más a fondo en el 
capítulo 11.
    129/742
    La Hoja 1, es la que vamos a usar para realizar el cruce de las otras hojas (Clientes y Productos).
Ahora vamos a realizar el mismo proceso de consulta que concebimos en la hoja Ventas.
Hoja Clientes -> Datos -> Obtener y transformar datos -> Desde una tabla o rango ->Aceptar
Estando en la interfaz de Power Query y con los datos listos para Cargar, ante cambiamos el 
nombre de la consulta a: Clientes
Inicio -> Cerrar y Cargar en… -> Crear Solo conexión Ver figura 4.4 -> Aceptar
Repetimos estos pasos nuevamente en la hoja Productos
Hoja Productos -> Datos -> Obtener y transformar datos -> Desde una tabla o rango ->Aceptar
Cambiamos el nombre de la consulta: Productos
Inicio -> Cerrar y Cargar en… -> Crear Solo conexión Ver figura 4.4 -> Aceptar
x
x
    130/742
    Verificamos que las 3 consultas se hallan realizado correctamente y solo y únicamente la 
consulta Ventas los datos estén en Excel, las otras dos están solo como conexión.
Seleccionamos la consulta Ventas -> Clic derecho -> Combinar.
Iniciamos la intersección de datos, seleccionamos la consulta Clientes. Para realizar la 
combinación de consultas es necesario que las dos tablas tengan un campo en común, es decir, 
cada tabla debe contener una columna con datos que están tanto en hoja Ventas como en hoja 
Clientes. 
Para este caso sería el campo ID CLIENTE, es la columna que se encuentra en cada una de las 
hojas, damos clic en cada encabezado ID CLIENTE de cada consulta
x
¡Advertencia! Si en las dos tablas no hay un campo en común es imposible realizar 
combinación de consultas, si has usado la función BUSCARV en Excel, es lo más 
probable que has encontrado tablas que no se pueden relacionar porque no 
cumplen esta regla
    131/742
    Es indiferente la posición de las tablas, arriba o abajo a la hora de combinar consultas, te 
recomendamos que la tabla transaccional valla en la parte superior y la tabla maestra o de 
búsqueda en la parte inferior.
Explorando la figura 4.16, al seleccionar cada campo en común de las consultas, Power Query 
alerta un mensaje de coincidencia de los datos, es decir, verifica que efectivamente todos los 
campos de la tabla Ventas se encuentran en la tabla Clientes.
Procedemos a dar Aceptar y ya estamos en el editor de consultas, se ha creado una nueva 
consulta llamada Merge1 (Combinación) y se ha agregado una nueva columna llamada Cliente, 
con flechas de expansión, lo que significa que los campos de la consulta Clientes se han 
convertido en Tabla donde se encuentran los datos a extraer.
Si damos clic en uno de estos campos, muestra todos los encabezados de dicha tabla. Veamos.
x
    132/742
    Solo nos queda expandir la columna Clientes, para agregar los campos de la tabla clientes a la 
tabla Ventas.
Expandimos Columna Clientes -> Deshabilitamos Usar el nombre de la columna original como 
prefijo -> y seleccionamos los campos que vamos a agregar:
▪ Nombre cliente
▪ País
▪ Ciudad
No seleccionamos ID Cliente, ya que este campo se encuentra en la tabla Ventas, no hay 
necesidad de duplicarlo.
Aceptar -> Cambiamos el nombre de la consulta -> Consultas Combinadas
    133/742
    La consulta ahora arroja 3 columnas adicionales, que corresponden a los campos que 
seleccionamos al expandir la tabla ventas.
Sin salir del editor de Power Query, en esta nueva consulta vamos a añadir los campos de tabla 
Productos y así tendremos todos los datos consolidados.
Inicio -> Grupo Combinar -> Combinar Consultas ->Combinar consultas
En la figura 4.8 explicamos cuando seleccionamos Combinar o Anexar consultas o Combinar 
consultas para crear una nueva, para este escenario la primera opción es la adecuada, no vamos 
a crear más consultas porque nos podemos saturar y entrar en confusión, con una sola es 
necesario.
Escogemos la consulta Productos y seleccionamos el campo en común entre las dos tablas, ID 
Productos. Ver figura 4.16
x
x
    134/742
    Auditamos que todo este correcto -> Aceptar y repetimos el mismo proceso de la figura 4.18
Expandimos el campo Productos -> Deshabilitamos Usar el nombre de la columna original como 
prefijo -> y seleccionamos los campos que vamos a agregar:
▪ Nombre Producto
▪ Precio ($ USD)
Correctamente las columnas Nombre Producto y Precio ($USD) están consolidadas con los 
demás campos.
Inicio Cerrar y cargar.
x
X
    135/742
    Con nuestros datos en Excel y las columnas anexadas correctamente de las tablas Clientes y 
Productos es la muestra más clara de lo fácil e intuitivo que es cruzar información de tablas o 
reemplazar ese famoso BUSCARV por algo más simple y rápido, ¿Por qué rápido? En este caso 
se cargaron 25.344 filas, es decir que, si realizas un BUSCARV para cada columna, multiplica las 
5 columnas por 25.344, tú archivo cada vez va a aumentar más de tamaño.
¡Creo que hemo cometido un error!, ¿notas algo extraño?
En el panel de consultas se agregó una conexión nueva, es decir, que han quedado 4 consultas, 
la consulta Ventas y Consultas Combinadas tienen datos arrojados en el Excel, y en verdad solo 
necesitamos una tabla consolidada, el resto de las consultas deben quedar como solo conexión.
Es muy fácil reparar esto, damos clic derecho encima de la consulta Ventas -> Cargar en… -> 
Crear solo conexión:
x
    136/742
    Aceptar y Excel no advierte que al realizar esta acción puede haber una posible perdida de datos, 
es decir, la tabla de ventas que estaba arrojada en Excel desaparece, y la consulta queda cargada 
como solo conexión.
Aceptamos y listo, todo un nuevo aprendizaje para relacionar, cruzar, y combinar información 
de uno a uno. ¿Por qué se llama relación de uno a uno? Tiene ese nombre porque de cada campo 
de la tabla ventas hemos relacionado con un campo de la tabla Clientes o Productos.
x
x
Nota. Aunque se agregaron 5 columnas más, 3 de la tabla Clientes y 2 de la tabla 
Productos, no significa que se relacionaron varios campos, este fue el resultado, la 
relación solo se hizo con un Campo de Ventas y un solo campo de la tabla Clientes 
y uno de la tabla Producto (Uno a uno)
¡Advertencia! Los campos en común con los que se combinan las consultas deben 
estar en el mismo formato, es decir, si el ID Producto de la tabla ventas está en 
formato número entero, lo mismos debe estar el ID Producto de la tabla Productos.
Se cambian desde el editor de Power Query, no en Excel
    137/742
    Relación muchos a muchos
Si llevamos este punto a una definición: Es BUSCARV avanzado o con trucos.
Así es, la relación de uno a uno comprendimos su definición, es porque solo necesitamos un 
solo campo en cada tabla, esta nueva relación de muchos a muchos, necesitamos combinar 
información cuando en realidad hay varios campos en común que debemos usar para lograr 
nuestros resultados. Gráficamente lo comprenderemos mejor.
Buscamos en la carpeta Capítulo 4 el libro “combinación muchos a muchos”.
Para el ejemplo tomaremos estas dos tablas de un número muy pequeño de datos, con el 
objetivo que entiendas de la manera más amena el ejercicio, pero recuerda Power Query no 
tiene problema de realizar este truco con grandes cantidades de datos.
La meta es que debes consolidar las dos tablas en una sola, y debes traer para cada CLIENTE y 
según el PUNTO VENTA sus respectivas CANTIDADES y VENTAS.
Hagamos un diagrama de flujo para ver mejor el panorama y hacia donde debemos llegar.
x
    138/742
    Vamos a realizar rápidamente las conexiones de consulta desde cada tabla.
Tabla Cantidades -> Datos -> Obtener y transformar datos -> Desde una tabla o rango ->Aceptar
Estando en la interfaz de Power Query y con los datos listos para Cargar ->Inicio -> Cerrar y 
Cargar en… -> Crear Solo conexión Ver figura 4.4 -> Aceptar
El mismo procedimiento para la tabla Ventas
Con las conexiones listas, nos ubicamos en la consulta Cantidades:
Clic derecho -> Combinar -> Escogemos la tabla Cantidad y Ventas.
x
x
    139/742
    Solo debemos seleccionar los campos en común de cada tabla, con CTRL sostenido se 
selecciona los campos en simultaneo de cada consulta.
Aceptamos y repetimos el proceso visto en la figura 4.17 y 4.18
Expandimos Columna Ventas -> Deshabilitamos Usar el nombre de la columna original como 
prefijo -> y seleccionamos los campos que vamos a agregar:
▪ VENTAS
x
X
    140/742
    Solo seleccionamos el campo VENTAS ya que Cliente y Punto Venta lo tenemos en la tabla 
Cantidades.
Cerrar y cargar ¡boom! Ha sido todo un éxito nuestro relacionamiento de muchos a muchos 
Cambiamos el nombre de la consulta -> “Combinar de muchos a muchos”.
Si hacemos una comparación con la figura 4.28, se realizó de manera manual para entender el 
ejercicio, el cruce de información de los 3 datos tomados es exactamente igual.
Relación uno a muchos
Debemos tener cuidado con este tipo de relación, ya que no es muy recomendada, puede traer 
posibles errores en los datos.
Veamos esto con un ejemplo de pocos datos para el rápido manejo
    141/742
    Tenemos dos tablas, una de Ventas y otra tabla llamada Departamentos, podemos identificar 
rápidamente que el campo en Común de las dos tablas es DEPARTAMENTO, pero en la tabla 1 
el Departamento aparece una sola vez y en la tabla 2, este mismo campo se repite varias veces, 
por ende, es una relación de uno a muchos.
Ahora vamos a realizar la consulta de cada una de las tablas y cargarlas solo como conexión:
Tabla Ventas -> Datos -> Obtener y transformar datos -> Desde una tabla o rango ->Aceptar
Estando en la interfaz de Power Query y con los datos listos para Cargar ->Inicio -> Cerrar y 
Cargar en… -> Crear Solo conexión Ver figura 4.4 -> Aceptar
El mismo procedimiento para la tabla Departamentos.
Con las tablas cargadas como solo conexión, realizaremos la combinación de consultas.
Clic derecho en consultas ventas -> Combinar -> Seleccionamos las tablas ->Clic en el campo 
DEPARTAMENTE de cada tabla.
Verificamos que los datos hayan coincidido correctamente.
x
    142/742
    Aceptamos y en la pantalla de Power Query expandimos la columna Departamentos
Solo seleccionamos campo Ciudad, cambiamos nombre de la consulta -> uno a muchos -> 
Cerrar y cargar.
Miremos que sucedió con nuestros datos:
x
x
    143/742
    Si observamos la figura inicial 4.33 de la tabla Ventas, solo tenía 3 filas (ANTOQUIA, ATLANTICO, 
VALLE DEL CAUCA), y nuestra nueva tabla que contiene 11 datos ¿Qué pasó?, evidentemente 
los datos se duplicaron, me trajo el campo CIUDAD, pero como en la tabla 2 cada Departamento 
se repetía 3 veces y en caso del VALLE DEL CAUCA esta 4 veces, al realizar este tipo de 
combinación la tabla transaccional creció tanto en filas como en columnas, grave error.
x
¡Advertencia! Si realizamos combinaciones de tablas, transaccionales con tablas 
maestras o de búsqueda, el resultado de la consulta solo puede crecer en 
columnas, si aumentan las filas, es posible que no se pueda usar este tipo de 
relación, ya que los datos tienden a duplicarse
    144/742
    CAPÍTULO 5 
Después de este capítulo tú sabrás:
▪ Transponer tablas
▪ Anulación dinamización de columnas
▪ Columna dinámica
▪ Agrupación de datos
Si has llegado hasta este capítulo y te has sorprendido, en los capítulos anteriores has 
encontrado trucos, procesos, funciones, maneras diferentes y rápidas de manejar tus datos, a 
lo que llamamos los gomosos del tema, esto es oro en polvo, o tal vez ya conocías todo lo 
anterior, es válido y aplaudimos tus conocimientos, seas cual sea el usuario, no te despegues 
que lo que viene te aseguro va ayudarte a reordenar tus datos cuando crees que no tienen 
solución o la única forma es la manera manual en que los organizas, veamos unos casos más.
En el capítulo 3 cargamos un archivo en formato CSV, ver figura 3.17 y 3.18, habíamos dejado 
indicado que este archivo necesitaba ser organizado y limpiado, notábamos algo raro en los 
datos, primero no están en formato tabular, recuerda que es el objetivo primordial de toda 
limpieza de datos: llegar a esta meta, adicional los campos columnas están en las filas y las filas 
están ubicadas en las columnas, es decir, esta transpuesta la información.
El archivo con el que vamos a trabajar es el mismo, “Producción_2015”.CSV, lo puedes tomar 
de la carpeta Capítulo 4 o 5.
Abrir un libro de Excel nuevo -> Datos ->Pestaña Obtener y transformar datos -> Desde el 
texto/CSV -> Importar -> Editar
    145/742
    Claramente la pantalla de Power Query muestra un orden inadecuado de la información.
Debemos cambiar la posición de los datos, las filas a columnas y las columnas a filas, en Excel 
también podemos realizar este cambio de manera rápida y fácil, pero recuerda que con Power 
Query solo haces una vez y listo, tu proceso queda automatizado y cada que lo necesites 
realizar clic derecho actualizar, y es lo que cada usuario de estas herramientas debe buscar, más 
tiempo para analizar y menos para procesar.
Iniciamos:
Pestaña Transformar ->Transponer -> Usar la primera fila como encabezado
Con estos cortos pasos ya tenemos la tabla en el formato correcto, listos para ser usados
Inicio -> Cerrar y cargar. Los datos han tomado su posición natural
x
x
    146/742
    El caso anterior fue relativamente sencillo, para este caso necesitamos entender algo primero, 
antes de entrar en materia.
Cuando iniciamos en el mundo de la información, no tenemos varias reglas claras a la hora de 
trabajar con ella, una de ellas es que debemos siempre guardar los datos en formato tabular o 
base de dato, es decir, si estoy guardando el inventario o ventas de los productos por año solo 
debería tener 3 columnas:
 PRODUCTO – AÑO - VALOR
Si no tenemos estas reglas claras, nos hemos encontrado con información ya Pivoteada, es 
decir, los usuarios almacenan la información no para ser procesada sino para ser presentada 
dentro de la misma base que se guarda, y en vez de tener solo 3 columnas como el caso anterior, 
tienen n columnas y así es bien difícil manipular dicha información. Veamos esto gráficamente.
Pivotear Una definición simple: Mover o cambiar de un lugar a otro un campo, 
dato, encabezado o columna.
    147/742
    La Tabla 1 es la forma incorrecta de almacenar la información, aunque sea la manera más fácil 
de visualizar los datos, es una tabla que ya está pivoteada, es decir, los campos años están en 
diversas columnas, y si pruebas creando una tabla dinámica a la hora de consolidar la 
información debes bajar 6 veces este campo. Creemos dos tablas dinámicas para ver su 
diferencia.
En la carpeta Capítulo 5, buscamos el archivo “Anulación Columnas 1.xlsx”.
Seleccionamos la Tabla 1 ->Pestaña Insertar ->Tabla Dinámica ->Aceptar
Bajamos el campo SKUs a Filas y cada uno de los años a valores.
x
x
    148/742
    Si apetecemos realizar un análisis de datos por años, debemos bajar cada campo año las veces 
que sea necesario, es decir, que si tenemos 10 años para analizar son estas veces los 
movimientos que hay que realizar, pero este no es lo más trágico, si notan la tabla dinámica 
tiene dos Totales Generales, uno pertenece a como se estaban guardando los datos en el origen 
y el otro al total que por defecto realiza la tabla dinámica.
Esto y muchos errores más y dificultades nos vamos a encontrar si nuestros datos están 
Pivoteados.
Ahora creemos una tabla dinámica, de la Tabla siguiente.
Seleccionamos la Tabla 2 -> Pestaña Insertar ->Tabla Dinámica ->Aceptar
Llevamos el campo SKUs -> Años a Columnas -> Valor a Valores
Con tan solo 3 movimientos tenemos nuestros datos listos para su análisis, gráficos y 
presentación. (Si quieres aprender más sobre Tablas dinámicas, te recomendamos nuestro libro 
“Quinta dimensión de Tablas Dinámicas”. En la bibliografía encontrarás enlace).
x
    149/742
    Notoriamente vemos las dos grandes diferencias al trabajar con datos Pivoteados (Pivot) y 
datos no Pivoteados (UNPIVOT).
La pregunta sería: ¿Si ya los datos los tengo almacenados de la manera incorrecta o las tablas 
que me envían de diferentes fuentes están Pivoteados, como los organizo?
¡De nuevo Power Query entra en acción!
En el mismo libro que creamos las tablas dinámicas, seleccionamos la Tabla 1 (Datos 
Pivoteados) -> Datos -> Obtener y transformar datos -> Desde una tabla o rango.
Dentro del editor de consultas, antes de realizar este maravilloso truco de anular columnas 
Pivoteadas, debemos:
▪ Eliminar la columna “Total general”
▪ Filtrar el campo “SKUs” y deshabilitar “Total general”
Datos listos para aplicar anulación de columnas:
Con la columna SKUs seleccionada damos clic derecho -> Anulación de dinamización de otras 
columnas.
Existen 3 formas para aplicar este gran truco:
x
    150/742
    ▪ Anulación de dinamización de columnas: Debemos seleccionar las columnas que 
vamos a anular, ejemplo, si vamos a usar esta opción para nuestro caso, debemos 
escoger todas las columnas 2010 a 2015 y aplicamos.
▪ Anulación de dinamización de otras columnas: Siguiente nuestro ejemplo, esta opción 
es lo contrario de la anterior, ya que, si debemos anular el pivote de las columnas años, 
seleccionamos la o las columnas que no tiene este inconveniente y aplicamos.
▪ Anulación de dinamización de las columnas seleccionadas únicamente: Es un caso 
especial donde única y exclusivamente seleccionamos las columnas a anular, las demás 
quedan como en el origen.
Comprendiendo estas 3 opciones, aplicamos el segundo caso:
Clic derecho SKUs ->Anulación de dinamización de otras columnas
x
x
    151/742
    Por último, Cambiamos el nombre del campo Atributo por “Año” -> Cerrar y Cargar
¿Qué tal? Fue más larga la explicación, que el mismo truco, pero necesaria para entender el 
trasfondo de todo. Te confieso, es una de las grandes herramientas que más me ha gustado, 
útil, sencilla y eficaz.
Cada vez más, avanzamos en la reordenación de datos, el caso solo tenía un encabezado para 
anular su Pivote, es decir, solo los campos años teníamos que llevar a formato tabular, ahora 
entraremos a aguas un poco más a fondo, estudiaremos el caso cuando son dos encabezados.
Sin salir de la carpeta Capítulo 5 ->Abrimos el archivo -> “Anulación de Columnas 2.xlsx”
En la Hoja 1 vemos dos tipos de información, que en esencia es la misma, pero explicado 
anteriormente, la primera esta pivoteada y la segunda es la forma correcta de guardar la 
información. El reto es llevar la Tabla 1 al formato Tabular, según Tabla 2. Veamos.
x
    152/742
    La Tabla 1 está a dos niveles:
▪ Años
▪ Tipo de información (Ingresos Tot y Meta)
Con este tipo de información es muy complicado trabajar para realizar informes, 
presentaciones, tablas dinámicas y modelos de información. Iniciemos.
Seleccionamos la Información 1 -> Datos -> Obtener y transformar datos -> Desde una tabla o 
rango -> Deshabilitamos el cuadro: La tabla tiene encabezados -> Aceptar
Los datos cargaron al editor, para lograr nuestro objetivo vamos a ver una serie de trucos, por 
ende, debes seguir el paso a paso:
▪ Eliminar las dos últimas columnas (Columna 14 y 15)
▪ Eliminar primer fila -> Inicio -> Quitar filas ->Quitar filas superiores -> Número de filas =1 
-> Aceptar. 
x
x
    153/742
    Continuamos:
▪ Filtramos la Columna 1-> Des seleccionar Total general
▪ Transponemos la tabla -> Pestaña Transformar -> Transponer. Ver figura 5.2
Así va nuestro proceso:
En la columna 1, hay unos campos null, es decir, están en blanco, necesitamos realizar un 
relleno, de tal forma que los años se repitan para llegar al formato tabular.
▪ Seleccionamos Columna 1 -> Clic derecho -> Rellenar -> Abajo
x
    154/742
    Con la Columna 1 rellena, vamos a realizar el truco que es el eje de esta sección:
▪ Seleccionamos la Columna 1 y la columna SKUs simultáneamente
▪ Pestaña Transformar -> Combinar columnas
▪ En el cuadro de diálogo elegimos Separador -> --Personalizado-- -> Escribimos un 
separador que nos identifique una columna de la otra.
Aceptamos y con las columnas combinadas, aplicamos estos pasos:
▪ Transponemos de nuevo la tabla
▪ Usar la primera fila como encabezado 
▪ Seleccionamos la columna -SKUs -> Clic derecho -> Anulación de dinamización de otras 
columnas. Ver figura 5.7. 
Ya estamos a punto de lograrlo:
    155/742
    Dos pasos más:
▪ Clic derecho en la columna atributo -> Dividir columna -> Por delimitador -> Delimitador 
situado más a la izquierda -> Aceptar 
Cambiamos el nombre de la columna Atributo.1 - “Año” y Atributo.2 - “Información”.
Cerrar y cargar.
¡Magia ¡El conejo ha salido del sombrero, datos limpios y listos para que sorprendas a tu jefe y 
toda tu empresa
x
    156/742
    Teniendo el proceso anterior claro, ahora nos atrevemos a realizar el mismo proceso para 3 
niveles de encabezados. Veamos.
x
x
    157/742
    Se ve un poco complejo, ¿Verdad? Pero no es así, vamos a repetir lo que realizamos para 
organizar los datos con niveles de encabezado.
Abrimos el archivo “Anulación de Columnas 3.xlsx” y Seleccionamos los datos desde la celda 
A1:N18 -> Datos -> Obtener y transformar datos -> Desde una tabla o rango -> Deshabilitamos 
el cuadro: La tabla tiene encabezados -> Aceptar
Estando en panel de Power Query, seleccionamos la columna 1 -> Filtrar -> Deshabilitamos los 
totales -> Aceptar.
En la misma columna 1, realizamos el relleno -> Clic derecho -> Rellenar abajo
De una vez realizamos la primera transposición de la tabla
Transformar -> Transformar
x
    158/742
    Así se el proceso
Continuamos el proceso:
▪ Clic derecho en Columna 1 -> Rellenar abajo. Ver figura 5.14
▪ Clic derecho en Columna 2 -> Rellenar abajo
▪ Seleccionamos las Columnas 1, 2 y 3 -> Pestaña Transformar -> Combinar columnas -> 
En el separador puedes poner el caracter que desees, escojamos “;” -> Aceptar
▪ Por segunda vez transponemos la tablas -> Pestaña Transformar -> Transponer
▪ En la misma pestaña -> usar la primera fila como encabezado
▪ Seleccionamos las dos primeras columnas con nombres (;; y ;;_1)
x
    159/742
    A diferencia del anterior caso, ya en este punto debemos seleccionar las dos columnas para 
anular la dinamización de las otras, ya que el resto es ajustar datos con un nivel 3 de 
encabezados.
▪ Con las dos columnas seleccionadas -> Clic derecho -> Anulación de dinamización de 
otras columnas. Ver figura 5.14
▪ Tenemos un panorama mucho más claro.
▪ La columna Atributo debemos dividirla por delimitador “;” -> Clic derecho dividir 
columna -> Por delimitador -> Seleccionamos cada aparición del delimitador.
x
x
    160/742
    Solo cambiamos nombres de columnas:
▪ Columna 1 -> “Tipo Población”
▪ Columna 2 -> “País”
▪ Columna 3 -> “Años”
▪ Columna 4 -> “Mes”
▪ Columna 5 -> “Rubro”
Inicio -> Cerrar y Cargar
Y listo todo un éxito nuestra operación.
x
Nota. Si realizamos la limpieza para anulación de columnas para 2 y 3 niveles, quiere 
decir que no importa el número de encabezados o formato de tabla en que se 
encuentre los datos, siempre van a tener una solución con Power Query
    161/742
    La columna dinámica es lo contrario a la anulación de dinamización de columnas, es decir, el 
objetivo es convertir datos de filas en campos de columnas con valores únicos.
La Tabla 1 contiene Países en filas con valores repetidos, es decir, el País Colombia se repite 4 
veces dentro de la tabla, la columna dinámica toma estas filas y las convierte a Columnas como 
valores únicos y suma, promedia, cuenta o hace el cálculo que le indiquemos de la columna 
Unidades. Tal como se ve en la Tabla 2.
En la misma carpeta del Capítulo 5 generemos una consulta y veamos su aplicación.
Tabla 1 -> Datos -> Obtener y transformar datos -> Desde una tabla o rango
Dentro de la interfaz -> Seleccionamos la columna País -> Pestaña Transformar -> Columna 
Dinámica.
x
    162/742
    Para realizar una columna dinámica, es necesario como mínimo dos columnas en la tabla, ya 
que una es la que se convierte en campos columna con valores única, y la columna valor, es el 
resultado de cada campo.
Son dos los parámetros de la columna dinámica:
▪ Columna de Valores: Se selecciona el campo en el cual se va a hacer el cálculo
▪ Opciones avanzadas: Es el tipo de cálculo que se va a aplicar
x
x
    163/742
    Aceptamos y sin importar el número de veces que aparece cada País, Power Query solo deja un 
valor único por País y suma o realiza el cálculo indicado.
Cerrar y cargar y comprobamos que los datos de cada País los sumo con su respectivo 
encabezado.
Ejercicio Práctico
Para una mejor comprensión sobre columna dinámica, un ejercicio práctico nos va a ayudar a 
ver mejor el panorama.
La información de la Tabla 1, es un poco extraño su ordenado, recuerdas capítulos anteriores 
donde reiterábamos que toda nuestra información debe estar en formato tabulado, pues bien, 
este no es un caso excepcional los datos están arrojados de manera independiente, cada 
x
x
    164/742
    empleado o persona tiene su propia, para este escenario es donde la columna dinámica toma 
poder y se convierte en una gran herramienta para convertir los datos tal como esta en la Tabla 
2.
Procedamos con esta limpieza, una más para aprender.
Abrimos el archivo “Columna Dinámica Ejercicio Práctico.xlsx” -> Seleccionamos las celdas 
A1:B28” -> Datos -> Obtener y transformar datos -> Desde una tabla o rango -> Aceptar
Con los datos cargados al editor en la primera columna -> Deshabilitamos filas nulas y Totales.
Aceptar. Para este caso en especial vamos a necesitar una columna adicional, ya que 
inicialmente indicamos que se necesita mínimo dos columnas para trabajar con columna 
dinámica (Una columna “x” y otra numérica), falta la columna numérica, aunque si no se tiene 
la numérica, Power Query nos permite realizar solo el cálculo de conteo.
Nos dirigimos a la Pestaña Agregar Columna -> Columna de índice -> Desde 1
x
    165/742
    Ahora procedemos con nuestra columna dinámica:
▪ Seleccionamos la columna “Nuevos Gerentes País” -> Transformar -> Columna dinámica. 
Ver figura 5.27 
▪ Columna de valores: Información
▪ Función de valor agregado: No agregar
Como el campo Información es una columna de texto, todas las opciones de cálculo no están 
habilitadas, debemos seleccionar -> No agregar, es la opción que mostrará todos los datos.
x
x
    166/742
    Aceptar. Los encabezados de filas de la columna “Nuevos Gerentes País” pasaron a ser 
encabezados de columnas.
Seleccionamos desde la columna Apellido hasta fecha de ingreso -> Clic derecho ->Rellenar -> 
Hacia arriba. Veamos.
Si damos un recorrido por la tabla a este momento, parece que se halla desajustado, el nombre 
no esta paralelo al apellido, ni a los demás datos, por esto aplicamos -> Rellenar -> Arriba
Columna nombre -> Filtramos ->Quitamos los nulos y Aceptar.
x
x
    167/742
    Aceptamos y solo decoramos nuestra consulta:
▪ Eliminamos la columna Índice
▪ Campo Nombre – Apellido – País -> Formato texto
▪ Campo Hora de Trabajo/Mes – Cobro Hora -> Formato Número entero
▪ Fecha de Ingreso -> Formato fecha
Cerrar y cargar y listo, ¡todo un trucaso!, datos en la mesa para ser consumidos.
Power Query o el proceso ETL es el primer paso que se debe realizar para la inteligencia de 
negocios, ya que limpia y deja los datos listos para realizar cálculos y luego presentar la 
información gráficamente, pero también como herramienta de BI (Business Intelligence), puede 
realizar múltiples análisis y entre ellos está el agrupamiento de datos y la creación de columnas 
personalizadas.
Si en una tabla de datos transaccional, necesitamos resumir o consolidar datos de una o más 
columnas, fácilmente lo podemos lograr por la opción Agrupa Por.
Abrir archivo -> Agrupación de datos.xlsx.
    168/742
    La columna LINEA tiene varias transacciones que se repiten, lo mismo PRODUCTO, el objetivo 
es tener de esta base, una tabla con los datos agrupados, resumidos y sumados.
Tabla 1 -> Datos -> Obtener y transformar datos -> Desde una tabla o rango
Dentro de la consulta -> Pestaña Transformar -> Agrupar por.
Agrupación básica
Parametrizamos una agrupación básica para el campo LINEA:
x
    169/742
    Agrupo por: LINEA -> Nuevo nombre de columna: Suma LINEA -> Operación: Suma -> Columna: 
VALOR
Uno decide que columna Agrupar, el nombre que se le quiera dar, la operación y la columna que 
va a sumar.
Aceptamos y efectivamente todos nuestros datos se han reducido a 3 filas, veamos.
¡Advertencia! La última opción de elegir la columna depende del tipo de operación 
que escojas, es decir, si quieres operar una suma, la columna debe ser un campo 
numérico, de lo contrario va a salir error. Para seleccionar una columna de tipo 
texto la operación debe ser solo de recuento o mostrar todas las filas
x
    170/742
    Agrupación Avanzada
Dentro de la misma consulta vamos a realizar una agrupación avanzada, solo es agregar algunos 
parámetros adicionales y listo.
Editemos el paso que acabamos de realizar en Configuración de consultas 
Clic en el engranaje -> Seleccionamos la opción Avanzado ->Agregamos una nueva agrupación
x
x
    171/742
    Aceptamos y tenemos un nuevo panorama, se han consolidado la LINEA y PRODUCTO.
También podemos agregar un nuevo cálculo a los datos, otro nivel de análisis.
Calculemos el número de ventas que tuvo cada producto:
▪ Clic en el cuadro de Pasos aplicados -> Engranaje filas agrupadas. Ver figura 5.41
▪ Agregar agregación -> Recuento de filas -> Aceptar
X
x
    172/742
    Tenemos una nueva columna con un dato importante: # Ventas por Item.
Así podemos realizar diferentes cálculos para nuestra agrupación de datos.
Cerrar y cargar. Datos agrupados para ser procesados.
De 43 filas que tenía la tabla inicial, con la agrupación, solo quedan 10.
A cualquier nivel se puede llevar la agrupación de datos
x
    173/742
    CAPÍTULO 6 
Después de este capítulo tú sabrás:
▪ Identificar las diferentes propiedades de cada consulta
▪ Duplicar consultas
▪ Ordenar las consultas
▪ Actualizar consultas de manera automática
El manejo adecuado de las consultas va a ser relevante cuando en nuestros archivos tengamos 
muchas a la vez, debemos tener un buen manejo de estas en su ordenación, actualización y 
modificación para aumentar nuestra productividad con los datos.
Una de las grandes ventajas de Power Query, lo podemos programar para que se actualice cada 
n tiempo, o directamente desde la programación de macros en Excel.
Las consultas tienen propiedades importantes que nos ayudaran a automatizar aún más 
nuestras labores diarias. Pero antes de dar un recorrido por ellas, vemos la diferencia entre una 
consulta y una conexión.
Abrir archivo “Propiedades de la consulta.xlsx” de la carpeta Capítulo 6
El archivo muestra dos hojas, Hoja 1 datos en tabla, Hoja 2 es una consulta de Power Query.
Consulta. Es la carga de datos que realizamos de diferentes fuentes de 
información dentro del archivo de Excel o en Power BI, todo lo visto en los capítulos 
anteriores son consultas
Conexión. Es la vinculación directa que realizamos a una consulta
.
    174/742
    Cuando estamos en un archivo que contiene una consulta, en la parte derecha debe salir el 
listado de consultas y conexiones que se encuentran en dicho libro. En caso de que no esté 
visible este panel los podemos mostrar:
Pestaña Datos -> Grupo consultas y conexiones -> Consultas y conexiones
Con esta opción todas las consultas y conexiones existente en el libro salen a la vista.
x
x
x
    175/742
    Con las consultas visibles, y dando clic derecho sobre ella, vemos alguna de sus opciones
▪ Copiarla y pegarla
▪ Editarla
▪ Eliminar la consulta
▪ Cambiar nombre
▪ Actualizar datos
▪ Cambiarle el tipo de carga
▪ Duplicarla
▪ Crear grupos de consultas
▪ Parametrizar propiedades
Probemos una de ellas, clic en Duplicar.
Al dar clic, nos abre el editor de consultas, como una consulta nueva para aplicar el proceso ETL 
por el cual decidimos crear una copia.
x
    176/742
    Damos clic derecho en la consulta VENTAS (2) -> Cambiar nombre -> Consulta Duplicada
Cerrar y cargar. Contamos con dos consultas exactamente iguales.
En el capítulo 3, figura 3.16, explicamos la actualización de las consultas, esto es de una manera 
manual, ya que el usuario debe realizar esta acción. Power Query tiene la opción de automatizar 
dicho proceso:
Actualizar cada “X” tiempo
Dentro de las propiedades de la consulta, indicamos a Power Query un tiempo determinado 
para activar la actualización.
Clic derecho en la consulta -> Propiedades -> Habilitamos Actualizar cada -> digitamos tiempo 
en minutos para que se ejecuta la actualización.
    177/742
    Aceptamos. Podemos hacer la prueba programando que se actualice cada minuto, para ver 
dichos cambios. Así podemos programar cada una de las consultas.
x
Nota. Esta opción que nos brinda Power Query es muy útil en diferentes escenarios, 
en especial cuando tenemos consultas desde la Web, para una actualización 
constante, pero debemos tener en cuenta que solo funciona solo SI el archivo de 
Excel está abierto. Este parámetro no está habilitado en Power BI
    178/742
    Actualizar consultas con macros VBA
Si ya poseemos muchas consultas dentro de Excel y no deseamos optar por que se actualicen 
cada determinado tiempo, o el archivo lo compartimos con otros usuarios que no poseen 
mucho conocimiento en el tema, podemos crear un código en Visual Basic, es decir, una macro 
en Excel y anclarla a un botón y de allí generar la actualización.
Volvamos al archivo donde estamos trabajando y vamos a entrar al editor de Visual Basic
ALT + F11 -> Insertamos un módulo, ver figura siguiente
Estando en el módulo vamos a ingresar el siguiente código:
Sub Actualizar_Consultas()
 ActiveWorkbook. Connections("Consulta - VENTAS").Refresh
 ActiveWorkbook. Connections("Consulta - Consulta Duplicada").Refresh
 MsgBox "Consultas Actualizadas", vbInformation, "Inteligencia de negocios"
End Sub
x
    179/742
    Expliquemos un poco el código:
▪ ActiveWorkbook: Activa el libro actual
▪ Connections: Detecta las conexiones que hallan dentro del libro
▪ ("Consulta - VENTAS"): Se define el tipo de conexión, es una consulta, separado de un 
guion como regla de la macro seguido del nombre de la consulta. El nombre de la 
consulta debe ser exactamente igual, tanto en mayúscula como en minúscula
▪ Refresh: Ejecutamos la acción de que se actualiza cada consulta
La misma línea de código se repite para cada consulta y al final puedes poner un mensaje 
informativo para indicar el proceso ha finalizado.
Por último, solo nos queda anclar dicho código a un botón o imagen para que se ejecute dentro 
de una hoja de Excel.
Seleccionamos la Hoja 1, donde se encuentra la base inicial, insertamos una forma.
La ubicamos en la hoja, clic derecho -> Asignar macro -> Seleccionamos la macro -> Aceptar
x
    180/742
    Editamos la figura -> Clic derecho editar texto -> “ACTUALIZAR CONSULTAS”
Ubicándonos en cualquier otra celda, damos clic el botón
Las consultas empiezan su estado de actualización, aceptamos y consultas cargadas
Recuerda guardar el libro con extensión .xlsm, libro habilitado para macros.
x
x
    181/742
    Hemos hablado acerca de tablas transaccionales y tablas maestras, podemos encontrar solo 
tablas transaccionales, si necesitamos una tabla maestra de otra tabla no tenemos ningún 
inconveniente, Power Query tiene la posibilidad de convertir una columna de una consulta en 
una nueva consulta.
Con el mismo archivo en que venimos trabajando en este capítulo, vamos al editor de consulta.
Clic derecho en consulta VENTAS -> Editar.
Entrando en Power Query, vamos a crear los maestros como consultas independientes.
Los maestros son: Vendedores – Ciudad - Producto - Línea
Seleccionamos la columna NOMBRE VENDEDOR -> Clic derecho -> Agregar como consulta 
nueva
x
    182/742
    Nos lleva a una nueva pestaña -> Herramientas de lista -> Transformar -> Quitar duplicados.
Ya tenemos los datos únicos, convertimos la lista en una tabla para que ya haga parte de una 
consulta más.
A la tabla -> Seleccione o escriba el delimitador -> Ninguno -> Como controlar columnas 
adicionales -> Acumular en la última columna.
Eliminamos la última columna -> Cambiar nombre de Columna 1 por -> “VENDEDORES” .
x
x x
    183/742
    Cambiamos el nombre de la consulta -> Clic derecho sobre la consulta NOMBRE VENDEDOR -> 
Cambiar nombre -> “Vendedores”
Cerrar y guardar, y hemos creado una tabla maestra de vendedores, con la ventaja si ingresa un 
nuevo vendedor a la tabla ventas, se actualiza y la tabla maestra de vendedores se alimenta 
automáticamente.
x
    184/742
    Con 3 consultas cargadas hasta el momento, vamos a repetir el mismo proceso anterior para 
generar los maestros: Ciudad - Producto - Línea
Clic derecho en la consulta VENTAS -> Editar, repetimos los pasos de la figura 6.11 a 6.15
Tu panel de consultas y conexiones debe estar ahora así
Cada vez que hagas una nueva consulta, se va acumulando en el panel Consultas y conexiones.
A través del tiempo esto puede traer confusiones, lo mejor es organizarlas de tal forma que se 
puedan identificar fácilmente, vamos a ordenarlas por grupos:
x
    185/742
    ▪ Consultas Transaccionales
▪ Consultas maestras
Procedamos. Primero vamos a agrupar las consultas Transaccionales.
Seleccionamos la consulta VENTAS -> Clic derecho -> Mover a un grupo -> Nuevo grupo.
Nombramos el grupo como -> Consultas Transaccionales.
x
    186/742
    Al aceptar nos genera un tipo de carpeta, una con la consulta VENTAS y por defecto las otras 
llamadas, Otras consultas.
Movemos la consulta -> Consulta Duplicada para el grupo -> Consultas Transaccionales [1]
Clic derecho sobre la consulta duplicada ->Mover a un grupo -> Seleccionamos -> Consultas 
Transaccionales.
x
x
    187/742
    El mismo proceso lo realizamos para el resto de las consultas. Creamos un grupo nuevo, llamado 
Consultas Maestras y movemos todas las consultas hacia este grupo.
Tú panel de consultas debe quedar de la siguiente manera:
Con las consultas en grupos, de seguro vas a poder trabajar más cómodamente.
x
    188/742
    CAPÍTULO 7 
Después de este capítulo tú sabrás:
▪ Crear tabla calendario en Power Query
▪ Calcular días entre columnas fechas
▪ Análisis de fecha en filas
▪ Convertir a formato fecha.
Las fechas es una variable muy determinando al implementar Inteligencia de Negocios, muestra 
en el tiempo los comportamientos, variaciones y cambios que tienen múltiples datos para la 
toma de decisiones.
Muchos usuarios han tenido dificultades en trabajar con fechas en Excel, Power Query ha 
desarrollado diversas opciones para trabajar con ellas de manera fácil e intuitiva.
En Power Query como en Power BI, podemos crear una tabla calendario dentro del editor de 
consultas, con el objetivo de crear tablas relacionables en el modelo de datos, en la parte II de 
este libro vas a poder estudiar a profundidad este tema, lo que nos compete en el momento es 
realizar nuestro análisis de fechas en Power Query. Iniciemos.
Crear un libro de Excel nuevo -> Datos -> Obtener datos -> Desde otras fuentes -> Consulta en 
blanco. Ver figura 2.2
Estando en el editor de consulta en la barra de formula vamos a ingresar el siguiente código:
=List.Dates (#date (2018,6,15), 365*1, #duration (1,0,0,0))
En el siguiente capítulo estudiaremos Lenguaje M, comprenderemos las fórmulas.
    189/742
    Desglosemos esta fórmula:
▪ List.Dates: Indica que se va a crear una lista de fechas.
▪ #date (2018,6,15): Parametrizamos el inicio de la fecha Año, mes, día; en este orden
▪ 365*1: 365, son los días de un año y multiplicamos por el número de años a agregar a 
la lista, es decir, es la fecha final.
▪ #duration (1,0,0,0): Es el incremento de una fecha a otra días, horas, minutos, segundo, 
en este orden va aumentar cada fecha, para nuestro caso va crecer diaria.
Seleccionamos la fecha 15/06/2018, es una fecha muy importante para nosotros, fue el 
lanzamiento de este sorprendente libro.
Con una sola fórmula ya hemos creado un listado de fechas, llevamos la lista a la tabla, para 
formar estas fechas a un mayor detalle.
En la misma herramienta de lista -> Clic A la tabla. Ver figura 7.1
Aceptamos y se ha cargado la información. Cambiar nombre de Columna 1-> Fecha -> Formato 
fecha -> Cambiar nombre de consulta 1 a-> Tabla calendario
x
    190/742
    Con las pestañas de Power Query vamos a agregar nuevas columnas o transformar la columna 
fecha actual, es decir, vamos a ir a la pestaña Agregar Columna, para expandir y terminar la tabla 
calendario.
Vamos a detallar en lo máximo el campo fecha y así paso a paso vamos creando el objetivo.
Seleccionamos la columna Fecha -> Pestaña Agregar Columna ->Fecha.
x
x
    191/742
    Hay un abanico completo para agregar columnas de fecha, puedes desglosarla desde año hasta 
día, demos un paseo por cada ítem:
Año
▪ Año: Agrega una columna con el número de año que tiene cada fecha
▪ Inicio del año: Indica el día en que dicho año comienza. Ejemplo: 1/01/2018
▪ Final del año: Arroja la fecha en que termina el año agregado. Ejemplo 31/12/2018
Para este caso agregamos la opción año a la tabla calendario.
xx
x
    192/742
    Mes
Ahora desplegamos el Mes. Para esto debemos siempre estar con la columna Fecha 
seleccionada, y así se habilita la opción Fecha.
▪ Mes: Trae el mes en número de la fecha seleccionada
▪ Inicio Mes: Se indica en qué fecha comienzo dicho mes, ejemplo, si tenemos la fecha 
15/06/2018, nos arroja 01/06/2018
▪ Fin de mes: Trae en qué fecha termina la fecha seleccionada
▪ Días del mes: Calcula cuantos días tiene dicho mes, 28, 30 ó 31.
▪ Nombre del mes: Pone el mes en texto, enero, febrero…
Para nuestra tabla calendario, seleccionamos la opción Mes y Nombre mes.
x
x
    193/742
    Trimestre
Analicemos las 3 opciones del Trimestre.
▪ Trimestre del año: Trae el trimestre a que pertenece cada fecha seleccionada
▪ Inicio del trimestre: Según el trimestre al que pertenece la fecha, calcula en qué fecha 
inicia dicho trimestre
▪ Final del trimestre: Según el trimestre al que pertenece la fecha, calcula en qué fecha 
termina dicho trimestre
Para nuestro caso solo seleccionamos Trimestre.
x
x
    194/742
    Semana
Todo se analiza con la columna fecha seleccionada, vamos a ver las opciones de la semana.
▪ Semana del año: De las 52 semanas que contiene cada año, lleva una columna con la 
semana que corresponde la fecha seleccionada
▪ Semana del mes: Trae la semana que corresponde dicha fecha del mes, ejemplo, para la 
fecha 15/06/2018, la semana del año de esta fecha es la 24, la del mes es la 3
▪ Inicio de la semana: Según la fecha indicada, trae el día en que comienza la semana, 
para el mismo ejemplo anterior, la fecha en que comienza la semana 24 es 11/06/2018
▪ Final de la semana: Partiendo de una fecha, y según el número de semana en que se 
encuentra, trae la fecha en que finaliza esta semana, siguiendo el ejemplo de 
15/06/2018, esta semana terminaría el 17/06/2018.
Para este caso solo elegiremos Semana del año y Semana del mes
Y así va la tabla de calendario.
x
    195/742
    Día
Repetimos los procesos anteriores para ver las opciones día.
▪ Día: Trae el número de día de la semana, enumeradas del 1 al 7
▪ Día de la semana: Nombra en texto que día de la semana pertenece la fecha, lunes, 
martes…
▪ Día del año: De los 365 días que contiene el año, hace referencia que día del año 
pertenece dicha fecha.
▪ Comienzo del día: Se usa en particular para calcular horas o minutos de un día.
x
    196/742
    ▪ Final del día: Funciona igual al anterior, útil para operaciones entre horas.
▪ Nombre del día: Determina en texto el día, es decir, de lunes a domingo.
Para la construcción de la tabla, agregamos día y nombre del día.
Inicio -> Cerrar y cargar
La Tabla calendario ha sido creada exitosamente, la figura siguiente muestra los 365 días que 
ha arrojado a Excel, desde la fecha indicada hasta el número de años que le indicamos.
Nota. El mismo proceso que se realizó para crear una tabla calendario, funciona de 
la misma manera para Power BI, en la parte II de este libro, explicaremos otra forma 
de crear esta tabla en Power BI
    197/742
    Calcular el tiempo que han pasado entre dos fechas, es muy común en muchas tareas diarias, 
Power Query tiene esto muy claro, por eso trae una serie de herramientas para calcular días 
entre fechas y lo mejor, de la misma manera que hemos venido trabajando, solo con la interfaz 
y a unos cuántos clics.
En el mismo Capítulo 6, iniciemos con el archivo “Calculo de días entre fechas.xlsx” 
La tabla contiene la información de unas facturas, con su fecha de Factura, Vencimiento y el 
valor factura. El objetivo es calcular el plazo que tiene cada factura, y a hoy (23/05/2018)
cuántos días falta para su vencimiento o si ya está vencida.
Entremos a Power Query conectados desde la tabla
Datos -> Obtener y transformar datos -> Desde una tabla o rango.
x
    198/742
    Convertimos la columna Fecha factura a fecha, ya que esta columna está en formato fecha/hora.
Lo mismo con la columna fecha vencimiento -> Clic sustituir la actual.
Vamos a calcular el plazo que tiene cada factura.
▪ Seleccionamos primero la columna Fecha Vencimiento
▪ Segundo seleccionamos la columna Fecha factura
▪ Pestaña Agregar columna, Opción fecha ->Restar días
Nota. Estos cálculos también se pueden realizar de manera fácil en Excel, pero 
recuerda las ventajas de Power Query, si lo haces con esta herramienta y tienes 
muchos datos el archivo pesa casi igual, ya que los cálculos que realiza Power Query 
son internos, lo que no sucede en Excel, o si estás trabajando en Power BI, 
necesariamente debes hacerlos en el editor
x
¡Advertencia! Las columnas se deben seleccionar en el mismo orden que se indicó, 
Power Query lee el orden de la selección y realiza el cálculo de la misma manera, 
es decir, Fecha Vencimiento – Fecha factura, en este caso el resultado da número 
positivos.
    199/742
    Seleccionamos Restar días, una nueva columna se ha agregado, cambiamos el nombre de esta 
columna -> Clic derecho columna Resta -> Cambiar nombre -> “Plazo”
Más que fácil, con un clic obtenemos el plazo de cada factura.
También queremos calcular al a hoy (23/05/2018) que facturas ya están vencidas y las facturas 
que se encuentran al día. Más sencillo de lo que piensas.
Seleccionar Columna Fecha vencimiento ->Agregar columna -> Fecha -> Antigüedad
xx
x
    200/742
    Efectivamente inserto una columna llamada Antigüedad. Cambiamos formato y nombre.
Clic derecho cambiar nombre -> “Días Vencimiento” -> Clic cambiar formato -> Número entero.
Inicio Cerrar y cargar.
Cambiamos el nombre de la consulta -> “Base Cartera”
Con esta base ya calculada y automatizada, puedes realizar varios escenarios, como por 
ejemplo, generar otra consulta donde solo se muestre las facturas que NO están vencidas.
Seleccionamos la consulta -> Clic derecho -> Duplicar.
Estando en el editor, nos dirigimos a la columna Días Vencimiento y filtramos.
Filtro número -> Menor que… -> Digitamos el número cero “0”
x
x
    201/742
    Aceptamos y listo, una tabla nueva con solo las facturas que están al día. Cambiamos el nombre 
de la consulta por -> “Facturas al día”
Cerrar y cargar y vamos a repetir el proceso para las facturas vencidas, es decir, las que tienen 
días mayor o igual que cero.
Clic derecho en la consulta Base Cartera -> Duplicar -> Filtramos campo Días Vencimiento -> 
Filtro de número -> Mayor o igual que -> cero “0”
x
    202/742
    Cambiar nombre de consulta -> “Facturas Vencidas” -> Cerrar y cargar
x
x
u
x
    203/742
    3 consultas automatizadas con diferentes escenarios y análisis
Obtener diferencias de días entre dos columnas de fechas es muy sencillo con Power Query, lo 
comprobamos en el punto anterior, en este punto debemos calcular la diferencia de días que 
han pasado de una fecha a otra, pero en la misma columna.
Estudiémoslo con un ejemplo.
Necesitamos calcular una columna nueva que reste los días de producción de una fecha a otra, 
según figura 7.26
Power Query debe tomar la fecha de Producción 102 y réstale la fecha de Producción 101.
En la carpeta Capítulo 7, archivo “Cálculo de días en la misma columna.xlsx”, la conectamos 
con Power Query.
Datos -> Desde una tabla o rango.
x
6 días
    204/742
    Cambiamos el formato de Fecha/Hora -> Formato Fecha -> Sustituir la actual
Agregamos una columna nueva -> Agregar Columna -> Columna de índice ->Desde 0
En el cuadro de PASOS APLICADOS, se ha agregado un paso nuevo, llamado Índice agregado, 
Cambiemos el nombre a FechaFila o un nombre personalizado.
Clic derecho sobre el paso aplicado -> Cambiar nombre -> FechaFila
x
x
    205/742
    Le debemos indicar a Power Query que debe agregar una nueva columna de fecha, pero 
desplazándose una fila hacia abajo, es decir, la primera fecha 15/06/2018 que está en la fila 1 
debe pasar a fila 2, para esto es útil la columna índice.
Agregamos una columna personalizada, para realizar dicho movimiento de la columna fecha.
Pestaña agregar columna -> Columna personalizada -> y agregamos la siguiente fórmula.
FechaFila[FECHA]{[Índice]-1}
x
x
    206/742
    Al aceptar, verificamos que se ha creado una nueva columna con las fechas corridas una fila 
abajo. Debes estar extrañado con la fórmula, pero no te preocupes, ya viene un capítulo donde 
te explicamos cada detalle, es lo que llamamos Lenguaje M.
Clic en Columna Personalizada -> Formato Fecha
El objetivo ya está casi resuelto, una nueva columna fecha en Power Query con una fila adelante.
Restemos las dos columnas fechas, seleccionamos primero FECHA, segundo Personalizado, 
estrictamente debe ser en este orden.
Agregar columna -> Fecha -> Restar días. Ver figura 7.17.
Eliminamos las columnas Índice y Personalizado.
x
x
    207/742
    Por último, cambiamos el nombre de la columna Resta por “Días Producción” y eliminamos el 
error de la primera fila.
▪ Clic derecho Cambiar nombre ->Días Producción
▪ Clic derecho -> Reemplazar errores -> Digitamos cero “0” y Aceptar
Cerrar y cargar y tenemos nuestro análisis de días de producción en una sola columna.
x
x
    208/742
    Los formatos fechas que hemos venido trabajando, no han presentado problema, con solo un 
clic en el encabezado el dato queda convertido a fecha. ¿Por qué?, Power Query como en Excel, 
tiene definidas el formato fecha según la configuración regional de cada computador, por lo 
general en Latinoamérica es “dd-mmmm-aaaa”, día, mes y año, en Estados Unidos la 
configuración es “mmmm-dd-aaaa”, mes, día y año. 
Veamos un caso donde debemos cambiar la configuración regional dentro del editor de Power 
Query, ya que la columna que contiene las fechas trae error al convertir a formato fecha.
Si revisamos la FECHA FACTURA del cliente A, vemos que esta 01/30/2018, parece estar en 
configuración inglés, comprobemos e ingreso al editor de Power Query.
Abrimos el archivo de Excel de la carpeta Capítulo 7, “Formato fechas.xlsx.”
Datos -> Obtener y transformar datos -> Desde una tabla o rango.
x
    209/742
    Damos clic en la columna FECHA FACTURA y cambiamos a formato fecha.
En su mayoría las fechas salen como error, como informamos en el inicio de la sesión es por la 
configuración regional.
Para corregir estos errores, debemos ir directamente a la configuración regional de Power Query
x
x
    210/742
    Antes de configurar la región, debemos eliminar todos los pasos aplicados en la consulta.
Usar configuración regional…, es la opción para no tener este tipo de errores.
De nuevo clic en el encabezado de formato de la columna FECHA FACTURA, ver figura 7.37 y 
seleccionamos la última opción, Usar configuración regional…,
▪ En Tipo de datos -> Seleccionamos Fecha
▪ Configuración regional -> inglés (Estados Unidos)
    211/742
    Aceptar y repetimos el mismo paso para la columna FECHA PAGO.
Cerrar y cargar.
x
X
    212/742
    CAPÍTULO 8 
Después de este capítulo tú sabrás:
▪ Objetos, tablas, registros y listas en Power Query
▪ Declaración de variables
▪ Funciones de texto
▪ Funciones lógicas
El Lenguaje M, es el motor de Power Query, todos los movimientos que hemos realizado en la 
interfaz a la hora de limpiar datos generan un código, es lo que expresa internamente en este 
lenguaje las acciones realizadas por el usuario. Hasta este punto las fórmulas que hemos 
aplicado han sido predeterminadas y no conocemos el editor avanzado para programar 
nuestras propias fórmulas, tablas, listas o cualquier otra ejecución para añadir al proceso ETL.
Este capítulo es clave si quieres seguir avanzando en este mundo de Inteligencia de Negocios, 
ya que vamos a ir mar adentro y explorar nuevos lugares y paisajes de esta sorprendente 
herramienta.
Antes de entrar al editor avanzado de Power Query, vamos a comprender un poco sobre los 
objetos, la programación de estas herramientas es enfocado a objetos.
Hay dos tipos de valores:
▪ Valores Primitivos
▪ Valores Estructurados
    213/742
    Valores Primitivos: Los valores primitivos son la forma más simple de un dato, debido a que 
son atómicos lo cual hace referencia que es un pedacito de dato que no es construido a partir 
de otro u otros datos.
Valores Estructurados: Están compuestos por los valores primitivos, que en su conjunto brinda 
un dato único, tal es el caso de una columna que esta compuesta por muchos valores primitivos 
numéricos, pero como conjunto cobra significado real que representa un atributo, por ejemplo, 
puede ser una columna que indica las distintas tallas de ropa de una tienda de ropa.
x
Tipo de Dato (Primitivo) Datos 
Valor Null null
Valor Lógico true false
Valor Numérico 120, -500, 3.1415, 7.9e-21
Valor de Fecha 2/04/2018
Valor de Texto "Laboratorio", "Datos101"
Tipo de Dato 
(Estructurado)
Datos 
Valor Columna (Campo)
Valor Fila (Registro)
Valor Tabla
Valor de Función (x,y) => x+y
    214/742
    Listas
Una lista es una secuencia ordenada de valores primitivos o estructurados, esto quiere decir 
que podemos tener una lista de listas. Las listas pueden ser visualizadas como una columna 
especifica de una tabla.
Podemos crear listas en Power Query, las llaves hacen referencia a una lista {}, es decir, si 
queremos crear una lista de números, los digitamos entre llaves separados por comas, ejemplo: 
{1,2,3,4,5,6}. En caso de que sea texto, van entre comillas.
Abrimos un libro nuevo de Excel o Power BI.
Datos -> Obtener datos -> Desde otras fuentes -> Consulta en blanco.
En la barra de fórmula ingresamos:
= {1, 2, 3, 4, 5, 6, 7, 8, 9}
Enter, Power Query ha creado una lista con esta secuencia de números, y esta lista la podemos 
convertir a una tabla, lo estudiado en el capítulo 6.
Cerrar y cargar. Los resultados en Excel ya la consulta indica que es una lista
x
    215/742
    De la misma forma podemos crear listas:
▪ Texto = { "A" , "B" , "C" , "D" , "E" }
▪ Alfanuméricas = { 1, "A" , 2 , "B" }
▪ Numérica de auto relleno ={1..31}
▪ Texto auto relleno = {"A".."Z"}
▪ Secuenciales con auto relleno ={1..5,9,10,11..20}
▪ Listas de listas ={{1,2},{3,4,7},{7,7},{9,1,2,5}}
Cada una de estas listas las podemos probar en el editor de consulta, creando una nueva 
consulta en blanco.
Si ingresamos cada una de las listas al editor, tenemos un listado de ellas así:
    216/742
    Registros (Record)
Un registro es una secuencia ordenada de campos. Un campo consiste en un nombre de campo, 
esto representa el valor tipo texto que identifica de manera única en el registro, el valor del 
campo puede ser de cualquier tipo. Un registro se puede visualizar como una fila de una tabla 
(con la identificación de sus respectivas etiquetas de columnas).
Abrimos un nuevo libro de Excel -> Datos -> Obtener datos -> Desde otras fuentes -> Consulta 
en blanco.
En la barra de fórmulas ingresamos:
= [A=1,B=2,C=3,D=4]
Sintaxis:
▪ Los datos están encerrados en corchetes.
▪ El primer registro es el encabezado seguido del signo =, el registro siguiente es la fila o 
campo de dicho encabezado
▪ Cada columna y campo están separados por una coma.
▪ Los nombres de las columnas no es necesario que estén entre comillas, en caso de ser 
tipo texto, pero los datos de dichos encabezados si, para textos. Ejemplo: 
=[Nombre="Didier", Ciudad ="Medellín", Años =31]
x
    217/742
    El resultado de los registros en Power Query los lleva en forma horizontal. No hay inconveniente, 
convertimos estos registros a tabla y luego transponemos.
Por último, vamos a la pestaña Transformar -> Transponer -> Usar la primera fila como 
encabezado. Tenemos una tabla con encabezados y datos correctos.
Cerrar y cargar.
También podemos crear varios registros y hacerlos parte de una lista. Ejemplo:
Creemos una consulta en blanco e ingresemos esta fórmula en la barra fx
={[Nombre="Didier",Profesión="Ing.Financiero"],[Nombre="Fabián",Profesión="Ing. 
Industrial"],[Nombre="Miguel”, Profesión="Ing. Industrial"]}
x
    218/742
    Tenemos 3 corchetes encerrados en llaves {}, una lista, cada corchete separado por una coma, 
la lista trae los registros de nombre y profesión.
Convertimos la lista en tabla -> Expandimos la columna -> Deshabilitar Usar nombre de columna 
original como prefijo.
x
x
    219/742
    Aceptamos -> Cerrar y cargar, poseemos una lista de varios registros.
Tablas
Las tablas son una secuencia ordenada de filas y las filas son una secuencia ordenada de valores.
Es una combinación de listas y/o registros.
Veamos. Abrir un libro nuevo de Excel -> Crear una consulta en blanco desde Datos.
Ingresamos esta fórmula:
= #table({"Libro", "Valor"} ,{{"Power Query", 30},{"DAX", 38},{"Power BI", 35}})
Damos enter, y se crea la tabla.
Sintaxis:
▪ #table: Nombre el paso a aplicar como una tabla
▪ Después del paréntesis y entre las llaves se encuentras los dos encabezados de columna
▪ Las 3 llaves siguientes, representan las filas según el orden los encabezados creados.
x
x
    220/742
    Cerrar y cargar. La tabla de datos ya está en Excel
La pregunta que surge es, ¿Cómo Power Query almacena los pasos ejecutados?.
Como cualquier herramienta de programación, Power Query contiene un Editor avanzado, 
donde organiza, almacena y registra cada uno de los pasos, funciones o acciones realizadas por 
el usuario.
Abrimos el archivo que acabamos de crear en el paso anterior. Tablas
Carpeta Capítulo 8 -> Tablas.xlsx -> Nos ubicamos en la consulta -> Clic derecho editar
Dentro del editor de consultas, nos dirigimos a la pestaña Vista -> Editor avanzado.
Al dar clic en Editor avanzado, hemos encontrado como procesa cada paso Power Query
x
x
    221/742
    Hay dos palabras claves en el editor let y la palabra in. Todo lo que está en medio de let e in, es 
el código que se ejecuta.
Let
let indica el anuncio de un bloque de programación (líneas de código) donde se hace la 
declaración de las variables. Cada declaración de variable se indica en su propia sentencia (para 
dividir una sentencia de otra es necesario separarlas por coma (,))
in
Es un bloque de programación donde se indica la variable que arrojará como resultado de la 
consulta, normalmente es una tabla, sin embargo, puede ser un valor primitivo como: 1, “ABC”, 
null o un valor estructurado como una lista o registro (En el in no tiene que ir necesariamente la 
última variable declarada en el let, de hecho, ni siquiera es necesario que vaya una variable declarada 
en el let)
x
    222/742
    La conjunción del bloque let y el bloque in tienen como objetivo arrojar un resultado 
generalmente para la consulta total (aunque sirve como paso intermedio)
Salgamos un momento del Editor avanzado, apliquemos un formato de datos a cada columna.
Clic encabezado Libro -> Formato texto.
Clic encabezado Valor -> Formato número entero.
Volvemos al Editor avanzado -> Vista -> Editor avanzado. Ver figura 8.13.
Al cambiar el tipo de dato a las dos columnas, Power Query añadió este paso, al panel de PASOS 
APLICADOS, nombrado como “Tipo cambiado” y en el editor avanzado, realizó un código 
interno comenzado con un # y agregando el nombre del paso entre comillas, ya que el nombre 
está separado por un espacio, después del igual es lo que llamamos Lenguaje M.
A medida que vamos realizando acciones en la consulta, se va añadiendo estos pasos creados 
como códigos en el editor avanzado, y el último paso agregado es el final después del in.
x
    223/742
    Creación de Bloques
Realicemos algunos ejemplos, creando algunos bloques simples y así comprenderemos un poco 
más el lenguaje M. 
Abrimos un libro de Excel nuevo -> Datos -> Desde otras fuentes -> Consulta en blanco
Vamos a vista -> Editor avanzado e ingresamos este código
Damos clic en listo y nos lleva de vuelta al editor con estos pasos ejecutados.
let
 x = 8,
 y = 10,
 z = x+y
in
 z
x
    224/742
    El resultado del código es 18, ya que la variable x= 8, y=10, z= x+y. Adicional Power Query deja 
registrado en el panel de PASOS APLICADOS cada uno de los pasos ejecutados.
Si convertimos este resultado a una tabla, de nuevo se ingresa un paso nuevo.
Convertimos a tabla el resultado -> Vista -> Editor avanzado
La figura 8.17 muestra el paso creado de tabla.
▪ #"Convertida en tabla": Nombre del paso creado, este puede cambiar si deseamos.
▪ #table(1, {{z}}): Convierte a tabla el resultado z(18), con una columna.
Cerrar y cargar, y este resultado se ha creado como tabla.
Ejemplo 2:
También podemos realizar una serie de pasos en M, pero el resultado final sea una lista.
En el mismo libro de Excel que estamos trabajando, creemos de nuevo una consulta en blanco 
e ingrese este código en el editor avanzado.
x
    225/742
    Aunque el código es el mismo del anterior, el resultado final es una lista, ya que fue la indicación 
que dimos después del in.
let
 x = 8,
 y = 10,
 z = x+y
in
 {1,2,3}
x
Nota. El código que se ingresa después de la instrucción let, no siempre va a ser el 
resultado en la consulta, ya que todo depende de la salida o instrucción que 
ingresemos después del in, es decir, si después del in va una variable o acción 
totalmente diferente a lo hecho en el let, es este último el que arroja como resultado.
    226/742
    Ejemplo 3:
Dentro del código M tenemos la posibilidad de ingresar un let y un in, dentro de otro let y otro 
in. Creemos una consulta en blanco e ingresemos este código en el editor avanzado.
let
 i = 1,
 j = 7,
 k = (i*2)+(j/2),
 
 SalarioReal=
 let
 a=10,
 b = a+(a*0.1)
 in
 b
 in
 SalarioReal - k
x
    227/742
    El resultado es 5,5. Si haces toda la operación del primer let el resultado es 5,5, y el resultado 
de la variable SalarioReal es 11, al final restamos SalarioReal-k=5,5.
Cerrar y cargar. Con 3 ejemplos claros podemos comprender lo extenso que puede ser el
lenguaje M, todo un mundo por explorar, así como en Excel, no tiene límites, hasta donde tu 
quieras llegar en fórmulas, matrices, tablas, macros, gráficos lo puedes hacer, pero no te 
preocupes, queremos darte la mejor introducción a este gran mundo y poco a poco vamos 
juntos avanzando.
Declaración de variables
Una variable es un espacio en memoria para almacenar algo.
En Visual Basic es necesario definir las variables para detectar el tipo de dato y tamaño que se 
va a almacenar. Por ejemplo :
Dim x AS Integer 
▪ Dim: Indica el comienzo de una variable.
▪ x: Es el nombre de la variable
▪ AS Integer: El tipo de dato a almacenar
Nombres de variables
Las variables pueden tener un único nombre o un nombre compuesto, solo que si el nombre es 
compuesto al inicio se pone el símbolo # y entre comillas el nombre de la variable.
Ejemplos :
Nota. En el lenguaje M no existe la necesidad de una palabra reservada que indica 
que se va a declarar una variable, ya que van siempre dentro de un bloque let que 
señala que todo lo que va allí son variables. Tampoco existe la necesidad de indicar 
el tipo de dato, el internamente detecta que tipo es.
    228/742
    ▪ Salario =100
▪ #”Salario Base”= 300
▪ #”Fecha actual”= #date(2018,6,15)
Caracteres en el editor avanzado
Antes de iniciar con funciones, debemos entender los diferentes caracteres que hemos visto en 
la introducción del Editor avanzado:
▪ (Paréntesis) (): Hace referencia a una función
▪ {Lista} {}: Son los datos que hacen parte de la lista
▪ [Registros] []: Indica encabezados de columna o registros de datos
▪ #”Paso aplicado”: Son nombres de los pasos aplicados u otros pasos internos de Power 
Query, tales como #date
▪ “Texto”: Todos los textos deben estar entre comillas, tal como funciona en las fórmulas 
de Excel.
▪ //Comentario: // Si se quiere informar algo sobre dicho código, algún comentario o 
indicación, se pone al final de la línea de código.
▪ /* Comentario para varias líneas de código*/: Se comentan varias líneas de código al 
mismo tiempo. Se ingresa /* en la primera línea y */ en la línea de código final.
Funciones básicas
Iniciemos con las funciones básicas en Power Query, cálculo aritméticos, son relativamente 
sencillos de realizar dentro de la interfaz y en el editor avanzado.
Abrimos el archivo “Funciones básicas.xlsx”, se encuentra en la carpeta Capítulo 8.
Tenemos la tabla de Producción la cual se limpió en el capítulo 3.
Datos -> Obtener y transformar datos -> Desde una tabla o rango
Iniciamos convirtiendo el tipo de datos Fecha a: Fecha de envío y Fecha de Llegada.
    229/742
    Dentro del editor de Power Query seleccionamos las 3 columnas de costos, para calcular el 
costo total.
▪ Seleccionamos Costo del Producto CTRL -> Costo de Envío CTRL -> Costo Empaque
▪ Pestaña Agregar columna -> Estándar ->Sumar
Con solo estos pasos obtenemos una nueva columna de adición -> Clic derecho cambiar 
nombre -> “Costo Total”
Otra forma de realizar esta operación es mediante columna personalizada.
Agregar columna -> Columna personalizada. Cambiamos nombre -> Costo Total 2 ->[Costo de 
Envio]+[Costo Empaque]+[Costo del Producto]
x
x
    230/742
    En este caso funciona como Excel, pero ya no señalamos celdas, sino encabezados de 
columnas, con doble clic o insertar, llevamos los campos al panel de fórmulas de columnas 
personalizada.
Otra manera de realizar operaciones aritméticas.
Echemos un vistazo al código en el editor avanzado.
x
    231/742
    Hemos organizado un poco este código, y aún así parece algo muy complejo de entender, pero 
no, si sigues paso a paso la introducción al lenguaje M, de seguro lo vas a entender. ¿Pero si no 
lo logramos entender?, puedes pensar esto, te doy la respuesta con otra pregunta, ¿Has 
necesitado del Editor avanzado en estos 8 capítulos?, la respuesta es NO, con la interfaz y 
algunos trucos hemos logrado todo esto, seguimos avanzado y poco a poco sumaremos 
experiencia en esta gran herramienta.
Ahora entiendo lo sencillo que es realizar cálculos básicos, vamos a realizar las siguientes 
operaciones:
▪ Venta: [Precio de Venta]*[Unidades]
▪ Costo Total Pdcción: [Costo Total]*[Unidades]
▪ Utilidad:[Venta] - [Costo Total Pdcción]
▪ Utilidad %: [Utilidad]/[Venta]
Las operaciones básicas de suma, resta, división y multiplicación funcionan de la misma manera 
que la función restar días, es decir, en el orden que se seleccione las columnas de esa misma 
forma realiza la operación. Ver figura 7.17.
    232/742
    Funciones de texto.
Al igual que Excel, Power Query tiene una variedad de funciones de texto para ser aplicados en 
el proceso ETL, dichas funciones al igual que las básicas, se pueden aplicar de diferentes 
maneras.
Iniciemos con el libro de Excel “Funciones de texto.xlsx” del capítulo 8.
Creamos una consulta desde la tabla.
Datos -> Obtener y transformar datos -> Desde una tabla o rango.
Hay una columna llamada DATOS, hay 3 tipos de datos allí: NIT – CODIGO -FECHA
Tomemos de ejemplo el primer registro: 900271AS96-18/07/2018.
Todo está en la misma columna, debemos separar los datos de tal manera que los registros 
queden por separados. 900271 | AS96 | 18/072018.
La forma más sencilla y habitual es ir a la pestaña Agregar -> Extraer.
x
    233/742
    ▪ Largo: Extrae el número de caracteres que contiene cada registro, en Excel es la misma 
función LARGO. En el lenguaje M la función es: Text.Length(Columna)
Seleccionemos la columna DATOS -> Agregar columna -> Extraer -> Largo
Vamos a escribir la fórmulas en una columna personalizada.
Agregar Columna personalizada -> Text.Length([DATOS])
Da como resultado el mismo objetivo
x
    234/742
    ▪ Primeros caracteres: Extrae los caracteres que contiene cada registro según el número 
indicado de izquierda a derecha, en Excel es la función IZQUIERDA. En el lenguaje M la 
función es: Text.Start(Columna, Número de caracteres a extraer)
Seleccionar la columna DATOS ->Agregar columna -> Extraer -> Primeros caracteres -> 6
Aceptamos y efectivamente se agrega la columna con la extracción de los primeros 6 
caracteres.
Podemos realizar esta misma acción con la fórmula en una columna personalizada.
Agregar columna personalizada -> Nombramos “Izquierda” -> Text.Start([DATOS],6)
    235/742
    Dos columnas iguales de dos maneras diferentes de realizarlo.
▪ Últimos caracteres: Extrae los caracteres que contiene cada registro según el número 
indicado de derecha a izquierda, en Excel es la función DERECHA. En el lenguaje M la 
función es: Text.End(Columna, Número de caracteres a extraer)
Seleccionar la columna DATOS ->Agregar columna -> Extraer -> Últimos caracteres -> 10.
Es el número de caracteres que contiene la fecha.
x
    236/742
    Cambiamos el tipo de dato a Fecha.
Realizamos este misma operación con columna personalizada.
Agregar columna personalizada -> Nombramos “Derecha” -> Text.End([DATOS],10)
Cambiar forma a fecha.
▪ Rango: Extrae los caracteres de cualquier posición del texto, en Excel es la función 
EXTRAE. En el lenguaje M la función es: Text.Range(Columna, Posición a iniciar a extraer 
,Número de caracteres a extraer). También sirve la función Text.Middle.
xx
¡Advertencia! Estas funciones en Power Query trabajan en base cero, es decir, si 
vamos a extraer del texto 900271AS96-18/07/2018, solo necesitamos el código 
AS96, el primer carácter que es la “A”, sería en términos normales el número 7, 
para Power Query, es el número 6, ya que el primer carácter lo cuenta como 
número cero. 0,1,2,3…
    237/742
    Seleccionar la columna DATOS ->Agregar columna -> Extraer -> Rango ->Índice inicial :6 -> 
Número de caracteres: 4
Ahora probemos con la fórmula.
Agregar columna personalizada -> Nombramos “Extrae” -> Text.Range([DATOS],6,4)
O con la función -> Text.Middle([DATOS],6,4)
x
x
    238/742
    Estas son las funciones básicas de extracción de textos o registros, útil para separar o 
transformar campos de columnas.
Estudiemos otro bloque de funciones de texto, nos van a ayudar a dar un mejor formato a los 
datos, tales como letras en mayúsculas, minúsculas, nombres propios, quitar espacios y 
caracteres especial que no deben ir en el texto.
Pestaña Agregar columna -> Formato.
▪ Minúsculas: Convierte todo el texto a minúsculas, la fórmula en Excel es MINUSC(), en 
M es Text.Lower().
Seleccionamos la columna PRODUCTO -> Agregar columna ->Formato -> minúsculas.
Así de simple, uno par de clic y toda una columna se ha agregado con los textos en minúsculas.
Agregamos esta fórmulas directamente en una columna personalizada.
Agregar Columna personalizada-> Cambiar nombre -> Texto Minúscula -> 
Text.Lower([PRODUCTO]).
    239/742
    De estas dos formas podemos tener las columnas convertidas a minúsculas.
▪ MAYÚSCULAS: Convierte todo el texto de minúsculas a Mayúsculas, la fórmula en Excel 
es MAYUSC(), en M es Text.Upper().
Seleccionamos la última columna Texto Minúsculas -> Agregar columna ->Formato -> 
MAYÚSCULAS.
x
    240/742
    Agregamos esta fórmulas directamente en una columna personalizada.
Agregar Columna personalizada-> Cambiar nombre -> Texto Mayúscula-> Text.Upper([Texto 
Minuscula]).
▪ Poner En Mayúscula Cada Palabra: Convierte la primera letra de cada palabra en 
mayúscula, la fórmula en Excel es NOMPROPIO(), en M es Text.Proper().
Seleccionamos la última columna Texto Mayúscula -> Agregar columna ->Formato -> Poner En 
cada Mayúscula Cada Palabra.
Agregamos esta fórmulas directamente en una columna personalizada.
Agregar Columna personalizada-> Cambiar nombre -> Nombre Propio-> Text.Upper([Texto 
Mayúscula]).
    241/742
    ▪ Recortar: Quita espacios iniciales y finales en cada texto, la fórmula en Excel es 
ESPACIOS(), en M es Text.Trim(). Ejemplo Text.Trim([DATOS]).
▪ Limpiar: Quita caracteres especiales dentro de una cadena de texto, la fórmula en Excel 
es LIMPIAR (), en M es Text.Clean(). Ejemplo Text.Clean([DATOS]).
Si deseamos saber más sobre fórmulas de Power Query damos clic en Información Sobre 
fórmulas de Power Query, a la hora de agregar una columna personalizada.
x
x
    242/742
    Funciones Lógicas.
Las funciones lógicas son muy usadas en Excel, ya que ayudan a validar datos para arrojar un 
resultado final. Power Query tenía esto claro desde la creación de esta herramienta, y no fue 
ajeno a la necesidad, como todo lo visto anteriormente, las funciones lógicas en este nuevo 
Power de Excel y Power BI se usan de manera muy fácil, tanto desde la interfaz como en la 
programación en M.
Abrimos el libro de Excel “Funciones Lógicas.xlsx” hoja Lógica 1, de la carpeta capítulo 8.
Datos -> Obtener y transformar datos -> Desde una tabla o rango.
Estando en el editor de consultas, vamos a Agregar columna -> Columna condicional.
¡Advertencia! Las fórmulas en Power Query deber ser digitada con exactitud, es 
decir, Power Query diferencia las mayúsculas de minúsculas, por ende si no se 
escriben de tal manera, saca un error.
Su cuadro de diálogo con las funciones no es como Excel, te acepta el nombre de 
la función de cualquier forma, y no tiene auto ayudas o guía para usar cada función
x
    243/742
    En la tabla tenemos el siguientes escenario, las ventas mes a mes y el presupuesto. Vamos a 
validar si las ventas fueron mayores o iguales al presupuesto y agregar una nueva columna, 
donde informe si CUMPLIÓ o NO CUMPLIÓ.
Al ingresar un columna condicional, debemos parametrizar:
▪ Nuevo nombre de columna: Es un nombre opcional para el nuevo campo de columna
▪ Nombre de columna: Seleccionamos la columna a validar, en este caso es VENTA.
▪ Operador: El tipo de comparación a realizar, mayor que, mayor o igual que, menor que, 
menor o igual que, igual o no es igual. Para el ejemplo es mayor o igual que.
▪ Valor: Podemos escribir un valor fijo o hacer la comparación con otra columna. 
Seleccionar columna -> PRESUPUESTO.
▪ Salida: El resultado es la variable de salida, si esta condición se cumple digitamos 
CUMPLIÓ.
▪ De lo contrario: Es el resultado contrario si no cumple la validación. NO CUMPLIÓ.
x
    244/742
    Con todos los parámetros digitados, damos aceptar y una nueva columna con validación lógica 
está en la consulta.
Tenemos la otra opción de realizarlo escribiendo directamente la fórmula en una columna 
personalizada, en M la fórmulas es así:
Agregar columna personalizada -> Cambiar nombre -> ESTADO 2 -> Ingresar esta fórmula -> if 
[#"VENTA "]>= [PRESUPUESTO] then "CUMPLIÓ" else "NO CUMPLIÓ"
x
    245/742
    La fórmula funciona casi igual que al Excel, solo que en este caso es en inglés, primero válida la 
columna VENTA si es mayor o igual al campo PRESUPUESTO, si es verdadero “CUMPLIÓ”, de lo 
contrario “NO CUMPLIÓ”.
Y de esta misma manera podemos validad ya sean entre columnas, o columnas con números o 
textos fijos. Aceptar y tenemos el mismo resultado.
x
    246/742
    Funciones Lógicas Anidadas.
Uno de los retos de todo usuario de Excel, es aprender a anidar funciones, en especial las 
funciones lógicas, hasta el momento solo hemos visto funciones simples, ahora veremos de 
nuevo como Power Query abarcó la unión o validación de varios criterios.
Tenemos la siguiente foto:
Los vendedores van a ganar comisión siempre y cuando cumplan el presupuesto o si tienen 
clientes nuevos. Si cumple alguna de estas dos condiciones comisionan, de lo contrario no.
Abrimos el libro “Funciones Lógicas Anidadas.xlsx”, ingresamos Power Query desde la tabla.
Datos -> Obtener y transformar datos -> Desde una tabla o rango.
Estando en el editor de consultas, vamos a Agregar columna -> Columna condicional. Ver figura 
8.41
Parametrizamos la primera parte como en el caso anterior, lo único nuevo es agregar regla.
x
    247/742
    Al agregar regla, se desglosa una nueva parametrización que funciona exactamente igual a los 
visto anteriormente, si el vendedor cumple con alguna de estas dos validaciones GANA, de lo 
contrario NO GANA comisión.
Aceptamos y tenemos la solución.
x
    248/742
    Si validamos el primer registro, el vendedor A no cumplió el presupuesto, pero como tuvo 
clientes nuevos, gana comisión.
Esta misma solución vamos a escribirla en una columna personalizada y así es como la guarda 
el lenguaje M.
Agregar columna personalizada -> Nombre de columna -> COMISION 2 -> Ingresamos esta 
fórmula ->if [VENTA]>=[PRESUPUESTO] then "GANA" else if [CLIENTES NUEVOS]="SI" then 
"GANA" else "NO GANA"
La fórmula valida primero si la VENTA ES >= al PRESUPUESTO, si es verdadero “GANA”, vuelve 
y valida si CLIENTES NUEVO=”SI”, entonces “GANA”, si no cumple ninguna de las dos 
validaciones “NO GANA”.
Dos resultados iguales de formas diferentes.
Power Query permite agregar todos los niveles que sean necesarios para realizar validaciones o 
funciones anidadas de lógica.
x
    249/742
    Tratar errores en fórmulas.
Si al realizar una fórmula, el resultado es un error, en Excel este tipo de errores lo tratamos con 
la función SI.ERROR(), Power Query ha diseñado una función llamada try otherwise para que el 
resultado no sea un error sino una salida que deseamos.
Tenemos una tabla con unas fechas de entrega y unas fechas de pedido, calcular los días que 
hay entre fecha y fecha ya lo manejamos súper bien, pero que sucede si no tenemos unas fechas 
de entrega, nos va a salir error. Veamos.
Faltan dos fechas de entregas pendientes por resolver, hagamos los cálculos de días de las 
fechas haber que sucede.
Abrimos el archivo “Tratar errores.xlsx” en la carpeta capítulo 8.
Datos -> Obtener y transformar datos -> Desde una tabla o rango.
Cambiamos el tipo de datos de las dos fechas a fechas y seleccionamos primero FECHA 
ENTREGA y luego FECHA PEDIDO.
Agregar columna ->Fecha -> Restar días.
x
    250/742
    La columna FECHA ENTREGA ya tiene alguno errores y al realizar este cálculo de restar días, me 
trae los errores en el resultado.
Si al realizar el cálculo ningún resultado debe arrojar error, debemos usar la función try 
otherwise. Agregar una columna personalizada ->Cambiar el nombre por “Días Faltantes” -> 
Escribimos está fórmula : try [FECHA ENTREGA]-[FECHA PEDIDO] otherwise 0
x
    251/742
    Aceptar y cambiar el tipo de dato por número entero.
El error lo hemos reemplazado por cero, también podemos reemplazar el error por otra fórmulas 
o texto. Cerrar y cargar.
x
x
    252/742
    Descargar listado de funciones de Power Query.
Para comprender más sobre las funciones de Power Query podemos entrar al enlace según la 
figura 8.40, o podemos descargar el listado en Excel desde la interfaz de consulta de Power 
Query.
Abrimos un libro de Excel nuevo y entramos a la interfaz desde una consulta en blanco.
En la barra de fórmulas escribimos: = #shared
Convertimos los registros en tabla. Cerrar y cargar y tenemos todo un listado de funciones, 
tablas y tipos de datos que recorrer y estudiar.
x
    253/742
    CAPÍTULO 9 
Después de este capítulo tú sabrás:
▪ Análisis de pedidos con inventarios
▪ Consolidar información contable
▪ Análisis de ventas
Ya después de todo lo visto en esta valiosa herramienta, vamos a realizar algunas aplicaciones 
a la vida diaria en el manejo de datos e informes, esto abrirá un poco tu mente a lo que podemos 
alcanzar con Power Query, a esto llamamos inteligencia de negocios, a automatizar tus 
procesos, a tener análisis y confiables para la toma de decisiones. 
El objetivo es auditar diariamente la cantidad de pedidos ingresado a la empresa y cruzarlo con 
el inventarios disponible para determinar el nivel de respuesta, si con este inventario se suple o 
no la demanda requerida.
Tenemos dos tablas, una de los inventarios disponibles, y la otra tabla es la transaccional de 
pedidos, donde a diario se registran los pedidos de la compañía.
La meta es cruzar los inventarios y consolidar los pedidos por referencia y determinar si dicho 
inventario cubre la cantidad de pedidos.
    254/742
    Abrimos el archivo “Caso 1.xlsx” de la carpeta Capitulo 8, y seguimos estos pasos:
▪ Nos conectamos a la Tabla 1 de la hoja Inventarios .
▪ Datos -> Obtener y transformar datos ->Desde una tabla o rango
▪ Cambiamos el nombre de la consulta por: “Inventarios”
▪ Cerrar y cargar en.. Elegimos solo conexión.
Elegimos solo conexión, porque esa información solo la necesitamos para cruzar con la tabla 
pedidos, más no para arrojar en Excel.
x
    255/742
    ▪ Nos conectamos a la Tabla 2 de la hoja Pedidos .
▪ Datos -> Obtener y transformar datos ->Desde una tabla o rango
▪ Cambiamos el nombre de la consulta por: “Pedidos”
▪ Como es una tabla transaccional, donde los productos pueden repetirse n veces, 
debemos agrupar los datos por CODIGO y NOMBRE.
▪ Pestaña Transformar -> Agrupar por ->y llenamos los parámetros.
Debe ser una agrupación avanzada ya que contiene dos campos: CONDIGO y NOMBRE.
Cambiamos el nombre de la columna, la operación sea suma de la CANTIDAD.
Aceptar y ya tenemos todos los pedidos consolidados.
Combinamos esta consulta con la de inventarios, y así realizamos el cruce la información.
xx
    256/742
    ▪ Inicio -> Combinar consultas -> Combinar consultas
▪ Seleccionamos la consulta Inventarios y escogemos en cada tabla el campo en común, 
en este caso sería el CODIGO.
▪ Aceptar y expandimos la columna Inventarios
▪ Filtramos solo el campo CANTIDAD y deshabilitar Usar el nombre de la columna original 
como prefijo.
x
X
    257/742
    ▪ Cambiamos el nombre de la columna CANTIDAD -> “INVENTARIO DISPONIBLE”
▪ Debemos restar el INVENTARIO DISPONIBLE – TOTAL PEDIDOS, para calcular y 
determinar el estado del inventario.
▪ Seleccionamos la columna INVENTARIO DISPONIBLE y luego TOTAL PEDIDOS -> Agregar 
columna -> Estándar -> Restar
x
    258/742
    ▪ Cambiar el nombre de la columna Resta por “DIFERENCIA INV”
La columna DIFERENCIA INV es el resultado de la diferencia del inventario y el total de pedidos, 
si el resultado es positivo, significa que el inventario disponible puede suplir la demanda, de lo 
contrario es la cantidad que hace falta para completar la referencia solicitada.
Démosle un toque mejor:
▪ Agregar columna -> Columna condicional .
X
    259/742
    Validamos si la diferencia de inventario es mayor o igual que cero, el inventario esta Ok, de lo 
contrario se debe solicitar más inventario para cubrir los pedidos.
Aceptar -> Cerrar y cargar y ha resultado todo un éxito nuestro proceso.
De esta manera podemos tener auditados y controlados los inventarios y pedidos de la 
compañía.
La parte comercial en una compañía es un área muy determinante para su operación, es la 
primera cadena que juega un papel importante para la toma de decisiones. Power Query 
adicional al proceso ETL que realiza para limpiar y organizar datos, también podemos realizar 
cálculos para la toma de decisiones, como por ejemplo, quiero saber cuál es el mejor cliente de 
cada vendedor y que porcentaje contribuye a las ventas.
Abrimos el archivo “Caso 2.xlsx” de la carpeta Capitulo 5.
    260/742
    Tenemos una tabla de ventas con registro mensual, el objetivo es determinar mes a mes cual es 
cliente que mayor tiene de cada vendedor y su porcentaje de participación.
Seguimos este paso a paso:
▪ Seleccionamos la tabla ventas -> Datos -> Desde una tabla o rango.
▪ Realizamos un agrupación avanzada -> Pestaña Transformar -> Agrupar por -> Avanzado 
-> Agrupamos por MES y agregar agrupación para VENDEDOR.
▪ En Nuevo nombre de columna “TOTAL” -> Operación “-Suma” -> Columna “VENTAS”.
▪ Agregar agregación -> En Nuevo nombre de columna “DETALLE” -> Operación “Todas 
las filas”. 
Este es el ejemplo
x
    261/742
    Aceptar y hay una nueva columna DETALLE. En la última opción de la agrupación, la operación 
indicada fue que mostrara todas las filas, adicional de la suma total por MES y VENDEDOR.
x
    262/742
    La columna DETALLE es de tipo tabla, donde específica los datos de cada registro. Agreguemos 
una columna personalizada para encontrar el cliente y la venta máxima por vendedor y mes.
▪ Agregar columna personalizada -> Ingresar esta fórmula ->
▪ Table. Max([DETALLE],"VENTAS")
La fórmula extrae el dato máximo de la venta de la tabla detalle.
Aceptar, la columna personalizada muestra una tabla de registros.
    263/742
    Cada registro detalle el cliente que mejor venta tuvo de cada vendedor.
▪ Expandir columna personalizada -> Seleccionar CLIENTE y VENTAS. Deshabilitar Usar 
nombre de la columna original como prefijo.
Aceptar. Eliminamos la columna DETALLE -> Cambiar nombre de columna VENTAS “VENTA 
MAX” -> Tipo de dato -> Número entero.
Por último solo nos queda calcular el porcentaje de venta de cada cliente sobre el total por 
vendedor y mes.
▪ Seleccionamos la columna VENTA MAX y TOTAL, en este mismo orden.
▪ Agregar columna -> Estándar -> Dividir
x
    264/742
    Cambiar nombre de columna División -> “% Venta” -> Cambiar tipo de dato -> Porcentaje
Todo un análisis de ventas listo para la toma de decisiones.
x
xx
    265/742
    Uno de los mayores esfuerzos que realiza un contador diario es tratar de organizar y consolidar 
los datos para la presentación de informes, les toma mucho tiempo cada semana o cada mes 
tener todo al día. Veamos varios trucos y funciones con Power Query, de seguro será de utilidad 
para tu trabajo diario.
Abrimos el archivo Caso 3.
Los datos son un balance de prueba exportados desde el sistema contable, el objetivo es 
consolidar los datos por grupos o cuentas principales para realizar los respectivos informes.
Tenemos varios inconveniente:
▪ La columna cuenta en cada registro tiene espacios al final, por tal razón no está en tipo 
número.
▪ La cuenta tiene un nivel mínimo de 2 dígitos, para los informes los necesitamos a partir 
del grupo o cuenta mayor, 1 dígito.
▪ Se debe consolidar la información
x
    266/742
    Nos ubicamos en la celda A3, Datos -> Desde una tabla o rango -> Aceptar.
Inmediatamente Power Query reconoció el campo cuenta como un número y quito los espacios.
Agregamos una columna para extraer el primer carácter, y determinar si la cuenta es del grupo 
1, 2, 3,4,5 o 6.
Agregar columna ->Extraer -> Primeros caracteres -> 1 -> Cambiar nombre -> Grupo
x
    267/742
    De la misma columna Cuenta, seleccionamos y vamos a extraer el largo de cada cuenta, para 
poder filtrar y tener los datos consolidados por Grupo y cuenta a un nivel de 2 dígitos.
Seleccionar columna Cuenta -> Agregar columna -> Extraer -> Largo.
Filtramos de la columna Longitud a 2 niveles y eliminamos la columna Longitud.
x
x
    268/742
    Reordenamos la columna Grupo, con clic sostenido la movemos a primera posición de la tabla.
Cerrar y cargar, la información en Excel lista para ser procesada contablemente.
Si deseamos realizar solo un resumen solo por grupo, duplicamos la consulta y agrupamos por 
grupo.
▪ Clic derecho en la consulta -> Duplicar
▪ Pestaña Transformar -> Agrupar por -> Avanzado -> Agrupar por: GRUPO
▪ Nuevo nombre de la columna: “Saldo Anterior” -> Operación: “Suma” -> Columna -> 
Saldo Anterior
▪ Agregar agregación
▪ Nuevo nombre de la columna: “Débitos” -> Operación: “Suma” -> Columna -> Débitos
▪ Agregar agregación
▪ Nuevo nombre de la columna: “Créditos” -> Operación: “Suma” -> Columna -> 
Créditos
▪ Agregar agregación
    269/742
    ▪ Nuevo nombre de la columna: “Nuevo Saldo” -> Operación: “Suma” -> Columna -> 
Nuevo Saldo
Aceptar. Se consolido la información por grupo o cuenta mayor, un análisis rápido contable.
Cerrar y cargar.
x
x
    270/742
    Este proceso como todos los anteriores ya queda automatizado, solo es actualizar los datos de 
la información contable, clic derecho en cada consulta y los datos han sido refrescados.
Y así hemos llegado al final de esta gran aventura de aprendizaje de la primera parte.
Te recomendamos la parte dos de este libro, análisis y modelamiento de datos.
Invierte tiempo en lo que te va a ahorrar tiempo, tiempo es vida y dinero.
Nota. Todo lo de Power Query en esta primera parte se realizó en Excel, te retamos 
a que cada uno de los ejercicios los repitas en Power BI, y así afinarás cada vez más 
tus conocimientos.
    271/742
    Inteligencia de Negocios con Excel y Power BI - Page 272
    272/742
     
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
EN ESTA PARTE
Capítulo 10
Introducción al Modelo Tabular
Capítulo 11
Topología y Relación entre Tablas
Capítulo 12
Los 3 Sabores de Cálculos DAX y un Aroma
Capítulo 13
Recetas DAX, Medidas Rápidas
Capítulo 14
La Llave para Dominar DAX: Síntesis de Contextos
Capítulo 15
Funciones Doradas: FILTER, Iteración y ALLxxxx
Capítulo 16
Propagación de Filtros al desnudo
Capítulo 17
La Crema y Nata de las Funciones: CALCULATE
Capítulo 18
Indicadores y Métricas de Razones y Proporciones
Capítulo 19
Indicadores y Métricas de Inteligencia de Tiempo
En esta parte se verá todo lo necesario para 
nutrir nuestro reporte o cuadro de mando 
con cálculos, métricas e indicadores, es 
decir, todo lo que tiene que ver con Power 
Pivot y su lenguaje de funciones 
denominado lenguaje DAX.
    273/742
    274/742
    CAPÍTULO 10 
Después de completar este capítulo tú sabrás:
▪ Qué es el modelo multidimensional y tabular
▪ Modelo Tabular vs Modelo Multidimensional
▪ Qué es Power Pivot y el lenguaje DAX
▪ La Suite Power BI Desktop
Este capítulo provee una introducción sobre las historia y descripción del modelo tabular, 
porqué es vital para toda analista, así como una breve reseña de la existencia de un segundo 
modelo analítico denominado el modelo multidimensional.
SQL Server es una familia de softwares que incluye al conocido: SQL Server management studio.
No obstante, dentro de la suite de SQL Server también existe una parte analítica llamada SQL 
Server Analysis Services o SSAS. La primera versión de SSAS fue introducida en 1999 y traía 
consigo un motor llamado modelo multidimensional, sin embargo, en aquel tiempo se le 
denominada solamente OLAP. El modelo multidimensional era el único motor analítico de SSAS 
hasta el año 2012, en dicho año Microsoft introdujo una nueva versión de SSAS que ahora tenía 
dos motores analíticos, el primero, el ya conocido modelo multidimensional y uno nuevo 
nombrado modelo tabular, este último es el que nos interesa ya que es el motor analítico
utilizado también en: Power Pivot para Excel y Power BI.
    275/742
    ¿Por qué el modelo tabular?
El primer motor o el OLAP fue llamado Unified Data Modeling del 2012 en adelante, en este motor 
únicamente tenemos el lenguaje MDX para definir el modelo de negocios y fórmulas para el 
análisis, igualmente es el utilizado para hacer consultas al modelo de datos, he aquí un ejemplo 
de un script MDX:
El modelo multidimensional ha sido implementado por muchas empresas en todo el mundo, sin 
embargo, este motor fue diseñado con los hardware existentes hace décadas. Ahora con 
muchísima más RAM y procesadores supremamente potentes Microsoft ha creado un nuevo 
motor que toma como parámetros iniciales los nuevos recursos de computadores actualmente 
disponibles, este motor es precisamente el modelo tabular. El modelo tabular se rige para su 
parte analítica con el lenguaje DAX, he aquí un script DAX:
WITH MEMEBER [Data].[Calendar].[Average] AS
AVG (
 [Data].[Calendar].[Calendar Year],
[Measure].[Internet Sales Amount]
)
=CALCULATE (
 SUMX ( Pedidos; ROUNDUP ( Pedidos[Costo Total]; 0 ) );
 Pedidos[País] IN { "Colombia"; "Brasil"; "Chile" };
 Pedidos[Tipo de Compra] = "Devolución"
)
    276/742
    El modelo tabular es el utilizado en las tecnologías: Power Pivot para Excel y Microsoft Power BI, 
los cuales son objetos de estudio de este libro.
La figura a continuación permite ver dónde están los dos modelos analíticos en la suite de SQL 
Server, fíjate que en toda la mitad de la imagen tenemos a SSAS un programa específico de la 
familia SQL Server donde se encuentran los dos motores.
Es válido mencionar que SSIS y SSRS son otros dos programas de la familia SQL Server 
destinados a fases concretas en el proceso de inteligencia de negocios.
Nota A la suma de estos dos motores: Modelo Multidimensional + Modelo Tabular se 
les ha llamado en conjunto el modelo semántico de inteligencia de negocios o Business 
Intelligence Semantic Model (BISM). Hay que tener en consideración que este 
término es cada vez menos utilizado.
    277/742
    Un punto por destacar es que le modelo multidimensional no ha quedado obsoleto, es decir, el 
modelo tabular no es un reemplazo del modelo multidimensional, por lo que si deseas aprenderlo 
también es perfectamente válido, pero hay que tener en cuenta que este motor se utiliza 
exclusivamente en SSAS mientras que el modelo tabular puede ser utilizado en: SSAS, Excel y 
Power BI (Somos consciente de que se ha mencionado esto varias veces, pero no queremos
dejar el mínimo atisbo de confusión en ello).
Futuro del Modelo Multidimensional
Queremos aventurar que en un futuro Microsoft hará cruces entre los dos modelos de forma 
directa, es decir, que podremos reciclar código MDX a DAX y a la inversa código DAX a MDX, 
básicamente porque el mismo Microsoft ha dado a conocer que seguirá invirtiendo fuertemente
en el motor analítico multidimensional, quien sabe sólo el tiempo lo dirá con total certeza.
Power Pivot antes escrito sin espacio como PowerPivot, es un complemento de Microsoft para 
Excel cuyo núcleo, llamado: el DAX Engine, está disponible cada vez más en diversas tecnologías 
de Microsoft BI, concretamente en el software Power BI y SQL. Para Excel es una extensión que 
añade funcionalidades que subsanan todas las necesidades analíticas y la potencia de una 
manera tan sublime, que a veces es imposible dar crédito a tanta maravilla. Para Power BI es la 
espina dorsal en la parte analítica y así crear indicadores, KPIs, métricas y cálculos.
DAX se está posicionando día a día como una poderosa máquina de procesamiento de datos y 
con ello nos brinda una vastedad de opciones para extraer información relevante de los
    278/742
    datos, todos esto, en definitiva, soporta la toma de decisiones, si, la toma de decisiones, eso 
que direcciona los objetivos empresariales.
Por qué deberías tomártelo enserio
Imagina que eres un gerente de abastecimiento de productos en un supermercado, estas 
encargado del manejo de miles de productos y analizar miles de millones de datos para 
identificar cuáles productos mantener y quitar o no son tan relevantes, si se piensa en todos 
los desafíos que surgen para agrupar, analizar y crear reportes para sacar conclusiones 
significativas de esta cantidad masiva de datos, nos encontraremos con una cantidad 
abrumadora de tareas, por mencionar algunas: 
▪ Habilidad para reunir datos de múltiples fuentes, ejemplo: Access, SQL, Oracle, 
Archivos de Texto, etc. 
▪ Manejo de cantidades masivas de datos a una velocidad cómoda 
▪ Habilidad para crear reportes de forma eficiente, por ejemplo, de: SSRS. 
▪ Compartir este reporte de manera efectiva y eficaz 
▪ Crear diversas expresiones con el fin de resumir los datos y sacar conclusiones
¡¡Así es !!, todas estas tareas que antes eran un proceso titánico, ahora Power Pivot y el lenguaje 
DAX lo solventa de una forma rápida y muy sencilla de manejar, dicho de otro modo, podemos 
crear reportes dinámicos “Tablas Dinámicas” o matrices en Power BI de una cantidad masiva 
de datos, proveniente de una gran variedad de fuentes utilizando nuestra querida interfaz de 
Excel o el cada vez más utilizado Power BI.
Lo que esto quiere decir, es que no se necesita ser un desarrollador o una persona con 
habilidades increíbles en Excel, VBA u otras tecnologías que impliquen programación de 
computadoras, porque Power Pivot y el lenguaje DAX permite conectar todas las fuentes de
    279/742
    datos de una manera tan sencilla que sólo se requiere de unos cuantos clics y además permite 
una distribución muy fácil y ágil.
Qué es el Lenguaje DAX
Podemos vincular datos de múltiples fuentes: Bases de datos, data markets, tablas vinculadas, 
archivos de texto, etc.
1. Podemos trabajar con millones de datos de forma eficiente y tranquila
2. El Lenguaje DAX permite extender los análisis, es decir, tener un despliegue de 
expresiones gracias a los cálculos personalizados, cortando todas las limitaciones de 
las tablas dinámicas y convirtiéndola en el arma letal en nuestro arsenal de Excel. 
3. El Lenguaje DAX se ha convertido en el núcleo de las tecnologías de Business 
Intelligence de Microsoft.
4. Es posible crear diferentes formas de relacionar las tablas de datos.
5. Se pueden ocultar columnas que no queramos ver en el panel de campos de las tabas 
dinámicas.
6. Se pueden crear indicadores KPI y jerarquías.
7. De manera creativa, permitirle al usuario final que inserte datos de entrada admitiendo
reportes parametrizables. 
8. El formato se mantiene constante a lo largo de diferentes reportes.
En la Parte I de este libro trabajamos con Power Query para Excel siendo plenamente conscientes 
de que también es aplicable a Power Query para Power BI de escritorio. En esta parte del libro y 
la siguiente vamos a trabajar netamente en Power BI, tanto por ver la intercambiabilidad de 
tecnologías como por aprovechar algunas funcionalidades adicionales.
    280/742
    Es necesario dar un paso atrás y entender: ¿Qué es Power BI?
La Suite de Power BI
¿Qué es Power BI?
Lo primero que debemos entender es que Power BI no es un programa, Power BI es un conjunto 
de aplicaciones destinadas al análisis de negocios, es decir, que hablamos de Power BI como 
cuando decimos Office, sabemos que es una Suite de softwares.
En Power BI contamos con tres tecnologías principales:
▪ Power BI de Escritorio
▪ Servicio de Power BI en la nube
▪ Power BI para dispositivos móviles
Nota Existen otras variantes para Power BI, no obstante, las mencionadas son las 
más utilizadas.
Power BI Power BI es un conjunto de herramientas de análisis empresarial que 
pone el conocimiento al alcance de toda la organización. Conexión a cientos de 
orígenes de datos, preparación de datos simplificada, generación de análisis ad 
hoc. Bellos informes que luego se publican para provecho de la organización en la 
Web y en dispositivos móviles. Creación de paneles personalizados al alcance de 
todos, con una perspectiva empresarial única, de 360 grados. Escalado a nivel 
empresarial, con gobierno y seguridad.
Definición Tomada de la página de Power BI
    281/742
    ▪ Power BI de Escritorio (Power BI Desktop): Power BI desktop es la aplicación para tu 
computadora, en él creamos modelos de datos sofisticados y robustos, ofreciendo 
análisis avanzados gracias a que podemos utilizar un lenguaje específico para ello: DAX. 
Igualmente, si en un paso anterior necesitamos preparar los datos contamos con la 
interfaz y el lenguaje para hacerlo: M, adicionalmente, su potencial de visualización lo 
convierten en el punto departida para crear reportes, informes y cuadros de mando.
▪ El Servicio de Power BI en la Nube (Power BI Services): Como su nombre lo indica es 
un servicio en la nube el cual proporciona todas las opciones para compartir, añadir 
niveles de privacidad, creara roles de usuarios, crear contenidos compartidos y con 
restricciones; así mismo, cuenta con sus propias opciones rápidas para el análisis.
▪ Power BI para Dispositivos Móviles (Power BI Mobile): Permite acceder de forma 
segura a paneles e informes de Power BI desde nuestro celular u otros dispositivos 
móviles, permitiendo estar notificado en tiempo real y filtrar rápidamente para el 
análisis.
Este es un libro sobre inteligencia de negocios. La inteligencia de negocios o Business 
Intelligence en inglés abreviado BI esta divida en cuatro etapas de un proceso sucesivo donde 
cada una depende de la otra, estas son: 
▪ Preparación de Datos
▪ Análisis de Datos
▪ Visualización de Datos
▪ Compartir información
En este libro abarcamos los tres primeros ejes: (Preparación, análisis y visualización) y todo ello 
lo conseguimos con Power BI de escritorio, por lo tanto, será el único objeto de estudio de 
ahora en adelante.
    282/742
    Instalar Power BI de Escritorio
Power BI de escritorio es completamente gratuito, para descargarlo debemos ir a la página 
oficial de Power BI.
Vamos a nuestro navegador favorito y en el buscador de Google digitamos la palabra Power BI
y procedemos con la búsqueda, la primera página filtrada será la que nos servirá, además,
podemos pulsar clic directamente en Power BI Desktop.
En la siguiente página encontraremos el botón para su descarga con nombre DESCARGA 
GRATUITA, sin embargo, si lo hacemos directamente se descargará e instalará Power BI de 
escritorio en inglés, para descargarlo en español demos pulsar clic en Opciones Avanzadas de 
Descarga que se encuentra inmediatamente debajo del botón de descarga gratuita.
    283/742
    La página que nos aparecerá a continuación todavía está configurada para descarga en inglés, 
de hecho, si observamos la URL:
https://www.microsoft.com/en-us/download/details.aspx?id=45331
Apreciaremos que la parte /en-us/ está indicado english (en) united states (us), es aquí donde 
debemos hacer la variación y poner /es- es/ por español España.
https://www.microsoft.com/es-es/download/details.aspx?id=45331
Ahora si podemos desplazarnos a la parte central de la página y ver que el idioma seleccionado 
es español, con esto ya podemos pulsar clic en el botón rojo de Descargar.
    284/742
    En el siguiente paso debemos seleccionar si es de 32 bits o 64 bits, esto dependerá de nuestro 
caso específico y la instalación del sistema operativo.
    285/742
    Interfaz de Power BI de Escritorio
Una vez instalado, vamos a conocer las partes de la interfaz gráfica de usuario de Power BI de 
escritorio que será esencial de ahora en adelante.
Pestañas
Vistas Panel de Visualizaciones
Panel de Campos
Páginas Notificador de 
actualizacione
s
Vista de Informe
Vista de Datos
Vista de Relaciones
Panel de Filtros
Lienzo
    286/742
    CAPÍTULO 11 
Después de completar este capítulo tú sabrás:
▪ Cuáles son los tipos de tablas
▪ Cuáles son los tipos de columnas
▪ Cómo realizar el entretejido de Tablas
▪ Cuáles son los tipos de Relaciones
Dinos, ¿cuántas veces no has querido realizar un cálculo que involucra columnas de dos o más tablas?
Multitud de veces verdad. Para alcanzar dicha tarea, y si tenemos un conocimiento holgado en 
expresiones matriciales para Excel, podemos optar por crear mega fórmulas que demandan 
cantidades copiosas de tiempo, así como una precisión casi quirúrgica.
En este capítulo te queremos revelar como con Power BI o Power Pivot para Excel esta solución 
esta tan solo a 5 clics de distancia como mucho, sin embargo, para disfrutar de las mieles de la 
relación de múltiples tablas es necesario abrazar unos conceptos básicos, en concreto: tipos de 
tablas y columnas, ello nos labrará el camino para llegar al punto álgido del capítulo: crear 
miniinformes basados en múltiples tablas con el simple hecho de arrastrar y soltar. 
Entre los conceptos básicos de bases de datos es imperativo discernir los tipos de tabla 
existentes, sin dar muchas vueltas específicamente nos vamos a encontrar con dos tipos de 
tablas: Tablas de dimensión o búsqueda y tablas de hechos.
    287/742
    Tablas de Hechos (Fact Tables)
Es una tabla que contiene mediciones de un área de negocio. Cada registro de la tabla es una 
medición diferente y la granularidad está definido por las dimensiones relacionadas. Estas 
mediciones son comúnmente aditivas, aunque no siempre.
Visto de otra manera, una tabla de hechos contiene registros en intervalos regulares: día a día, 
semana a semana, mes a mes, etc. Etc. De un proceso y sus variables de negocio. Las mediciones 
que permiten operaciones aritméticas son de gran utilidad, ejemplo: Registro de ventas, costos, 
unidades, utilidad, etc.
Las tablas de hechos se caracterizan por tener una “alta densidad de datos” comúnmente miles, 
millones o incluso más.
Tablas de Dimensión o Tablas de Búsqueda (Dimensión Table)
Es una tabla que contiene elementos de negocio, donde los campos describen los elementos, 
usualmente una tabla de dimensión hace referencia a varias tablas de hechos, visto de otra 
manera, una tabla que se utiliza para restringir y agrupar datos de una o varias tablas de hechos, 
son tablas que tienen información de las cuales dependen otros datos.
Granularidad de Datos El tamaño de grano es el nivel de detalle de los datos, por 
ejemplo, un detalle día a día de los registros tiene más detalle que un detalle 
semana a semana de los registros ya que, capta más datos o detalle en la variable 
o dimensión tiempo. 
No esta demás señalar que el tamaño de grano no se limita únicamente a la 
dimensión tiempo, también puede ser geográfico o todo aquello que tiene niveles 
de jerarquía bien establecidos.
    288/742
    Las tablas de dimensión se caracterizan por tener una “baja densidad de datos”.
Otro par de conceptos indefectibles se asocian a las columnas de cada uno de los tipos de 
tablas, particularmente: clave primaria y calve externa.
Clave Primaria o Primary Key
Es un campo que sirve como identificador único de fila (registro) en una tabla de dimensión, 
por lo tanto, dicha columna tiene elementos que no se repiten pues de esta manera se podrá 
identificar de forma univoca cada fila, en otras palabras, no valores duplicados.
- Ejemplos:
▪ Documentos de Identidad
▪ SKU
▪ ISBN
▪ Orden de Pedidos
▪ Id de País
Clave Externa o Foreign Key
Es un campo que se refiere a una columna en una tabla de hechos, pero que son “equivalentes”, 
es decir, tienen los mismos le elementos, pero en este caso los valores se pueden repetir.
    289/742
    Ahora que conocemos los conceptos básicos en bases de datos para relacionar tablas, es 
necesario, entrar en materia y relacionar directamente desde la interfaz, en este caso, desde la 
interfaz de Power BI, pero no debemos olvidar que lo que se describe a continuación también 
aplica para Power Pivot de Excel.
Relaciones Automáticas en Power BI
Una situación con la cual nos encontraremos en Power BI es que al ir a la vista de relaciones nos 
encontraremos con que las tablas están relacionadas.
Esta relación de manera automática la lleva a cabo Power BI internamente, sin embargo, estas 
relaciones pueden ser incorrectas o no coincidir con las que nosotros necesitemos. 
Adicionalmente esta tarea interna no ocurre con las tablas cargadas en Power Pivot para Excel, 
por lo menos para las versiones 2016 y anteriores.
    290/742
    La recomendación es eliminar estas relaciones y crearlas desde cero para así cerciorarnos al 
100% que son las deseadas. Par lograr dicha tarea nos podemos posicionar en cada relación, es 
decir, en cada línea que une un par de tablas pulsando clic encima de ella hasta que tome un 
color amarillo, luego pulsamos clic encima de la tecla Delete o Supr, una vez hecho lo previo se
nos desplegará un cuadro de diálogo que nos pedirá que confirmemos si realmente queremos 
suprimir dicha relación.
    291/742
    Otra alternativa para eliminar las relaciones es ir a la pestaña Inicio, luego al grupo Relaciones y 
pulsar clic encima del comando Administrar relaciones.
De lo anterior se nos desplegará un cuadro de diálogo que lista todas las relaciones existentes, 
el proceso aquí consiste en seleccionar relación a relación en la lista e ir pulsando clic en el 
botón eliminar.
    292/742
    Relacionar Tablas Manualmente
El primer paso para relacionar tablas manualmente consiste en identificar el tipo de tabla de
cada una, en nuestro caso, si tomamos las tablas: Pedidos, SKUProdcutos, Categoría de Productos
y Descuentos, tendremos lo siguiente:
- Tipos de Tablas:
▪ Pedidos es una tabla de hechos
▪ SKUProductos es una tabla de dimensión o búsqueda
▪ Categoría de Productos es una tabla de dimensión o búsqueda
▪ Descuento es una tabla de dimensión
En adición a lo previo debemos identificar en cada tabla cuáles son las claves primarias y las 
claves externas, recalcando que las tablas de búsqueda les asociamos clave primaria y a las 
tablas de hechos claves externas.
- Tipos de Tablas y Columnas:
▪ Pedidos es una tabla de hechos, clave externa SKU y Categoría de Productos
▪ SKUProductos es una tabla de dimensión o búsqueda, clave primara SKU
▪ Categoría de Productos es una tabla de dimensión o búsqueda, Calve primaria SKU
▪ Descuento es una tabla de dimensión, clave primara Categoría de Descuento
Con toda la información definida el proceso de relación de tablas es sencillo: pulsamos clic 
encima de la columna clave primara y la arrastramos hasta la clave externa equivalente en la 
tabla de hechos, un ejemplo concreto sería: la relación entre la tabla Pedidos y la tabla
    293/742
    SKUProductos, en este escenario en concreto procedemos a pulsar clic encima del campo SKU
de la tabla SKUProductos y mantenido el clic pulsado arrastramos hasta la clave externa de tabla 
Pedidos, es decir, al campo SKU de la tabla Pedidos y soltamos.
Con lo previo interiorizado relacionar las tablas restantes es bastante fácil, el resultado final 
sería como el siguiente:
    294/742
    Se ha descrito que las relaciones se deben crear de una clave primaria a una calve externa, sin 
embargo, este es un caso particular de tres variantes, debido a que podemos relacionar de una 
clave primaria a clave primaria o de una clave externa a una clave externa.
Antes de continuar con los tipos de relación es vital que analicemos las relaciones en términos 
de unicidad o elementos repetidos. Si observamos detenidamente una clave primaria veremos 
que se sus elementos son únicos, por lo tanto, decimos que es el lado de los unos. Por otra 
parte, la clave externa contiene elementos duplicados, por tal motivo decimos que es el lado de 
los muchos. Siguiendo esta terminología de unos y muchos tendremos tres tipos de relaciones
entre un par de tablas:
▪ Relación Uno a Muchos (1:*)
▪ Relación Uno a Uno (1:1)
▪ Relación Muchos a Muchos (*:*)
Nota La manera en la cual se relacionaron las tablas anteriores es una forma de un 
abanico de posibilidades, esto lo podemos inferir fácilmente ya que, si apreciamos 
la forma en que relacionamos las tablas de forma completamente manual en 
contraste con las relaciones creadas automáticamente por Power BI, veremos que 
son dos vías diferentes.
Estas opciones de relacionar tablas dependerán del tipo de relación que utilizamos 
entre un par de tablas, con lo cual podemos intuir que basta con que la relación 
entre un par de tablas sea diferente para decir que el entretejido de tablas es 
también distinto.
    295/742
    Relación Uno a Muchos
Para cada registro en la tabla de dimensión pueden existir muchos o infinitos elementos en la 
tabla relacionada, la cual sería una tabla de hechos. Como se ha mencionada previamente 
contiene la clave externa. Esta situación es la ilustrada en la figura 11.6.
Relación Uno a Uno
Para cada registro en la tabla de dimensión puede existir un sólo registro en la tabla relacionada, 
que en este caso puede ser otra tabla de dimensión, un ejemplo es relacionar la tabla 
SKUProductos con la tabla Categoría de Productos mediante sus campos SKUs.
¡Advertencia! Los tipos de relación uno a muchos y uno a uno son perfectamente 
válidos en Power BI, por lo menos, de manera directa. Así que has que te estampen 
esto en todas tus camisetas:
“El tipo de relación muchos a muchos no es permitidos en Power BI ni Power Pivot por lo 
menos de manera directa”
    296/742
    Relación Muchos a Muchos
Podemos visualizar este tipo de relación como la relación que se puede dar entre dos tablas de 
hechos, esta relación no es posible en Power BI analítico de manera directa, aunque hay 
métodos alternos son de alta complejidad que no alcanzan a ser tratados en este libro.
Miniinforme de Múltiples Tablas Relacionadas
Ahora vamos a la vista de informe, para lograrlo únicamente debemos pulsar clic encima del 
pequeño botón en el extremo izquierdo con icono de un gráfico de barras.
Nota Aunque la relación muchos a muchos desde la parte analítica no es tratada en 
el presente texto, podemos encontrar una manera de ejecutar este tipo de relación 
desde la preparación de datos en el capítulo 4.
Nota Para propósitos de este libro dejar las relaciones de manera idéntica que las 
presentadas en la figura 11.7.
    297/742
    Una vez allí vamos al panel de visualizaciones y ubicamos el objeto visual matriz para pulsar clic 
encima de él.
A continuación, aparecerá un contendor de objeto visual.
Nota Para mayor detalle acerca de los objetos visuales y tipos de gráficos en Power 
BI puedes remitirte a la Parte III del presente libro, es decir, desde el capítulo 20 en 
adelante.
    298/742
    Manteniendo seleccionado dicho contenedor de objeto visual que en este caso corresponde a 
una matriz, vamos a ir a al panel de visualizaciones y en las áreas de colocación vamos a llevar los 
siguientes campos o columnas:
- Detalle:
▪ Llevamos el campo Producto (s) de la tabla SKUProducto al área de filas
▪ Llevamos el campo Categoría de la tabla Categoría de Productos al área de columnas
▪ Levamos el campo Ingresos de la tabla Pedidos al área de valores
    299/742
    Inteligencia de Negocios con Excel y Power BI - Page 300
    300/742
    CAPÍTULO 12 
Después de completar este capítulo tú sabrás:
▪ Qué es el Lenguaje DAX
▪ Qué es una Medida y su importancia
▪ Qué es una Columna Calculada y su importancia
▪ Qué es una Tabla Calculada y su importancia
▪ Variables en el lenguaje DAX
DAX es el lenguaje de funciones soñado para el analista de datos, para el estadista y en definitiva 
para cualquier persona que desee extraer información precisa, oportuna, accionable y de valor 
de montañas de datos.
Por lo anterior, tenemos que conocer los fundamentos del lenguaje DAX como si fuera la palma 
y el dorso de nuestra mano, al finalizar este capítulo sabrás con exactitud esos conceptos 
esenciales en el lenguaje DAX que pavimentan la vía para empezar a encarrilar todo tipo de 
cálculos que soporten la toma de decisiones empresariales.
DAX, es un lenguaje de funciones que nos permite recabar en los confines de los datos para 
hacer análisis como nunca había sido soñado, por lo tanto, supone un lenguaje supremamente 
poderoso para los usuarios de Excel, para los de Power BI o próximos para hacer inteligencia de 
negocios y enfocar la toma de decisiones en la vía correcta.
    301/742
    Los 3 tipos de cálculos (3 sabores)
Si nos planteamos la pregunta: ¿Cómo hacer análisis más potentes en Excel?
Podríamos pensar en ampliar la respuesta diciendo que con el lenguaje DAX, y no está mal, pero 
debemos desglosar un poco más comentando que el núcleo, el corazón del funcionamiento 
del lenguaje DAX se basa en sus tres “sabores” de tipos de cálculos personalizados (Cálculos 
DAX), estos son:
▪ Medidas
▪ Columnas Calculadas
▪ Tablas Calculadas
Siempre utilizamos el lenguaje DAX para crear alguno de estos tres cálculos, ellos nos permiten 
jugar, manipular y moldear los datos a nuestro antojo para hacer los análisis necesarios. Todas 
las funciones, variables y en general expresiones DAX desembocan en uno de estos tres Cálculos
Personalizados, para posteriormente utilizarlos en nuestros reportes, consultas, presentación 
visual, cuadros de mando, etc. ¿Notas la importancia ahora de los Cálculos DAX?
Nota DAX son las siglas en inglés para: expresiones para el análisis de datos
Data Analysis eXpressions
Las propias siglas hablan por sí solas, un lenguaje optimizada y enfocado para 
tomar múltiples tablas relacionadas y de allí extraer información rica que nos ayude 
a tomar decisiones inteligentes y acertadas en los negocios, pura inteligencia 
competitiva.
    302/742
    Para seguir el hilo de la metáfora con el Póquer:
Power Pivot / Power BI / SSAS Tabluar, es decir, El DAX Engine: es la mano, el arma, la 
herramienta más valiosa para hacer análisis y trabajar con datos (¡Todo prácticamente!, pues 
una hoja de cálculo siempre tiene datos, si no, cuál sería el punto de: hoja de cálculo), sin 
embargo, al igual que en el póquer, es la mano / la herramienta, menos frecuente utilizada por 
los usuarios de Excel.
Lo anterior, probablemente ocurre por muchas causas; lo que si es cierto, es que es una 
constante hasta el momento, debido a que muchas personas que se pueden beneficiar con DAX, 
lo desconocen completamente, por ello muchos de nuestros esfuerzos van en aportar nuestro
granito de arena en mejorar en alguna escala esta situación.
Para poner los pies en la tierra respectos a los cálculos DAX, dediquemos unos párrafos a cada 
uno de estos cálculos personalizados…
Pero … Un momento:
Cálculos DAX Los Cálculos DAX componen la Escalera Real en nuestra mano de 
póquer BI para doblegar los datos y así nos entreguen la información necesaria en 
el momento oportuno.
¡Advertencia! En Power Pivot para Excel sólo contamos con dos Cálculos DAX:
Medidas y Columnas Calculadas. Mientras que en Power BI y SSAS contamos con 
Medidas, Columnas Calculadas y Tablas Calculadas.
Así que has que graben esto en el collar de tu perro:
“El lenguaje DAX en algunas tecnologías cuenta con más posibilidades, básicamente por 
actualizaciones.”
    303/742
    Las Medidas en Power Pivot (Denominados Campos Calculados en Excel 2013) es uno de los tres 
tipos de cálculos personalizados o cálculos DAX que están a nuestra disposición para crear 
soluciones mediante Excel, Power BI y SSAS sin ninguna limitación.
No se exagera cuando hay personas que dicen que: “Es lo mejor que le ha pasado a Excel en su 
historia” o que “Representa un cambio total en las reglas del juego a nuestro favor” Todo tipo 
de cosas se dicen del lenguaje DAX y no es por darle un valor desorbitante, ¡De Verdad que 
no! nosotros personalmente decimos que:
¿Qué es una Medida?
Demos una definición sencilla pero que capte la esencia de qué es una medida:
Acerca de DAX ¡Componen una excelsa sinfonía de una revolución mágica y sin 
precedentes para Business Intelligence -BI-! es como si nos hubieran traído una 
tecnología de veinte años en el futuro para utilizarlas hoy en día. La capacidad de 
resumir cantidades masivas de datos, crear expresiones de todo tipo para extraer 
gemas de información, acompañado de la posibilidad de crear reportes de tablas 
dinámicas como nunca se había soñado, la convierten el arma letal para 
inteligencia de negocios. Business Intelligence al alcance de todos.
Medida Es una fórmula que se añade el área de valores de una matriz en Power BI 
o a al área de valores de una tabla dinámica en Excel.
    304/742
    Es vital antes de continuar resaltar la diferencia de nombres en las distintas versiones, este tipo 
de cálculo DAX se ha denominado de diferentes formas en las diversas versiones de Excel y 
otros programas, así:
▪ Excel 2010: Medidas (En inglés Measures)
▪ Excel 2013: Campos Calculados (En inglés Calculated Fields)
▪ Excel 2016: Medidas
▪ Power BI: Medidas
▪ SSAS: Medidas
En definitiva, Microsoft opto por renombrar al tipo de cálculo que añade fórmulas a los reportes 
de tablas dinámicas como Campos Calculados en Excel 2013. Sin embargo, volvió a su nombre 
original, ya que ayuda a marcar una diferencia desde el principio en contraste con la 
funcionalidad antigua de Campos Calculados.
Medidas en Power BI
Las medidas en Power BI y Power Pivot nos permiten hacer cualquier cosa, por ejemplo: 
▪ Crear expresiones para análisis de clientes nuevos, recurrentes y perdidos que nos 
permitan analizar diversos escenarios
▪ Análisis de afinidad en productos
▪ Análisis ABC
▪ Análisis de inventarios, lead time y distribución
… Por mencionar unos pocos …
    305/742
    Cualquier tipo de resumen que se nos ocurra, pues para ello tenemos a nuestra disipación todo 
lenguaje de fórmulas bien estructurado y completo, denominado: Lenguaje DAX.
Tipos de Medidas en Power BI
Podemos crear tipos de medidas en Power BI basándonos en la existencia o no de fórmulas y 
funciones del lenguaje DAX. Aquellas que utilizan el lenguaje DAX son llamadas medidas 
explicitas y aquellas que no lo utilizan son denominadas medidas implícitas.
Las medidas explícitas pueden surgir de dos maneras, aquellas que creamos con el lenguaje DAX 
de forma manual si tenemos el conocimiento y aquellas que crean la expresión DAX, pero de 
forma automática gracias a la interfaz de Power BI. Las primeras medidas las llamamos medidas 
explícitas manuales mientras que a las segundas las llamadas medidas explícitas automáticas.
Las medidas implícitas se crean de forma automática pero no dejan ni un solo rastro de función 
o expresión DAX, de hecho, no se sabe si internamente está utilizando el lenguaje DAX o 
consiste en algún algoritmo distinto de resumen.
En definitiva, y si nos permiten el símil cinematográfico, las medidas implícitas encierran una 
filosofía más devastadora que el anillo de mordor en la tierra media.
¡Advertencia! Nosotros no recomendamos la utilización o creación de medidas 
implícitas porque no existe fórmula DAX asociada, por lo tanto, no se puede 
reutilizar o llamar en otra medida (no es reusable o reciclable).
Así que, tatúate esto:
“Las buenas prácticas demandan crear todas le medidas de manera explícita sin importar 
si una medida tan sencilla como crear la suma de una columna”
    306/742
    El esquema siguiente resume los tipos de medidas en Power BI:
¡Advertencia! Las medidas explícitas automáticas no existen en Power Pivot para 
Excel, por lo menos de las versiones 2016, 2013 y 2010. Probablemente en 
versiones futuras de office, en concreto a partir de office 2016, ya vengan 
integradas.
A estas medidas explicitas automáticas nosotros las denominamos las recetas DAX 
automáticas y serán tema del próximo capítulo. Adicionalmente dichas recetas son 
lo que se conocen en la propia interfaz de Power BI como medias rápidas.
    307/742
    Medidas implícitas
Aunque no recomendamos las medidas implícitas, su creación es bastante sencilla ya que solo 
consiste arrastrar y soltar.
Supongamos, por ejemplo, que deseamos crear una matriz que muestre el promedio de ingresos
para los distintos SKU en una matriz de Power BI.
Para conseguir esta tarea debemos crear una matriz y luego llevar el campo SKU de la tabla 
SKUProductos al área de filas.
    308/742
    Si recordamos la definición de medida que hemos brindado, sabemos que es un cálculo que se 
lleva al área de valores (de una matriz o tabla dinámica). Como queremos el promedio de ingresos 
lo único que debemos hacer es llevar el campo ingresos de la tabla Pedidos al área de valores de 
la matriz.
¡Advertencia! Cuando se crear una medida con el método de arrastrar y soltar en 
un campo en el área de valores de una matriz, es importante destacar que el tipo 
de cálculo que se crea por defecto es la suma de la columna si el campo es 
numérico y la cuenta de elementos si el campo es de tipo texto.
    309/742
    Para cambiar el tipo de cálculo implícito debemos posicionar el cursor de nuestro mouse en la 
pequeña flecha que aparece al extremo derecho del campo Ingresos, situado en el área de 
valores de la matriz justo al lado de la x.
Pulsamos clic encima de esta flecha, y se despliega un menú que en su parte central muestra 
los cálculos que podemos utilizar de manera implícita con tan sólo un clic, observando que el 
seleccionado por defecto es suma (fácilmente identificable por el chulito o palomita de color verde 
en el extremo izquierdo del menú desplegable)
    310/742
    Todas las opciones desde suma hasta mediana corresponden a las medidas implícitas que 
podemos utilizar, para nuestro caso lo cambiamos por Promedio, llegando al resultado deseado:
Como podemos ver su ejecución es bastante rápida pero no encontraremos ninguna fórmula o 
función asociada en ninguna parte, estas opciones son útiles si queremos ver un resumen ágil, 
pero para crear un modelo de datos robusto no es recomendable. Adicionalmente, vemos que 
solamente son 9 cálculos posibles, si deseamos hacer cosas más complejas debemos acudir al 
lenguaje DAX sin duda alguna.
    311/742
    Medidas explícitas manuales
Es válido repasar que las medidas explícitas están vinculadas a una expresión DAX visible que 
podemos manipular si así lo consideramos necesario, para crear una medida explícita manual 
debemos ir a pestaña modelado grupo Cálculos y pulsar clic encima del comando Nueva Medida.
Una vez pulsamos clic en el comando vamos a ver como se habilita una barra de fórmulas, esta
es la barra de fórmulas DAX.
En la parte izquierda del igual ponemos el nombre y después la expresión DAX.
Nota Los nombres de las funciones del lenguaje DAX se deben dar en inglés 
independientemente si la instalación de nuestro Power BI es en español o en inglés 
(en general en cualquier idioma del mundo)
El lenguaje DAX siempre es inglés.
    312/742
    Digamos que en esta situación queremos calcular la media geométrica de los ingresos. Bien, 
algo que hay que destacar es que esta medida de forma implícita no existe, si bien tenemos: 
promedio y mediana, la media geométrica no la encontraremos en la lista desplegable de medidas 
implícitas, es decir, que en este escenario es obligatorio recurrir a las medidas explicitas para 
poder cumplir el requisito.
Después del igual ponemos las letras geo y veremos cono aparece un menú contextual 
(técnicamente este menú contextual se llama Intellisense) listando todas las funciones del lenguaje 
DAX que empiezan por las letras geo. En este caso en particular veremos cómo aparecen dos 
opciones de funciones:
En el Intellisense nos podemos mover con las teclas de dirección y seleccionar la función 
deseada con la tecla tab, claro también podemos hacer eso con el mouse de nuestra 
computadora y pulsar dos veces clic encima del nombre de la función que queremos utilizar. La 
función que vamos a seleccionar es GEOMEAN sin la x al final. Con lo anterior parece un nuevo 
Intellisense listando las tablas y sus columnas.
    313/742
    Podemos apreciar que el tooltip también nos brinda información acerca de lo que hace la 
función, así como un listado de sus argumentos, para la función GEOMEAN únicamente 
tenemos un argumento que corresponde un campo numérico de una tabla, para nuestra 
situación debemos llamar la tabla Pedidos y el campo Ingresos, cerramos paréntesis cuadrados y 
pulsamos en la tecla Enter, así:
Nota
Es crucial identificar el funcionamiento de la sintaxis de tablas y columnas en DAX, 
como se puede ver de la creación de la medida de media geométrica anterior, para 
hacer referencia a una columna debemos primer poner el nombre de la tabla y 
luego entre paréntesis cuadrados el nombre de la columna:
• Pedidos[Ingresos]
También podemos llamar a una tabla y todas sus columnas, para ello únicamente 
debemos escribir el nombre de la tabla, ejemplo:
• Pedidos
Sin embargo, si el nombre de la tabla tiene espacios y/o tildes debemos encerrar el 
nombre entre comillas simples así:
• ‘Categoría de Productos’
Si se llama a una columna asociada a la tabla anterior sería:
• ‘Categoría de Productos’[Precio de Venta]
    314/742
    La medida recién creada quedará en alguna de las tablas en el modelo de datos, en particular 
permanecerá en la tabla que tengamos seleccionada en el panel de campos cuando estamos 
creando la medida, en nuestra situación teníamos seleccionada la tabla Categoría de Productos, 
por lo tanto, la medida debería aparecer allí:
Puedes notar que la medida es fácilmente identificable por el icono de una calculadora en su 
extremo izquierdo, mencionar también que nuestra medida a quedado con el nombre por 
defecto medida, para cambiarlo debemos pulsar clic encima del icono de calculadora para que 
se habilite nuevamente la barra de fórmulas DAX y renombrar.
Una de las formas de 
renombrar la medida 
es pulsando clic 
derecho y 
seleccionando 
cambiar nombre, 
llámala Media GEO de 
Ingresos
    315/742
    Ahora seleccionemos la matriz anterior y arrastramos la medida Media GEO de Ingresos al área de 
valores.
    316/742
    Medidas explícitas automáticas
Estas medidas se crean forma automática, es decir, que no debemos digitar ni una sola fórmula 
o función de manera manual. Únicamente contamos con un cuadro de dialogo nos ayudará a 
que se cree dichas fórmulas.
Estas medidas son equivalentes a medidas rápidas y serán tema del siguiente capítulo.
Las Columnas Calculadas, nuestro segundo tipo de Cálculo DAX disponible en Power Pivot 
para Excel y Power BI. Recordemos que los tipos de Cálculos DAX o Cálculos Personalizados 
en Power Pivot son: 
▪ Medidas o Measures en inglés (Campos Calculados en Excel 2013)
▪ Columnas Calculadas o Calculated Columns en inglés
▪ Tablas Calculadas o Calculated Tables en Ingles (NO disponible en Power Pivot a la 
fecha)
Como su nombre lo indica, las columnas calculadas permiten crear columnas adicionales en 
nuestras tablas tomando columnas ya existentes de las diversas tablas en el modelo de datos 
mediante le lenguaje DAX.
Tablas de Población de la Web
Perfecto, sin embargo, para los fines que deseamos también necesitaremos otra “tablita” que 
no está disponible en el archivo; para este caso una tabla que nos indique el número de 
habitantes que hay en las ciudades principales en el país de Colombia, por lo tanto debemos 
explorar en internet e importar datos desde la web.
Si buscamos en la Web, la primera fuente que nos encontraremos es Wikipedia:
    317/742
    URL: https://es.wikipedia.org/wiki/Anexo:Municipios_de_Colombia_por_poblaci%C3%B3n
No luce nada mal, ¿Cierto? Vamos a la Pestaña Inicio, grupo Datos Externos, desplegamos las 
opciones de Orígenes de Datos, nos dirigimos al comando Web para pulsar clic encima.
    318/742
    Con la acción precedente se despliega un cuadro de diálogo que nos pide la URL.
Presionamos clic en el botón Aceptar y aparece lo siguiente:
Luego pulsamos clic en el botón concretar y se desplegará un cuadro de dialogo como el 
ilustrado en la figura siguiente.
    319/742
    Como se puede apreciar aparecen 4 tablas, están en Wikipedia, seleccionamos la primera de 
ellas y en la parte inferior pulsamos clic en el botón Editar.
¡Advertencia! Fíjate que las columnas: Población cabecera, población y Población 
total son de tipo texto debido a que los miles están separados por un espacio, es
decir, aparece: 8 164 178 en lugar de 8164178. Para solventar el inconveniente es 
necesario remover esos espacios, no obstante, dicho espacio no es un espacio 
convencional (como el que se crea utilizando la barra espaciadora)
    320/742
    Para realizar esta tarea seleccionamos las tres columnas de población, para ello, basta con 
pulsar clic encima de la columna Población cabecera y manteniendo pulsado la tecla shift 
seleccionar la última columna, población total.
Ahora, pulsamos clic derecho en cualquiera de la columnas seleccionadas y a continuación se 
desplegará un menú contextual, en dicho menú debemos pulsar clic encima de la opción 
reemplazar valores.
Con la acción anterior se despliega el cuadro de diálogo siguiente:
    321/742
    Para que el cuadro de diálogo te quede como la imagen anterior es necesario desplegar las 
opciones avanzadas, seleccionar el check box reemplazar con caracteres especiales y en la lista
de opciones desplegar y seleccionar espacio de no separación. Con esto queda la tabla lista, cerrar 
y aplicar.
Crear Columna Calculada
Para crear una columna a calculada basta con ir a la vista de datos y selecciona la tabla Población 
Colombia en el panel de campos y una vez allí ir la pestaña Inicio, grupo cálculos.
Nota, Renombrar la consulta con un nombre más corto, por ejemplo: Población 
Colombia.
    322/742
    El funcionamiento de la barra de fórmulas DAX se activa una vez pulsamos clic encima del 
comando Nueva Columna que es igual para las medidas, por ejemplo, podemos crear la siguiente 
columna calculada:
Nota Aprecia como la expresión es igual para toda la columna, sin embargo, los 
valores son diferentes para fila, esto es así porque Power Pivot ejecuta la fórmula 
fila a fila. Puedes asemejarla a las tablas estructuradas de Excel.
Nótese que aprovechamos inmediatamente 
para renombrar la columna calculada por 
Población efectiva.
    323/742
    Funciones DAX en Columnas Calculadas
En las Columnas Calculadas no estamos limitados solamente a los operadores.
También podemos utilizar todo el abanico de funciones del lenguaje DAX, por ejemplo, para 
nuestra columna población efectiva necesitamos redondear al número de abajo Es población al 
fin y al acabo.
Para ello podemos utilizar la función ROUNDDOWN, así:
Como se puede ver ROUNDDOWN tiene dos argumentos: 
ROUNDDOWN (<Número>; <Decimales>)
En el primer argumento dejamos la expresión que habíamos creado previamente y en el 
segundo argumento ponemos un cero, el resultado luce así:
    324/742
    Cuando decimos un aroma al principio de capítulo nos referimos a las variables, no es un tipo 
de cálculo DAX sino una forma de optimizar y documentar expresiones DAX. El lenguaje DAX 
es tan estupendo y útil que su popularidad crece exponencialmente en la comunidad de usuario 
de Excel y profesionales en inteligencia de negocios, con ello las mejoras que se hacen a él son 
constantes, mes a mes, año a año. Por lo anterior hoy podemos decir que el lenguaje DAX, es 
un lenguaje de programación de Microsoft SQL Server Analysis Services (SSAS) y Microsoft 
Power Pivot. 
Para la versión 2016, ya no sólo hablamos de iteraciones (Bucles), literales (constantes), sino 
también al que es parte integra de los lenguajes de programación: Variables en el Lenguaje 
DAX.
Acerca de Variables
Las variables en el lenguaje DAX son una de las características que hace que nuestras fórmulas 
DAX se puedan leer con mayor facilidad, y con ello documentarlas de manera indirecta, esto 
Nota Las Columnas Calculadas en Power Pivot aparecen como campos normales 
en el panel de campos de Power BI, esto quiero decir que las podemos utilizar de 
igual manera en las distintas áreas de colocación.
Nota Las variables bridan una ruta alterna para llamar al contexto de fila 
automático, este tema requiere de libros o cursos más avanzados en DAX, por 
ejemplo: Máster en DAX y Power Pivot.
    325/742
    incide en que la legibilidad aumenta al igual que la capacidad para reciclarlas y utilizarlas en 
otros escenarios.
- Sintaxis:
La sintaxis para el uso de variables en el Lenguaje DAX, es bastante sencilla
VAR 
<NombreVariable> = <Expresión DAX para Medida o Tabla>
RETURN 
<Expresión DAX>
Ejemplo Básico: Descuentos
Vamos a crear una medida de ejemplo básica con variables:
Nota, Se pueden declarar cuantas variables necesitemos, esto lo logramos 
utilizando la palabra VAR el número n de variables que necesitemos antes de la 
palabra reservada RETURN.
    326/742
    Las Medidas son un cálculo DAX de un valor supremamente alto por eso, organizarlas y 
documentarlas permitirá tener un modelo de datos ordenado y fácil de utilizar, en Power BI 
podemos lograrlo mediante:
▪ Tablas para Alojar Medidas
▪ Descripción de Medidas
Tablas para Alojar Medidas
Cuando creamos una medida esta quedará en la tabla que tengamos seleccionada en el panel 
de campos, sin embargo, al tener muchas medidas, digamos decenas están quedaran 
desperdigadas por todas partes complicando la búsqueda de una especifica rápidamente, claro 
el buscador que aparece en la parte superior del panel de campos facilita la cosas, pues si 
digitamos en el cuadro de texto las iniciales del nombre de la medida, este filtrara todas aquellas 
que empiecen por estas letras, ejemplo, si ponemos las letras Medi veremos que se filtra le 
medida Media GEO de Ingresos.
El desliz se presenta cuando no recordamos el nombre de la medida, para solventar este revés 
recomendamos crear una tabla exclusiva para alojar medidas, de hecho, podemos crear tantas
    327/742
    tablas para alojar medidas como necesitamos, con esto conseguiremos agruparlos por 
categorías, ejemplos: medidas de inventarios, medidas de ventas, etc.
– Elaboremos las Siguientes Medidas teniendo la tabla Pedidos Seleccionada
Nuestras medidas “Desperdigadas” deberán lucir algo así:
Mediana de Ingresos = 
MEDIAN ( Pedidos[Ingresos] )
Media Aritmética de Ingresos = 
AVERAGE ( Pedidos[Ingresos] )
    328/742
    – Pasos para Crear Tabla Para Alojar Medidas
Para crear una categoría propia de medidas debemos seguir cuatro pasos sencillos, el primero ir 
a la pestaña Inicio y el grupo Datos Externos pulsar clic en el comando Especificar Datos.
Se desplegará el cuadro de diálogo de la imagen debajo, allí no debemos hacer nada sólo 
cambiar el nombre Tabla1 por algo más descriptivo, ejemplo: Medidas, pulsar clic en cargar.
Renombrar 
por algo más 
descriptivo
    329/742
    El segundo paso es: ir a la vista de Datos, en el panel de campos seleccionar la tabla creada 
(Medidas) y luego pulsar clic derecho encima de la única columna que tiene, en el menú que 
aparece pulsar clic en Ocultar en la vista de informe.
El tercer paso consiste en llevar todas las medidas a la tabla Medidas, por ejemplo, en la vista de
Informe selecciona la medida Media GEO de Ingresos, una vez hecho esto vamos a la pestaña 
Modelado y el grupo Propiedades desplegamos las opciones de Tabla Inicial para finalmente pulsar 
clic en Medidas.
Vita de 
Datos
Seleccionar 
Columna
Ocultar en 
la vista de 
informe
¡Advertencia! Cuando uno se habitúa a crear tablas de medidas, el paso de Ocultar 
en la Vista de Informe muchas veces es omitido, sin embargo, es importante pues 
será el que tendrá el efecto para que aparezca el icono de medidas en vez de tabla 
y se posicione en la parte superior del panel de campos.
    330/742
    El cuarto paso es ocultar y volver a mostrar el panel de campos.
Pestaña Modelado
5
Tabla Inicial
Nota Se debe seleccionar medida a medida e ir moviéndola a la tabla con nombre 
Medidas, por lo anterior es recomendable crear la tabla o tablas para alojar medidas 
antes de empezar a crear cálculos DAX. 
Ocultar y mostrar 
el Panel de Campos
    331/742
    El efecto del cuarto paso será que la tabla de medidas quedará en la parte superior del panel de 
campos y además en su extremo izquierdo en lugar de aparecer el icono de tabla aparecerá el 
icono de medidas, la calculadora.
Descripción de Medidas
Otra opción importante para las medidas es la posibilidad de agregar una descripción, por 
ejemplo, la medida Media Aritmética de Ingresos nos puede parecer que tiene un nombre muy 
largo por lo que podemos optar por un abreviado, algo así MedArt Ingresos, no obstante, se nos 
puede olvidar que significa o si lo utiliza un tercero no entendería. 
5
Nota En Excel también se puede conseguir el efecto y creación de tablas para alojar 
Medidas, la diferencia radica en crear una tabla vacía en una hoja aparte, es decir, 
una sola columna y una sola celda vacía, los pasos posteriores son exactamente 
iguales.
    332/742
    Para solucionar este inconveniente simplemente podemos añadirle una descripción a la medida, 
para ello seleccionamos la medida en el panel de campos, vamos la pestaña Vista y habilitamos 
el panel Propiedades de Campo, este panel aparecerá entre el panel de visualizaciones y el panel de 
campos.
Veremos claramente que hay un espacio para añadir una descripción, allí podemos poner algo 
así: Esta medida devuelva el promedio o media aritmética de los datos.
¿Qué efecto tiene la descripción?
La descripción se verá reflejada en el tooltip cuando posicionamos el cursor del mouse en el 
nombre de la medida en el panel de campos.
    333/742
    Inteligencia de Negocios con Excel y Power BI - Page 334
    334/742
    CAPÍTULO 13 
Después de completar este capítulo tú sabrás:
▪ Qué son las medidas explícitas manuales o medidas rápidas
▪ Cómo crear medidas rápidas de agregados por categorías
▪ Cómo crear medidas rápidas de filtros
▪ Cómo crear medidas rápidas de inteligencia de tiempo
Muchas veces el lenguaje DAX puede llegar a ser intimidante, porque si bien al principio dominar 
sus fundamentos es bastante sencillo a medida que se va avanzando o realizando escenarios 
más complejos nos encontramos que entender la temática de contextos requiere de tiempo y 
práctica.
La buena noticia es que, a parte de las medidas implícitas, Power BI nos brinda la posibilidad de 
crear medidas explícitas de manera automática sin necesidad de conocer nada acerca del 
lenguaje DAX. Todo lo anterior gracias a una interfaz amigable mediante un cuadro de dialogo 
donde indicamos unos parámetros iniciales. 
Las medidas rápidas fueron una característica de versión preliminar hasta principios de febrero 
del 2018, de allí en adelante ya es parte integral de Power BI, esto quiere decir que Power Pivot 
para Excel no cuenta con esta alternativa.
    335/742
    Para llegar al cuadro de diálogo de medias rápidas únicamente debemos ir a la pestaña inicio y 
ubicar el grupo cálculos, el último comando tiene por nombre nueva medida rápida.
Una vez ejecutamos el comando Nueva medida rápida lo que va a ocurrir es que se despliega el 
cuadro de diálogo con el mismo nombre.
    336/742
    Allí en el cuadro de diálogo si mostramos la lista desplegable de cálculos podremos observar 
que hay categorías generales (aquellas que están resaltadas en negrita). Estas son:
▪ Agregados por categorías
▪ Filtros
▪ Inteligencia de Tiempo
▪ Totales
▪ Operaciones aritméticas
▪ Textos
Aquí vamos a describir las tres primeras categorías.
Agregados por Categorías
Estas medidas rápidas nos van a permitir tener un cálculo diferente en niveles distintos de una
matriz, por ejemplo: supongamos que tenemos una matriz con los campos País y Tipo de compra
de la tabla Pedidos en el área de filas.
    337/742
    El objetivo sería conseguir que a nivel de país aparezca por ejemplo el promedio de los ingresos 
y a nivel de tipo de compra la suma de los ingresos. Es esta tarea precisamente la que se logra 
mediante la sección agregado por categoría de las medidas rápidas.
Antes de ir al detalle de cómo crear esta medida rápida o receta DAX elaboramos una medida 
explícita manual que nos arroje los ingresos totales.
Ya con la medida creada la llevamos al área de valores de la matriz previamente creada, 
quedando de la siguiente manera:
    338/742
    Después vamos y ejecutamos el comando Nueva Medida Rápida y seleccionamos el cálculo: 
Promedio por categoría.
En valor base debemos llevar el cálculo o medida que queremos que se ejecute a nivel de Tipo 
de Compra, mientras que en Categoría debemos llevar el campo Tipo de compra.
    339/742
    Una vez configurado el cuadro de diálogo pulsamos clic en el botón Aceptar, la medida quedará 
en el panel de campos.
Como podemos apreciar su nombre es extenso, para cambiarlo únicamente debemos pulsar 
dos veces clic encima del icono de una calculadora para que se habilite la barra de fórmulas DAX 
y nos muestre el nombre.
Para cambiar el nombre recordemos que lo único que debemos hacer es cambiar el texto al lado 
izquierdo del igual.
    340/742
    Ahora procedemos a llevar la medida rápida recién creada al área de valores de la matriz.
En la matriz podemos comprobar que a nivel de país es promedio y en tipo de compra la suma.
    341/742
    Para cambiar el nombre recordemos que lo único que debemos hacer es cambiar el texto al lado 
izquierdo del igual.
Filtros
Estas medidas rápidas nos van a permitir crear un cálculo que tenga en cuenta alguna 
restricción o filtro de algún campo en el modelo de datos.
Por ejemplo: supongamos que tenemos una matriz con el campo País el área de filas y la medida 
ingresos totales en el área de valores.
Lo que se desea conseguir es que el valor de Colombia aparezca en cada casilla de la matriz 
independientemente del país asociado.
Para conseguirlo lo único que debemos hacer es ir a una nueva media rápida y en cálculos 
seleccionar de la sección filtro la subsección de valor filtrado.
    342/742
    En valor base debemos llevar el cálculo ingresos totales, en filtro el campo País, una vez llevamos 
el campo se nos habilitará los elementos únicos:
▪ Argentina
▪ Brasil
▪ Chile
▪ Colombia
▪ Ecuador
▪ Paraguay
▪ Perú
▪ Uruguay
▪ Venezuela
    343/742
    Aquí seleccionamos Colombia.
Ubicamos la medida y arrastramos al área de valores de la matriz previa. 
Nota La metodología para agregar medidas rápidas es exactamente la misma para 
cualquier sección, de hecho, los valores a configurar son bastante descriptivos. Por 
ello aquí sólo hacemos una descripción breve y rápida
    344/742
    Las demás subsecciones hablan por sí solas:
Diferencia respecto al valor filtrado
Diferencia porcentual respecto al valor filtrado
Inteligencia de Tiempo
Estas medidas rápidas nos van a permitir crear unos cálculos donde sus transacciones utilizan 
fechas específicas o intervalos de tiempo determinados, inclusive, el 90% de las tablas siempre 
cuentan con por lo menos un campo de fecha.
El Lenguaje DAX no es ajeno a ello, por eso trae un paquete especial de funciones encaminadas 
a moldear fechas y permitir reportes que de otra manera serían muy difíciles de lograr, en 
ocasiones hasta imposibles. Esta categoría de medidas rápidas son las correspondientes a la 
sección de inteligencia de tiempo.
    345/742
    Creemos una matriz con el campo fecha de envió en el área de filas y la medida Ingresos Totales
en el área de valores, la matriz final luciría así:
En la matriz anterior debemos pulsar dos veces clic en el tercer circulo en la parte superior, 
contando de izquierda a derecha, esto para que se expanda la jerarquía aparezcan trimestre y 
meses. A pesar de ello, el nivel de jerarquía en trimestre no será necesario, por lo que debemos 
quitarlo pulsando clic en el área de filas donde aparece la palabra trimestre.
    346/742
    La matriz debe tener el siguiente aspecto:
Lo que se desea conseguir es el total acumulado desde el principio del año hasta le fecha o mes 
actual que se esté mirando en la matriz.
Para conseguirlo lo único que debemos hacer es ir como ya hemos intuido a crear una nueva 
media rápida y en cálculos seleccionar de la sección de inteligencia de tiempo la subsección de 
total anual hasta la fecha.
En el cuadro de diálogo debemos llevar a Valor Base Ingresos Totales y en fecha el campo Fecha 
de envío de la tabla Pedidos.
    347/742
    Como ya es costumbre debemos pulsar clic en el botón aceptar y ubicar la nueva medida rápida 
(su nombre por defecto es YTD Ingresos Totales) y arrástrarla al área de valores de la matriz 
previa.
    348/742
    Con las descripciones de este capítulo queremos que te enteres de la existencia de las medidas 
rápidas, por lo que no es un capítulo para explorar cada una en detalle ya que ellas se explican 
por si solas, sino más bien trazar los lineamientos generales, de hecho, en el caso de la sección 
de inteligencia de tiempo el solo nombre explica que hace cada media rápida por si misma:
▪ Total Anual Hasta la Fecha
▪ Total Trimestre Hasta La Fecha
▪ Total Mensual Hasta la Fecha
▪ Cambio Año a Año
▪ Cambio Trimestre a Trimestre
▪ Cambio Mes a Mes
▪ Media Acumulada
Lo que recomendamos es que explores y juegues con las demás secciones y subsecciones para 
que te familiarices con lo que se puede encontrar en las medidas rápidas.
    349/742
    Inteligencia de Negocios con Excel y Power BI - Page 350
    350/742
    CAPÍTULO 14 
Después de completar este capítulo tú sabrás:
▪ Los Tres Pilares de Todo Crack en DAX
▪ Acerca del Ecosistema DAX
▪ Los Tres Pasos (Internos) Primordiales en DAX
▪ Contextos en DAX
Nosotros, los autores de este libro hemos tenido la bonita oportunidad de impartir cursos y 
entrenamientos presenciales sobre inteligencia de negocios con Power BI; análisis de datos y 
lenguaje DAX; preparación de Datos y lenguaje M, análisis rápido y lenguaje natural así como
visualización de datos y Excel en general. Por lo anterior sabemos que el lenguaje DAX cuesta, 
si, el lenguaje DAX toma su tiempo para dominar e interiorizar de verdad y algo que hemos 
detectado es que dejar pasar desapercibido o no ponerles toda la atención a los contextos del 
lenguaje DAX es el primer causante de un aprendizaje un poco menos que acelerado.
Lo anterior no te lo decimos como una mala noticia, sino más bien como lo mejor que puede 
pasar antes de arrancar el capítulo actual ya que te recomendamos que prestes y leas muy 
detenidamente cada párrafo, línea, palabra y letra que sobreviene, porque es el capítulo que se 
dedica a ver los fundamentos del lenguaje DAX, estos fundamentos son los cimientos que 
deben quedar supremamente sólidos y sin ningún atisbo de humedad para poder crear métricas, 
cálculos e indicadores deseados.
    351/742
    Analogía para Propagación, Contexto y VertiPaq
Al principio e incluso por un período de tiempo significativo puede parecer que estos tres 
componentes (Propagación de filtros, contexto de evaluación y VertiPaq Engine) pertenecen a 
un ambiente divergente en un ecosistema constituido por funciones y fórmulas.
A pesar de la primera impresión, la realidad es más extensa, nos explicamos y siguiendo la 
analogía ambiental:
DAX es un ecosistema donde la fauna y flora se corresponde con las funciones y operadores del 
lenguaje, es allí donde recae nuestra atención cuando empezamos a navegar por las aguas de 
las Expresiones para el Análisis de Datos, pero como todo sistema debe existir un ambiente 
donde se relacionan (Contextos) y en cuyo hábitat ocurren interacciones (Propagación de 
filtros).
Así mismo, dicho ecosistema debe estar en equilibro para que se sostenga por sí mismo y de 
resultados óptimos (VertiPaq Engine)
Nota
Grábate esto a fuego:
“Todo Crack en DAX; por lo tanto, Máster en Power Pivot, Gurú en Power BI y Promesa 
en SSAS debe dominar tres cosas al dedillo y conocerlas como si fuera la palma y el dorso 
de su mano: Propagación de Filtros, Contextos y VertiPaq Engine.”
    352/742
    Para tomar lo comentado en la sección previa del presente capítulo en el matiz de los términos 
del motor interno del lenguaje DAX vamos a darles una primera y pequeña definición a los “Los 
3 Pilares de Todo Crack en DAX”: Contexto de evaluación, propagación de filtros y el motor 
VertiPaq.
▪ Contexto de Evaluación: Es el ambiente bajo el cual se ejecuta una función o expresión 
DAX.
▪ Propagación de Filtros: Cómo, cuándo y por qué interactúan las distintas tablas en el 
modelo de datos, es decir, como esas relaciones creadas en el capítulo 11 trabajan en 
conjunto.
▪ VertiPaq Engine: A parte de poder crear expresiones DAX de todo tipo es necesario 
crearlas de manera optimizada, es decir, crear código DAX que se ejecute de la manera 
más rápida posible (Para ello hay que entender el motor interno, VertiPaq Engine).
Nota No obstante, no recomendamos que te aventures y preocupes por dominar 
estos tres pilares en simultaneo, de hecho, recuerda que un conocimiento holgado 
en ello es lo que da la experticia en DAX y sólo el tiempo y la práctica permite 
alanzar esta meta; para todo esto es necesario seguir una hoja de ruta para ir 
escalando progresivamente.
Es más, en este libro únicamente tratamos una breve introducción a contextos y 
propagación de filtros debido a que profundizar en esta temática requiere de un 
plan de estudio muchísimo más amplio que queda por fuera del alcance de este 
libro.
    353/742
    Contextos en DAX
– ¿Qué es un Contexto?
Te hemos mencionado que el contexto es el ambiente bajo el cual se ejecuta la función o 
expresión DAX.
– ¿Qué significa esto?
Es esencial entender que la definición anterior es sólo una primera aproximación definición y 
entendimiento del contexto de evaluación. No obstante, vamos paso por paso, para dilucidar 
correctamente esta primera definición de contextos. Para hacer la explicación más sencilla y 
amena aquí vamos a utilizar unas tablas alternas y pequeñas, vamos a conocer la tabla de datos:
La tabla registra las ventas día a día en el mes de junio del 2017 para los distintos productos de 
un restaurante, almacenando cantidad y tiempo de entrega en minutos, el id de producto y la 
fecha adscrita a la transacción.
Contexto El contexto es el pedacito de tabla donde se ejecuta la expresión DAX 
bien sea una medida, columna calculada o tabla calculada.
    354/742
    Como ya sabes que las medidas implícitas esconden una filosofía más devastadora que el anillo 
de mordor, por este hecho vamos a proceder a crear una medida explícita manual que nos arroje 
la suma de las cantidades o la suma del campo Quantity de la tabla de registros de cantidades 
del restaurante.
A continuación, elaboremos una matriz con los Product Id en el área de filas y la medida recién 
creada Quantity Tot en el área de valores.
– A desmenuzar lo que sobreviene en la matriz
Inicialmente, lo evidente: Cada valor de la medida Quantity Tot es diferente. Si lo sabemos: “y el 
agua moja” pero debemos ser capaces de ver algo más allá porque hay un aspecto trascendental 
en esta premisa que puede parecer, hay que decirlo, un poco tonta.
Pero lo que debemos preguntarnos en realidad es: ¿Cómo llega Power BI a esos resultados? para 
acotarlo más: ¿Cómo llega Power BI llega al valor de 299 en la matriz?
    355/742
    Una respuesta con alta probabilidad de cómo llega Power BI al valor 299 sería: «299 
representa la cantidad total vendida para el producto con ID 1»
Y sin duda alguna es una respuesta maravillosa, pero; si, siempre hay un, pero. ¿Por qué los 
valores varían si la fórmula es exactamente la misma?
¡Advertencia! Más que analizar el valor 299 de la matriz y cómo llega a él, lo que 
se desea analizar es como llega al valor de la casilla donde se encuentra el valor 
299. Esto es importante porque a continuación utilizaremos unas tablas mucho 
más acotadas de resumen para entender la explicación de la mejor manera posible. 
Recordar, estamos analizando la posición en la casilla especifica de la matriz.
    356/742
    ¿Cómo llega exactamente el DAX Engine de manera interna a ese valor? Ahora si no es tan evidente. 
“Entender cómo el DAX Engine llega a estos valores es clave” 
Para ello hay que interiorizar los tres pasos primordiales en DAX.
Para cada valor en el área de valores de una medida DAX siempre hay que pensar en estos tres 
pasos primordiales:
1. Identificar Filtros
2. Aplicar Filtros
3. Ejecutar Expresión DAX
Recalamoslo siguiente: Para Cada Valor En El Área De Valores
Es decir, los tres pasos se aplican para cada “casilla” de manera completamente independiente 
y de forma única. ¡No lo olvides!
Sin embargo, lo anterior puede ser algo engañoso, porque analizar cada “celda” en un objeto 
visual que no sea una matriz (o tabla dinámica en Power Pivot) puede llegar a ser confuso por 
eso lo que nosotros recomendamos es la metodología: Evolución Matriz a Gráfico.
Nota, Entender cómo llega el motor de DAX a los valores de las casillas en una 
matriz es el peldaño que te llevará a dominar este lenguaje. 
Nota La metodología evolución Matriz a Gráfico es estudiado en el capítulo 20 del 
presente texto.
    357/742
    Identificar Filtros
Como sabemos que se debe analizar “casilla” por “casilla” vamos a tomar la POSICIÓN que 
corresponde al valor de: 299
– ¿Cuáles son los filtros?
Todo lo que rodea a la celda y restringe
Para este caso:
• OrderHistoryOfJun2017[Product Id] = 1
Visto de otra manera, todos aquellos campos que no están en el área de valores y el elemento 
respectivo de la celda analizada involucrado en la matriz.
Ahora tenemos la lista de requerimientos (Filtros), es momento de aplicarlos.
Aplicar Filtros
¡Advertencia! para visualizar mejor los 3 pasos primordiales, vamos a tomar una 
mini-versión de la tabla OrderHistoryOfJun2017, esto quiere decir que el valor 
resultante no será 299 sino uno muchísimo más pequeño porque es una tabla 
simplificada. dicho con otras palabras: Estamos estudiando la posición donde se 
encuentra el valor 299.
Filtros Es una o más restricciones aplicados a una tabla que tiene como fin 
segmentarla en un conjunto más pequeño de acuerdo con la especificación de
este.
    358/742
    Habiendo dicho esto sigamos, ahora es necesario tomar los filtros identificados en el paso 1 y 
aplicarlos a la tabla:
    359/742
    Únicamente hasta este punto entra en juego la expresión DAX de la medida.
Ejecutar Expresión DAX
La expresión DAX de la medida ahora si entra al juego ¿Quién es la expresión DAX? La asignada a 
la medida que estamos analizando.
¿Recuerdas le medida que estamos analizado
Así es: Quantity Tot:= SUM ( OrderHistoryOfJun2017[Quantity] )
Pero fíjate que sólo hasta ahora se va a ejecutar la expresión DAX, quiere decir que los pasos 1 
y 2 se ejecutan siempre primero, SIEMPRE.
¿Qué podemos concluir?
¿Entiendes?
Se ejecuta en el ambiente (de tablas) que se ha generado previamente, es decir, en los pasos 
1 y 2.
Es por eso que el resultado de la fórmula o expresión DAX varia, porque a pesar de ser 
exactamente la misma para cada “casilla” el pedacito de tabla donde se ejecuta cambia debido 
a los filtros aplicados en ella.
Nota,
Haz Parte de Tu Ser Esto:
“La Expresión DAX de la medida se aplica sólo en el pedacito de tabla que queda visibles
después de aplicar los filtros”
    360/742
    La expresión DAX es la misma, pero el ambiente (Contexto) donde se ejecuta varia.
De ahora en adelante cada vez que mires un valor piénsalo y analízalo en términos de estos tres 
pasos, piénsalo siempre así hasta que sea completamente automático, hasta que pienses
instintivamente con el DAX Engine, conviértalo en tu mantra así iras en el camino correcto para 
dominar DAX.
Si bien hemos hablado de los contextos en DAX como un ente único, la realidad juega un papel 
más amplio, en realidad existen dos contextos.
▪ Contexto de Fila
▪ Contexto de Filtro
Podemos pensar en el contexto de filtro como el pedacito de tablas que es visible para la ejecución 
de la expresión DAX en una medida, ojo para un tipo de cálculo medida.
    361/742
    Por otra parte, el contexto de fila es el pedacito de tablas que es visible para la ejecución de la 
expresión DAX para un tipo de cálculo columna calculada.
Contexto de Filtro
La explicación que hemos hecho hasta este punto corresponde al contexto de filtro, es decir, 
que es el fragmento de tabla válido o visible dictado por la matriz para la ejecución de la 
expresión DAX analizado siempre casilla a casilla.
Contexto de Fila
Para entender el contexto de fila, vamos a tomar nuevamente un escenario resumido, en este 
caso una pequeñísima tabla de productos, unidades y precio de venta.
Si queremos crear una columna calculada con el total, la expresión DAX sería:
Total Venta= Datos[Unidades] * Datos[Precio]
Contexto de Evaluación A la sumatoria de los dos contextos, es decir, contexto 
de filtro + contexto de fila una o más restricciones se le denomina contexto de 
evaluación.
    362/742
    Cuando ejecutamos la columna calculada el resultado es el siguiente:
Los valores cambian a lo largo de la columna calculada Venta total, pues como podemos 
observar los tres valores son diferentes: 189, 308 y 203, empero, la fórmula es idéntica para 
cada una de las casillas, así:
Entonces, ¿Por qué los valores son diferentes si la expresión DAX es igual? La respuesta por que el 
contexto de fila es diferente. El contexto de fila es la fila actual, mejor dicho, en una columna 
calculada se va ejecutando fila a fila en un proceso iterativo, quiere decir que en un primer 
momento la columna calculada para la primera casilla solo tendrá visible la primera fila en la 
tabla, lo cual es la fila actual, mientras que las demás filas quedan ocultas.
Luego pasa a la segunda fila y solo tendrá visible la fila actual, que para dicha situación sería la 
segunda fila en la tabla, dejando las demás filas ocultas para la ‘formula DAX asociada a la 
columna calculada.
= Datos[Unidades] * Datos[Precio]
= Datos[Unidades] * Datos[Precio]
= Datos[Unidades] * Datos[Precio]
    363/742
    De forma ilustrada para la primera fila en una columna calculada podemos visualizarla de 
manera gráfica como la presentada en la siguiente imagen.
Claro, como en la fila actual para la primera parte de la expresión: Datos[Unidades] sólo existe 
una casilla, entonces devuelve el valor 21, de la misma manera, para la segunda parte de la 
expresión Datos[Precio] existe una fila entonces devolvería 21, ya con dos valores escalares 
ejecuta la operación 9*21 sin ningún inconveniente arrojando el valor 189.
Contexto de Fila Automático El contexto de fila es la fila actual en la ejecución de 
una columna calculada, la cual produce el pedacito de tabla visible para la 
expresión DAX. A esta fila actual se le conoce específicamente como contexto de 
fila automático, especialmente importante distinguirla e identificarla por su nombre 
porque como veras en el capítulo siguiente existe otro contexto de fila, llamado 
contexto de fila programable.
    364/742
    CAPÍTULO 15 
Después de completar este capítulo tú sabrás:
▪ Funciones Tabulares y Escalares
▪ Función FILTER
▪ Funciones de Agregación Iterativas
▪ Funciones para Ignorar el Contexto de Filtro
Hasta este punto del viaje, hemos visto que el lenguaje DAX cuenta con una vastedad de 
funciones que son muy similares por no decir que idénticas al motor clásico de funciones de 
Excel, sin embargo, y si nos permites el símil matemático el lenguaje DAX tiene un eje de 
coordenadas z donde se encuentra un grupo de funciones que arrojan como resultado no un 
valor numérico sino una tabla de valores.
Dilucidar el ABC de las funciones tabulares o aquellas que retornan una tabla como resultado 
es la situación idónea para dirigir un ascenso en el lenguaje de funciones para el análisis de 
datos, pero este no es el único componente de la ecuación, también es parte integral entender 
el comportamiento interno de las funciones de iteración de agregación, decimos “de 
agregación” porque las funciones vienen dividas en dos “razas”, la funciones de iteración que 
arrojan un escalar o valor único y las funciones de iteración que devuelven una tabla como salida 
final. Este capítulo también va acaramelado con las funciones ALLxxxx. Las funciones ALLxxxx
son un conjunto de funciones tabulares que tienen como característica adicional que son 
capaces de ignorar o “hacerse los de la vista gorda” con el contexto de filtro. Estas funciones 
también son un componente de la ecuación inicial para emprender el camino en los terrenos 
del lenguaje DAX.
    365/742
    En el lenguaje funcional DAX existen un millón más uno de clasificaciones posibles para sus 
funciones, desde su comportamiento respecto al contexto, según el linaje de creación del 
cálculo, según su tipo en un área concreta, según su funcionamiento interno, según las 
relaciones de las tablas, según la propagación de filtros, etc. Etc. No obstante, existe un 
clasificación etérea, inmutable y obligatoria: Según el resultado que arroja la función.
▪ Funciones Escalares
▪ Funciones Tabulares
Funciones Escalares
Las funciones escalares son aquellas que al devolver un resultado final devuelven un único 
elemento, es decir, un valor atómico, por ejemplo: 5, TRUE, a, -9, etc. Etc. Estas funciones son 
bastante familiares por el simple hecho de que son el caso más común de las funciones de 
Microsoft Excel.
– Algunos ejemplos de funciones que devuelven un escalar:
▪ SUM
▪ ROUNDUP
▪ MID
▪ ISLOGICAL
▪ AVERAGE
▪ INT
▪ TRUE
▪ DISTINCTCOUNT
▪ TODAY
    366/742
    Funciones Tabulares
Hay una rama de funciones que retornan una tabla como resultado final, estas funciones son 
las que denominamos funciones tabulares y en un 99% no tienen ningún símil con Excel (Es más 
hay gran número de funciones escalares que no tiene ningún equivalente con Excel)
– Algunos ejemplos de funciones que devuelven una tabla:
▪ FILTER
▪ SUMMARIZE
▪ ALL
▪ VALUES
▪ CALCULATETABLE
▪ DATEADD
▪ CROSSJOIN
¡Advertencia! Las medidas y columnas calculadas sólo admiten funciones escalares, 
si por ejemplo creamos una medida con una función FILTER (FILTER(Pedidos; 
Pedidos[País]=”Colombia”)) devolverá inevitablemente un error.
–¿Puedes deducir por qué? 
Esta premisa es excelente para que la entiendas y análisis siguiendo los tres pasos 
del capítulo anterior; te pedimos de la manera más comedida que así lo hagas, 
puedes comprobar si estas entendiendo DAX y la temática de contextos.
Nota Cuando decimos funciones de Excel nos referimos al motor clásico de 
funciones, es decir, al que utilizamos en las celdas de las diversas hojas. Esto lo 
resaltamos porque en Excel tenemos Power Pivot que funciona con el mismo 
lenguaje DAX.
    367/742
    La función tabular número uno a conocer por excelencia es la función FILTER. La función FILTER 
devuelve una tabla acotada según una restricción dada, concretamente, si deseamos retornar 
la tabla Pedidos, pero únicamente si el país es Colombia lo podemos conseguir gracias a la 
función FILTER, análogamente podemos pensar en la función FILTER como una función que 
aplica un filtro a una tabla.
Sintaxis de la Función FILTER
= FILTER( <Tabla>;<Condición o Filtro>)
▪ Tabla: Aquí debemos indicar algo tan sencillo como el nombre de una tabla, ejemplo: 
Pedidos, ‘Categoría de Productos’ o algo más complejo como una función que retorne 
una tabla. Has este punto esto querría decir que en el primer argumento podemos poner 
otro FILTER, sin embargo, y concedido la lista de funciones tabulares de ejemplos dadas 
en el apartado anterior sabemos que en el primer argumento podemos poner funciones 
tales como: ALL, VALUES, CROSSJOIN, etc., etc.
▪ Condición o filtro: Aquí debemos indicar el filtro o restricción que le queremos realizar 
a la tabla pasada en el primer argumento de la función.
Para seguir el ejemplo de este primer apartado, si deseamos retornar la tabla Pedidos, pero 
únicamente si el país es Colombia la fórmula DAX sería:
=FILTER (
 Pedidos;
 Pedidos = "Colombia"
)
    368/742
    Se mencionaba también que en el primer argumento se puede proporcionar una función o 
expresión que devuelva una tabla. Pongamos la siguiente situación, queremos devolver la tabla 
Pedidos para el País Colombia y el Tipo de Compra igual a Normal.
Conociendo lo anterior, la expresión DAX sería.
Evidentemente existen otras maneras de lograr la tarea señalada, por ejemplo, con
▪ El operador lógico O
▪ La función OR
▪ Y la ya mencionada anidación de funciones FILTER.
Vamos a documentar las dos variantes diferentes. Con la función OR:
=
FILTER (
 FILTER ( Pedidos; Pedidos[Tipo Compra] = "Normal" );
 Pedidos[País] = "Colombia"
)
=
FILTER (
 Pedidos;
 OR ( Pedidos[País] = "Colombia"; Pedidos[Tipo Compra] = "Normal" )
)
    369/742
    Con la función y el operador lógico O.
Cualquiera de las tres expresiones DAX anteriores las podemos utilizarlas en el tipo de cálculo
tabla calculada, para ello debemos recordar ir a la pestaña Modelado, ubicar el grupo Cálculos y 
seleccionar el comando: Nueva Tabla Calculada.
Peguemos la expresión de la solución número uno, es decir, la que contiene los dos FILTER 
anidados. Recordar que en la parte izquierda del igual podemos indicar el nombre del cálculo, 
en este caso vamos a llamar a la tabla calculada Pedidos Colombia.
=
FILTER (
 Pedidos;
 Pedidos[País] = "Colombia" || Pedidos[Tipo Compra] = "Normal"
)
    370/742
    Para visualizar el resultado de la tabla calculada el primer paso debemos ir a la vista de datos en 
el extremo izquierdo de la interfaz de Power BI con el icono de una tabla. En una segunda instancia
ubicar en el panel de campos, parte derecha de la interfaz, la tabla calculada con nombre Pedidos 
Colombia, la cual se distingue de las tablas nativas de Power BI por el hecho de que el icono en 
el extremo izquierdo es (como) de color azul tenue, bastante tenue pero distinguible.
Nota Para extraer o contraer la barra de fórmulas verticalmente basta con pulsar 
clic encima del icono en forma de flecha que se encuentra en la esquina superior 
derecha de la barra de fórmulas DAX, como podemos intuir la dirección de la flecha 
indica si se contrae o expande dependiendo del estado inicial.
    371/742
    Argumentos Tabulares en Funciones Escalares
La función FILTER es fácil de entender como hemos podido corroborar en los párrafos 
anteriores, la cuestión ahora sería sí las medidas y columnas calculadas únicamente admiten 
funciones o expresiones escalares, entonces:
–¿las funciones o expresiones tabulares son de utilización exclusiva para tablas calculadas? 
La respuesta es no, total, el título de este aparatado nos “echa al agua”, nos delata. El motivo 
por el cual las funciones tabulares no son de uso exclusivo de tablas calculadas es por el simple 
hecho que existen funciones que arrojan un escalar como resultado, pero en uno o más de sus 
argumentos reciben funciones o expresiones que retornen una tabla, y a aquí, se desata un gran 
poder.
Imaginemos que tenemos una matriz de Power BI donde en el área de filas tenemos el campo 
SKU de la tabla Pedidos, el objetivo es crear para dicha matriz una medida que al llevarla al área 
de valores nos arroje el número de ventas o transacciones si las unidades fueron estrictamente 
mayores a una.
Para suplir la demanda es necesario dar la bienvenida a la primera función escalar que en su 
único argumento recibe una tabla o una expresión que retorne una tabla, la función 
COUNTROWS.
= COUNTROWS(<Tabla o expresión tabular>)
Nota, Cada registro o fila de la tabla Pedidos corresponde a una transacción o 
venta, cada transacción puede tener asociada varias unidades vendidas, sin 
embargo, fueron realizadas al mismo cliente, por esto decimos que es una única 
venta.
    372/742
    Conociendo la función FILTER y la función COUNTROWS la solución al problema planteado salta 
a la vista.
Si construimos la matriz debe lucir como la siguiente figura:
Tx>1 =
COUNTROWS ( 
 FILTER ( Pedidos; 
 Pedidos[Unidades]>1 )
)
    373/742
    De hecho, podemos crear la función que retorne el número de transacciones sin ninguna
restricción.
La matriz:
De aquí podemos empezar a crear medidas más interesantes, por ejemplo: una medida que nos 
diga el número de transacciones para los países: Argentina, Brasil y Colombia siempre y cuando 
el tipo de compra sea igual a normal.
NumTx =
COUNTROWS ( Pedidos )
    374/742
    Conociendo la función FILTER y la función COUNTROWS la solución al problema planteado salta 
a la vista.
Otro conjunto de funciones que admiten en uno de sus argumentos una tabla o expresión 
tabular son las funciones de iteración.
Las funciones de iteración como su nombre lo indica son funciones que en su proceso interno 
siguen un proceso iterativo, las funciones de iteración se pueden dividir en dos clases:
▪ Funciones de Iteración de Agregación
▪ Funciones de iteración Tabulares
Siguiendo el apartado anterior las funciones de iteración de agregación son útiles por que admiten 
expresiones tabulares en sus argumentos, pero demás nos van a permitir crear cálculos que 
ejecuten operaciones en una base fila a fila u operaciones entre columnas.
TxArgBrColNormal =
COUNTROWS (
 FILTER (
 Pedidos;
 Pedidos[País] IN { "Argentina"; "Brasil"; "Colombia" }
 && Pedidos[Tipo Compra] = "Normal"
 )
)
    375/742
    Funciones con Sufijo X
Las funciones de iteración de agregación se van a caracterizar por tener un sufijo x, es decir, su 
nombre es como las funciones normales de agregación, pero al final tendrán la letra X, por tal 
motivo también se conoce a este conjunto de funciones como las funciones con sufijo X.
– Algunos ejemplos de funciones con sufijo X:
▪ SUMX
▪ AVERAGEX
▪ COUNTX
▪ MINX
▪ MAXX
▪ MEDIANX
▪ GEOMEANX
Estas funciones tienen la misma estructura de argumentos por lo que podemos dar una 
anatomía general para la sintaxis de las funciones de iteración de agregación.
– Anatomía de Sintaxis de las funciones con sufijo X:
= NOMBREX ( <Tabla o Expresión Tabular>;<Expresión en un base fila a fila>)
¡Advertencia! No todas las funciones con sufijo X siguen la anatomía de sintaxis 
general, de hecho, hay algunas que tienen un orden ligeramente diferente en sus 
argumentos y otras que tienen más de dos, no obstante, las funciones con sufijo 
X que no siguen la anatomía de sintaxis general no son la regla general sino una 
serie de casos especiales.
    376/742
    Para comprender, supongamos que necesitamos una medida que arroje los costos totales, pero 
siempre para el Tipo de Compra igual a devolución, básicamente en la tabla Pedidos tenemos tres 
costos: Costo del Producto, Costo de Empaque y Costo de Envío, a pesar de ello, no tenemos 
ninguna columna con el costo total. 
Si fuera sólo la parte de costo total, la solución sería como sigue:
El punto crítico sería como añadir la restricción para el tipo de compra devolución sin crear una 
columna calculada como paso intermedio, aquí necesitamos algo más poderoso y es 
precisamente las funciones de iteración de agregación.
Funcionamiento Interno de las Funciones con Sufijo X
Antes de resolver el escenario propuesto, vamos a estudiar el proceso interno de estas 
funciones con un esquema o tablas pequeñas simplificadas. La tabla tiene el nombre de ‘Dat’ y 
consta de 3 columnas denominada A, B y C. Adicionalmente esta pequeñísima tabla sólo cuenta 
con tres registros o filas, todos ellos son valores enteros.
Costo Total = 
 SUM(Pedidos[Costo del Producto]) +
 SUM(Pedidos[Costo Empaque]) +
 SUM(Pedidos[Costo de Envío])
Nota, No existe manera de añadir la restricción de tipo de compra con la función 
FILTER y luego utilizar la función SUM para solventar la solicitud de manera 
favorable, es más, la función SUM y ninguna de agregación básica admite algo 
diferente que no sea el llamado de una columna.
    377/742
    Vamos a tomar la función SUMX como modelo para entrever el funcionamiento interno de las 
funciones con sufijo X, además, vamos a tomar la siguiente medida:
– Proceso Interno:
Lo primero es asumir que la tabla sobre la cual va a trabajar la expresión DAX es la presentada 
tal cual la figura 15.6, dicho de otro modo, se toma la tabla de la figura 15.6 como el contexto 
de filtro.
Para nuestro caso concreto de la medida con expresión DAX anterior, la función con sufijo X va 
a la primera fila:
=
SUMX ( 'Dat' ; 
 ( 'Dat'[A] ^ 2 ) + ( 'Dat'[C] * 'Dat'[B] ) 
)
Nota La premisa general es que la función con sufijo X va fila a fila en la tabla de 
resultado proporcionada en su primer argumento ejecutando el cálculo que se ha 
señalado en su segundo argumento.
    378/742
    Para el primer momento, la primera iteración, corresponde a la primera fila de la tabla en la figura 
15.7 que hemos dicho es el contexto de filtro para este escenario, quiere decir, que para la 
expresión DAX únicamente existe esa primera fila y únicamente esa primera fila, las demás filas 
de la tabla quedan ocultas o son invisibles para la expresión DAX de la medida.
Por favor, presta muchísima pero muchísima atención a la siguiente nota y ponla de salva 
pantallas en tu celular y en la computadora de la oficina:
Con la primera fila como única visible el paso siguiente es calcular la expresión DAX dada en el 
segundo argumento: ( 'Dat'[A] ^ 2 ) + ( 'Dat'[C] * 'Dat'[B] )
No importa que lo repitamos insistentemente, pero cómo únicamente tenemos la primera fila 
visible los valores para cada una de las columnas en el segundo argumento de la función 
iteración serían:
Nota En el escenario de la función de iteración se puede ver el trabajo conjunto del 
contexto de filtro y el contexto de fila.
El contexto de fila viene dictado por la figura 15.6 y hasta ese punto todas las filas 
son visibles, sin embargo, al llegar la ejecución de la expresión DAX de la medida, 
en el primer momento sólo existe la primera fila la cual sería un contexto de fila, 
porque sería la fila actual en la iteración. Esta convivencia del contexto de filtro y 
el contexto de fila corresponde al contexto de evaluación.
    379/742
    ▪ 'Dat'[A] = 6
▪ 'Dat'[C] = 1
▪ 'Dat'[B]) = 2
Por lo tanto, ejecutando tal cual el segundo argumento tendríamos: (6^2) + (1*2), que se 
traduce en (36+2) que arroja como valor final el número 38.
El número 38 es almacenado internamente, para pasar a la siguiente iteración. 
En la siguiente iteración la lógica es idéntica, pero dejando visible únicamente la segunda fila y 
las demás ocultas.
▪ 'Dat'[A] = 9
▪ 'Dat'[C] = 2
▪ 'Dat'[B]) = 4
(9^2) + (2*4) =>(81+8) => 89.
El número 89 es almacenado internamente, para pasar a la siguiente iteración.
¡Vuele y juega la misma lógica!
    380/742
    ▪ 'Dat'[A] = 7
▪ 'Dat'[C] = 2
▪ 'Dat'[B]) = 6
(7^2) + (2*6) =>(49+12) => 61.
El número 61 es almacenado internamente, aquí finaliza la iteración.
A este punto los valores: 38, 89 y 61 han quedado almacenados de manera interna, digamos 
que en una piscina de datos esperando una orden de salida para convertir a dichos valores en 
uno único. Ese valor de resumen es sacado ejecutando la agregación señalada antes de la x
SUM X
Para el escenario que estamos estudiando la función de agregación antes de la X es la función 
SUM, por lo tanto, lo que se hace a continuación es la suma de los valores en la piscina de datos. 
Mejor dicho: 38 + 89 + 61 devolviendo como resultado el valor escalar 188.
Si en lugar de haber sido la función SUMX hubiera sido la función AVERAGEX, la operación de 
los valores en la piscina de datos hubiera sido: (38 + 48 + 61) / 3 con resultado 62,6 dado que 
la función antes de la X es AVERAGE que indica el promedio de los valores.
5
    381/742
    Retomando la solicitud primaria: “Necesitamos una medida que arroje los costos totales pero 
siempre para el Tipo de Compra igual a devolución” ahora ya podemos brindar su resolución:
Desglosemos la medida para entender lo sucedido.
1. El primer argumento de SUMX es la función FILTER la cual retorna una tabla filtrada o 
restringida para aquellos registros que corresponde a devolución.
2. El segundo argumento de la función SUMX es una expresión en una base fila a fila que 
realiza la suma de los tres costos en la tabla Pedidos
Nota Otra ventaja que van a brindar las funciones de iteración con sufijo X es que 
en su primer argumento no sólo podemos poner el nombre de una tabla sino 
también una expresión que devuelva una tabla, por ejemplo: FILTER.
Costos de Devolución =
SUMX (
 FILTER ( Pedidos; Pedidos[Tipo Compra] = "Devolución" );
 Pedidos[Costo del Producto] + Pedidos[Costo Empaque]
 + Pedidos[Costo de Envio]
)
Nota, Algo a notar es que las funciones de iteración con sufijo X se ejecutan fila a 
fila, quiere decir, que existe un contexto de fila, sin embargo, este contexto de fila 
es diferente al contexto de fila creado por una columna calculada el cual es un 
contexto de fila automático. El contexto de fila creado por las funciones de iteración 
se llama contexto de fila programable.
    382/742
    Otras Funciones de Iteración
Las funciones vienen dividas en dos “clanes”:
▪ Funciones de iteración que arrojan un escalar o valor único 
▪ Funciones de iteración que devuelven una tabla como salida final
Por ejemplo, la función FILTER es una función de iteración. Así es esta función es iterativa, de 
hecho, si miramos su sintaxis vemos que se delata sola:
= FILTER ( <Tabla o Expresión Tabular>; <Condición Lógica Fila> )
Una primera diferencia radica en que el segundo argumento debe ser una expresión lógica, es 
decir, que retorna falso o verdadero (TRUE o FALSE), ya que si es verdadero será considerada 
en el resultado final de la tabla si es falso será descartada. La expresión lógica también se ejecuta 
en una base fila a fila, por lo que existe un contexto de fila programable.
Otra diferencia se ve al final del proceso iterativo, esto debido a que no hay que hacer ninguna 
agregación de valores en una piscina de dato, sino simplemente tomar aquellas filas que cumplen 
para ser mostradas en el resultado final.
Nota Las funciones de iteración de agregación y escalares no son las únicas 
categorías que existen, hay funciones que no son de sufijo X pero que también 
devuelven un escalar, esto es más informativo ya que el lenguaje DAX es bastante 
amplio y se sale del alcance de este libro.
Si deseas profundizar en el lenguaje DAX te recomendamos el vídeo curso:
▪ Máster en DAX y Power Pivot │ Tomo #1 a #8
    383/742
    Lista de Funciones de NO Sufijo X
Te mencionamos algunas funciones de iteración que no corresponden a sufijo X, el enjambre 
de estas funciones es de una envergadura muchísimo más profunda, pero te resaltamos con las 
que te encontraras probablemente en una primera instancia si decides profundizar en el 
Lenguaje DAX.
▪ FILTER
▪ LASTNONBLANK
▪ FIRSTNONBLANK
▪ LOOKUPVALUE
▪ ADDCOLUMNS
Las funciones ALLxxxx son una familia de funciones bastante especial ya que ellas ignoran el 
contexto de filtro, esencialmente hablaremos de:
▪ ALL
▪ ALLEXCEPT
▪ (Existe otra gamma de funciones ALLxxxx en esta familia)
Función ALL
La explicación más enrevesada de las funciones ALL es desde el punto de vista neto de los 
contextos o en concreto del contexto de filtro, aquí no pretendemos complicar las cosas, en su 
lugar queremos brindar una explicación aproximada bastante buena, casi que la real utilizando 
también el contexto de filtro. La verdad es que la explicación más compleja sólo será necesario 
en unos muy pocos escenarios.
    384/742
    Para comprender la utilidad de la función ALL creemos una matriz con el campo País de la tabla 
Pedidos en el área de filas y de paso llevemos la medida Ingresos Totales al área de valores.
La meta por conseguir es crear una medida que retorne la participación, dicho de otro modo, el 
porcentaje del total general. Por lo tanto, deberíamos crear un cálculo así:
▪ Casilla Argentina = 381.278/3.320.885
▪ Casilla Brasil = 362.302/3.320.885
▪ Casilla Chile = 347.945/3.320.885
▪ Casilla Colombia = 372.727/3.320.885
▪ Casilla Ecuador = 373.248/3.320.885
▪ Casilla Paraguay = 375.095/3.320.885
▪ Casilla Perú = 374.136/3.320.885
▪ Casilla Uruguay = 353.314/3.320.885
▪ Casilla Venezuela = 380.836/3.320.885
    385/742
    La primera medida o numerador de la fórmula aritmética es sencilla puesto que viene dada por 
la medida Ingresos Totales, sin embargo, el denominador es una historia distinta debido a que
necesitamos que sea la suma de todos los elementos de la tabla.
Las Dos Caras de ALL
La función ALL tiene dos caras:
▪ ALL con una tabla como argumento
▪ ALL con una columna o varias columnas como argumentos
– ALL con una Tabla como argumento:
La primera faceta de la función ALL es cuando le proporcionamos el nombre de una tabla como 
argumento, en esta situación solamente podemos indicarle un único argumento y es el nombre 
de la tabla en cuestión, ejemplos: ALL(Pedidos), ALL(SKUProductos), etc.
Entonces, la función ALL (en su primera faceta) devuelve la tabla indicada en su argumento 
ignorando el contexto de filtro.
– ALL con una Columna o varias Columnas Como argumentos:
La segunda faceta, indicamos una columna o varias columnas (en este caso espaciadas por el 
separador de lista), ejemplos: ALL(Pedidos[País]), ALL(Pedidos[País], Pedidos[Tipo Compra]), 
etc.
¡Advertencia! Cuando utilizamos la función ALL en su primera faceta únicamente 
podemos indicar el nombre de una tabla, es decir, que no podemos utilizar en su 
argumento una función o expresión que devuelva una tabla.
    386/742
    Entonces, la función ALL (en su segunda faceta) devuelve:
1. Si es una columna: La Lista de valores únicos de la columna ignorando el contexto
2. Si son más de dos columnas: La Lista de combinaciones únicas de las columnas ignorando el 
contexto. 
Ejemplo una columna: ALL ( Pedidos[País] )
Ejemplo dos columnas: ALL ( Pedidos[País]; Pedidos[Tipo Compra] )
    387/742
    Ya tenemos los elementos necesarios para el cálculo del denominador en la medida de % 
Participación que queremos construir, la expresión DAX sería:
Nota Los ejemplos anteriores fueron creados con tablas calculadas, quiere decir 
que el contexto de filtro es las tablas nativas iniciales.
Total General = 
SUMX( ALL ( Pedidos ) ; Pedidos[Ingresos]) )
Nota
En algunas aplicaciones querrás obtener la lista de valores únicos de una columna 
teniendo en cuenta el contexto de filtro, en dicho caso, la función que lo haces es 
la función VALUES: 
Sintaxis: VALUES ( <Columna de una Tabla> ) 
Ejemplo: VALUES( Pedidos[País] )
La función VALUES sólo tiene un argumento por lo que las combinaciones únicas 
de varias columnas nos las realiza, para este escenario puedes valerte de la función 
SUMMARIZECOLUMNS
Sintaxis: SUMMARIZECOLUMNS ( <Columna 1> ; <Columna 2> ; … )
* La sintaxis, funcionamiento y tareas que se pueden conseguir con la función 
SUMMARIZECOLUMNS es mucho más amplia, pero para los fines de esta nota podemos 
tomarla como la descrita arriba.
Ejemplo: SUMMARIZECOLUMNS (Pedidos[País] ; Pedidos[Tipo Compra] )
    388/742
    El motivo por el cual la expresión DAX funciona para la matriz de la figura 15.10 es que 
independientemente de la casilla que se está colocando y el filtro de país aplicado el contexto 
de filtro es completamente ignorado por la función ALL, es decir, que la función SUMX iterará 
en toda la tabla Pedidos, en todos los países. Si llevamos la medida Total General a la matriz
podremos observar su resultado.
Ya tenemos todos los elementos suficientes para crear la medida de % de Participación, tenemos 
dos vertientes, el número uno escribir todas las funciones y demás en la medida, mejor dicho,
así:
% Participación = 
DIVIDE (
 SUM ( Pedidos[Ingresos] ) ;
 SUMX( ALL ( Pedidos ) ; 
 Pedidos[Ingresos] )
 )
    389/742
    Otra opción para escribir la medida % Participación consiste en llamar las medidas previamente 
creadas: Ingresos Totales y Total General. La manera de llamaras es abriendo paréntesis cuadrados 
y seleccionarlas en el Intellisense y cerrar paréntesis cuadrados.
Arrastremos la medida % Participación al área de valores de la matriz y observemos el resultado 
final.
Nota La función DIVIDE realiza la división de dos valores, proporcionando el 
numerador en el primer argumento y el denominador en su segundo argumento. 
La función DIVIDE cuenta con un tercer argumento opcional en el cual podemos 
indicar que queremos que muestre si la división es por cero, el valor por defecto 
de este tercer argumento es BLANK lo cual lo veríamos reflejado como una casilla 
vacía. 
La ventaja de la función DIVIDE respecto a la utilización del operador de división 
(/) es que si el denominador es un cero, la medida o cálculo DAX no arrojara un 
error sino una casilla con el valor en el tercer argumento de la función. 
La recomendación es utilizar la función DIVIDE en lugar de operador (/) siempre 
que sea posible.
% Participación = 
DIVIDE ( [Ingresos Totales] ; [Total General] )
    390/742
    Existen muchas aplicaciones para la función ALL, pero aquí te ponemos sobre la mesa lo 
fundamental.
Función ALLEXCEPT
Supongamos que queremos la lista de combinaciones únicas de los campos: País, Tipo de 
Compra, Categoría de Descuento, Ciudad, fecha de envío, fecha de llega y Unidades en una tabla 
calculada. La solución ALL sería.
EjemploALLe = 
ALL ( Pedidos[País] ; 
 Pedidos[Tipo Compra] ; Pedidos[Categoría de Descuento] ;
 Pedidos[Ciudad] ; Pedidos[Unidades] ;
 Pedidos[Fecha de Envio] ; Pedidos[Fecha de Llegada]
 )
    391/742
    Si vemos el requerimiento son todos los campos de la tabla Pedidos excluyendo los campos 
Costo de Producto, Costo Empaque y Costo de Envio. La función ALLEXCEPT hace exactamente lo 
mismo que ALL, únicamente que en vez de listar todas las columnas que queremos 
combinaciones únicas listamos las que deseamos excluir o las excepciones según el nombre de 
la función.
En la función ALLEXCEPT debemos tener en cuenta que en el primer argumento debemos 
indicar el nombre de la tabla y luego listar las columnas que se excluyen.
Lista de Otras Funciones ALLxxxx
La lista de funciones ALLxxxx es más amplia, a pesar de ello, con las dos anteriores se cumple el 
objetivo de este libro de brindarte las herramientas iniciales en DAX y con las cuales podrás 
realizar una gran variedad de tareas, te listamos las otras funciones ALLxxxx.
▪ ALLSELECTED
▪ ALLNONBLANKROW
EjemploALLe2 = 
ALLEXCEPT ( Pedidos ;
 Pedidos[Costo de Envio];
 Pedidos[Costo del Producto];
 Pedidos[Costo Empaque] 
)
    392/742
    CAPÍTULO 16 
Después de completar este capítulo tú sabrás:
▪ La importancia de los contextos
▪ Propagación de filtros
▪ Filtros directos e indirectos
▪ Mecanismo de funcionamiento de propagación de filtros
El lenguaje DAX para Power Pivot, Power BI y SSAS es Mind Blowing, empero, el corazón que 
desemboca en todas las bondades e incontables posibilidades para el modelamiento es la 
experiencia de trabajar con múltiples tablas relacionadas de manera declarativa, es decir, hemos 
podido trabajar con múltiples tablas en Excel utilizando la clásica y querida función BUSCARV y 
sus allegados (INDICE, COINCIDIR, etc., etc.).
Aunque las ventajas de los métodos clásicos son variados, lo cierto es que la cantidad de
desventajas superan con creces la lista de opciones positivas. El lenguaje DAX tiene la 
característica de que trabaja con las relaciones de forma declarativa, esto quiere decir, que no 
hay columnas adicionales y la comunicación entre tablas es por medio de un vínculo que indica 
la modificación que debe seguir una o varias tablas, el asunto ahora es comprender como 
funciona este vínculo y comunicación entre tablas, para ello debemos hablar sobre propagación 
de filtros que es el fin último del presente capítulo.
    393/742
    ¿Te estudiaste el capítulo 14 síntesis de contextos en DAX a detalle y conciencia?
Si tu respuesta es sí, sabes que:
Si tu respuesta es no, qué estas esperando ve y estudia ese capítulo a detalle y a conciencia
hasta que los entiendas al 100%. Dicho capítulo es requisito para el estudio y buen desarrollo 
del presente, así que léelo y sobre todo empieza a dilucidar los destellos en contextos y pensar 
en términos de los tres pasos primordiales en DAX desde ahora y por siempre, hazlo parte de 
tu credo.
Aunque el capítulo de contextos consta de unos buenos fundamentos hay una verdad sobre el 
que salta a la vista, en aquel capítulo únicamente trabajamos con una tabla.
Sin embargo, para entender cómo funcionan los contextos cuando existen varias tablas en el 
modelo de datos (Relacionadas o no) es imperativo hablarte sin tapujos de una temática de la 
que se dice menos que poco: La propagación de filtros.
La propagación de filtros es el pináculo para entender el funcionamiento de las relaciones 
entre tablas verdaderamente, y embarcarse en dicha empresa no siempre es atractivo. No 
porque sea complejo, ya que verás una vez comprendido es bastante sencillo, sino porque es 
necesario una explicación de máxima finura.
Nota Es el heraldo que anuncio un universo por conquistar, principio de la obra 
magna para entender el lenguaje DAX.
Nota La propagación de filtros en el modelo de datos es, de hecho, el agua que 
nutre los contextos.
    394/742
    Igual que una flecha no puede lanzarse en una dirección aleatoria, no podemos dejar que este 
capítulo corra libre sin un buen modelo de datos de simplificación que ayude a entender de 
manera sencilla la propagación de filtros.
Así que te presento a la tabla Product Datail
De hecho, para seguir un mismo lineamiento tomaremos los mismos datos simplificados del 
capítulo 14. Quiere decir que también estaremos utilizando la tabla de la figura 14.1. He aquí 
nuevamente la tabla en cuestión
Si cargamos estas dos tablas en un mismo archivo de Power BI lo que ocurrirá naturalmente el 
relacionamiento automático de las dos tablas.
    395/742
    La guinda en el pastel es que han quedado relacionados correctamente. En este caso es sencillo 
para la funcionalidad porque los nombres en ambas tablas son idénticos:
    396/742
    La relación es un punto álgido para la propagación, no te preocupes, puntualizamos más 
adelante. Lo que hay que rescatar es que han quedado relacionadas correctamente.
Configuración de la Matriz
En orden para entender la propagación de filtros, vamos a crear una matriz que involucre 
campos de las dos tablas.
Añadimos el campo Product Name de la tabla Product Datail al área de filas y el campo Quantity 
de la tabla OrderHistoryOfJune2017 al área de columnas.
– ¿Qué hace falta?
Exacto una medida 
–¿De qué tipo, implícita o explicita?
Juramos que hemos podido casi escuchar tu respuesta: explicita.
La medida que vamos a realizar es una que nos retorne el promedio de entrega en horas, 
recordemos que en la tabla OrdeHistoryOfJune2017 tenemos el campo Order Delivery que 
corresponde al tiempo de entrega en minutos.
Llevamos la medida Promedio Entrega al área de valores, nuestra matriz debe lucir:
Promedio Entrega:=
 DIVIDE ( 
 AVERAGE ( OrderHistoryOfJun2017[Order Delivery] ) ;
 60
)
    397/742
    Tres Pasos Primordiales en DAX
Recapitulando del capítulo de síntesis de contextos:
Para cada valor en el área de valores de una medida DAX siempre:
1. Identificar Filtros
2. Aplicar Filtros
3. Ejecutar Expresión DAX
Vamos a seguirlos, para ello debemos seleccionar una celda concreta para analizar 
– ¿Qué tal 0,79?
En orden para entender la propagación de filtros, vamos a crear una matriz que involucre 
campos de las dos tablas.
¡Advertencia! Estamos enfocados de ahora en adelante en el valor encerrado en 
rojo de la matriz en la imagen anterior, el cual corresponde al valor 0,79. No 
obstante, utilizaremos unas tablas aún más simplificadas por lo que no debemos 
perder de vista que es la posición de la casilla donde está el valor 0,79.
    398/742
    – 1. Identificar Filtros
Recordar que los filtros son todo lo que rodea a la celda o casilla y la restringe
Para este caso:
▪ Product Datail[Product Name]=”Hamburger” 
▪ OrderHistoryOfJune2017[Quantity]=1 
– 2. Aplicar Filtros
Para ello primero te presentamos las dos tablas resumidas, ojo, sé que hemos presentado las 
dos tablas previamente, sin embargo, estas eran las tablas completas, a continuación, vamos a 
presentar estas mismas tablas ver en versiones acotadas, es decir, con muchos menos registros 
para poder visualizar plenamente el suceso de propagación de filtros,
▪ OrderHistoryOfJune2017
▪ ProductDatail
Filtros Es una o más restricciones aplicados a una tabla que tiene como fin 
segmentarla en un conjunto más pequeño de acuerdo con la especificación de 
este.
Nota, Antes de aplicar los filtros es importante resaltar que estamos involucrando 
dos tablas en esta oportunidad.
    399/742
    Tabla OrderHistroyOfJune2017 versión acotada:
Tabla Product Datail versión acotada:
    400/742
    Una vez captado nuestras tablas de ejemplo vamos a aplicar los filtros en sus respectivas tablas.
El filtro Product Datail[Product Name]=”Hamburger” se aplica a la tabla Product Datail, por lo 
tanto, queda:
Quiere decir que la expresión DAX únicamente tiene acceso al pedacito de tabla Product Datail
que se acaba de filtrar. Dicho de otro modo, la medida DAX verá que la tabla Product Datail 
consta de una sola fila (Resaltada con fondo gris en la imagen anterior) y las demás filas (con 
fondo blanco y color de fuente gris tenue) no existen para la medida.
– Por si las moscas:
Observa con detenimiento la ilustración de la figura a continuación:
¡Advertencia! Tener en cuenta que estamos ahora analizando la posición donde
se encuentra el valor 0,79. Pero en las versiones acotadas de las tablas, esto quiere 
decir que al final no vamos a obtener el resultado 0,79 si no un valor 
completamente diferente.
    401/742
    Ahora bien, tenemos otro filtro. El filtro OrderHistoryOfJune2017[Quantity]=1 se aplica a la 
tabla OrderHistoryOfJune2017, por lo tanto, queda:
    402/742
    Ok, filtros (directos) aplicados, por ello, sería el momento de pasar al paso número tres y ejecutar 
la expresión DAX. Pero algo está faltando, pensémoslo por un segundo:
Observemos la medida con lupa y criterio detectivesco:
Únicamente se basa en la tabla OrderHistoryOfJune2017 (La tabla Product Datail no se encuentra 
Promedio Entrega:=
 DIVIDE ( 
 AVERAGE ( OrderHistoryOfJun2017[Order Delivery] ) ;
 60
)
    403/742
    La raíz del asunto está en que la medida se basa únicamente en la tabla OrderHistoryOfJune2017
(La tabla Product Datail no se encuentra por ninguna parte en la expresión DAX). Sin embargo, 
la matriz sí que está involucrando la tabla Product Datail.
Mejor dicho, si en este momento ejecutáramos el paso tres con el pedacito de tablas que es 
visible después del paso dos, ¿Qué sucede?, Que si bien ejecutaría el promedio de Order Dilivery:
    404/742
    Si analizamos los productos que tiene en consideración la tabla en la ilustración de la figura 
anterior, lo cierto sería que está teniendo en cuenta varios productos.
Pero sabemos que únicamente debería ser el producto que corresponde a hamburger. ¿Por qué?
Recuerdas la matriz y la “casilla” que estamos analizando.
    405/742
    Es decir, falta un (1) vínculo y una forma de (2) comunicación entre las dos tablas. Pues, el vínculo 
sí que existe, ya que las dos tablas están relacionadas.
La cuestión es: ¿Cómo se comunican? La relación (Vínculo) sirve para que las tablas propaguen 
(comuniquen) sus filtros. Aquí es donde entra la propagación de filtros.
Filtros Indirectos o Cruzados
Antes del paso tres: Ejecutar Expresión DAX ocurre la propagación de filtros o presentado de 
manera alterna los filtros cruzados.
Así que escribe en tu pared con tinta indeleble lo siguiente:
Nota Justo antes del paso tres en el algoritmo de los tres pasos primordiales en 
contextos, se aplican los filtros indirectos o cruzados, es decir, sucede la 
comunicación entre las tablas relacionadas en el modelo de datos para ver cómo 
afectan los filtros de una tabla con sus tablas relacionadas, esto lo que va a permitir 
es reducir aún más los pedacitos de tablas visibles para la expresión DAX.
    406/742
    Para ver el funcionamiento de la propagación de filtros es ineludible forjar la terminología 
estándar necesaria para tener congruencia tanto en este capítulo como en los demás ámbitos, 
por lo tanto, es importante repasar los siguientes conceptos
▪ Tabla Transaccional (*aka: Tabla de hechos o Tabla Matriz)
▪ Tabla de Búsqueda (*aka: Tabla de Dimensión)
▪ Clave Primaria (*aka: Primarey Key)
▪ Clave Foránea (*aka: Foreign Key o Clave ajena)
▪ Columnas Equivalentes
* aka: Also Know As, También conocido como
– ¡Para que reinventar la rueda!
1) Definición Tabla de Búsqueda: Es una tabla en la cual por lo menos uno de sus campos tiene 
elementos que no se repiten (cada ítem o elemento es único identificando de forma univoca cada 
registro de la tabla). 
2) Definición Tabla Transaccional: Es una tabla con alta densidad de datos, es decir, con una 
cantidad de filas considerables respecto a las otras del modelo de datos actual, dicha tabla contiene 
los valores de las medidas de negocio o dicho de otra forma los indicadores de negocio. 
– Citando a Wikipedia
3) Definición Calve Primaria: Se llama clave principal a un campo o a una combinación de campos 
que identifica de forma única a cada fila de una tabla. Una clave primaria comprende de esta manera 
una columna o conjunto de columnas.
    407/742
    4) Definición Clave Foránea: Es una limitación referencial entre dos tablas. La clave foránea 
identifica una columna o grupo de columnas en una tabla (tabla hija) que se refiere a una columna o 
grupo de columnas en otra tabla (tabla maestra o referenciada)
5) Columnas Equivalentes: Son las columnas de una tabla transaccional y de búsqueda con los 
mismos elementos, estas columnas permitirán las relaciones en las tablas.
– En nuestro escenario resumido:
▪ Tabla Transaccional: OrderHistoryOfJune2017
▪ Tabla de Búsqueda: Product Datail
▪ Clave Primaria: Columna Product ID de la tabla de búsqueda
▪ Clave Foránea: Columna Product ID de la tabla transaccional
Propagación en Acción
La manera por la cual se van a comunicar las dos tablas es mediante la relación. ahora bien, la 
comunicación va a ir en una única dirección:
Teniendo en consideración lo anterior, sabremos de antemano que la propagación para el 
escenario de este capítulo ocurre desde la tabla Product Datail a la Tabla 
OrderHistoryOfJune2017.
De hecho, la pequeña flecha que aparece en Power BI indica precisamente esto, de que tabla a 
que tabla ocurre la propagación de filtros.
«!» Grábate esto a Fuego: 
La propagación de filtros ocurre siempre en una única dirección, desde las tablas de 
búsqueda a las tablas transaccionales (A menos que se indique lo contrario)
    408/742
    – ¿Cómo ocurre la propagación?
Sabemos que el filtro de la tabla de búsqueda es: Product Datail[Product 
Name]=”Hamburger” no afecta directamente a la tabla transaccional, primero porque se ha 
dicho específicamente que sea para la tabla Product Datail y en segundo lugar porque el campo 
Product Name no existe en la tabla OrderHistoryOfJune2017. Entonces, Lo primero que ocurre
es una correspondencia entre el ítem o los ítems del campo que corresponde al filtro (es decir, 
Product Datail[Product Name]=”Hamburger” ) y la clave primaria de la tabla de búsqueda (es 
decir, Product Datail[ProductID])
¡Advertencia! La dirección de la flecha para Power Pivot de Excel 2013 es en la 
dirección opuesta a la mostrada en la figura 16.17. Para Power Pivot de Excel 2010, 
2016, Power BI y SSAS la dirección de la flecha es como la presentada en la 
ilustración de la figura 16.7.
    409/742
    El elemento se propaga ya que es el que está relacionado con la tabla transaccional.
    410/742
    Por lo tanto, el pedacito de tabla que es visible en la tabla transaccional es:
Contexto de Filtro
Ahora podemos dar una definición un poquitico más aproximada del contexto de 
filtro:
El contexto son los pedacitos de tablas visibles en el modelo de datos que verá la 
expresión DAX del cálculo personalizado después de la propagación de filtros.
    411/742
    Y ahora si estamos listos para el tercer paso primordial en DAX: Ejecutar expresión DAX
��– 3. Ejecutar Expresión DAX
La expresión DAX de la medida se ejecutará hasta ahora, recuérdalo
x
¡Advertencia! La función ALL ignora el contexto, simplemente no lo tiene en 
cuenta, ello quiere decir que no lo modifica. Por lo tanto, la propagación ocurre si 
la expresión DAX tiene una función ALL, esto en lo que deriva es en que otras partes 
de la expresión seguirán viendo los pedacitos de tablas.
    412/742
    Tres Pasos (Internos) Primordiales en DAX con Propagación
Los tres pasos los podemos actualizar de la siguiente forma para múltiples tablas
1. Identificar Filtros
2. Aplicar filtros y propagar
3. Ejecutar Expresión DAX
Fíjate que la propagación va en el segundo paso, antes de la ejecución de la expresión DAX.
Recomendaciones para trabajo con múltiples tablas y Propagación
Entendiendo los fundamentos en contextos, los tres pasos primordiales y la propagación filtros, 
podemos sacar un par de reglas generales para evitar valores anómalos en nuestras matrices, 
tablas dinámicas o demás elementos.
▪ En las áreas de filas y columnas de una matriz utilizar siempre campos de las tablas de 
dimensión y en el área de valores medidas que tenga su raíz en campos de tablas 
transaccionales, de esta manera aseguramos que la propagación de filtro sea adecuada 
y no ve valores inherentes en nuestra matriz.
▪ Si se desea crear medidas que involucren campos de múltiples tablas, la recomendación 
es que dichos campos sean de tablas transaccionales y que la matriz tenga campos en 
al área de filas y columnas de una o más tablas de dimensión compartidas por los 
campos de las tablas transaccionales involucradas en la medida.
Nota Es posible habilitar la propagación bidireccional, pero en lo posible evitarlas 
o reducirlas al máximo posible.
    413/742
    Inteligencia de Negocios con Excel y Power BI - Page 414
    414/742
    CAPÍTULO 17 
Después de completar este capítulo tú sabrás:
▪ Variación Discreta de Contexto (On/Off)
▪ Primera Profundización en el Contexto de Filtro
▪ El ABC de la función CALCULATE
▪ Las 3 Posibles Condiciones de la Función CALCULATE
“Una función para gobernarlas a todas. Una función para encontrar todas las respuestas, una función 
para utilizarlas en un mismo lugar y atarlos en un mismo ambiente. La función única, CALCULATE, no 
es siniestra sino más bien todo lo contrario: el verdadero poder”
Si debíamos encontrar una definición para la función CALCULATE, algo del estilo con la analogía 
del señor de los anillos era cuando menos apropiada, y es que la función CALCULATE y su prima 
hermana CALCULATETABLE es la función más importante, más poderosa e inevitable del 
lenguaje DAX. El motivo recae en que es la única función que puede modificar o actualizar el 
contexto de filtro, es la única función que permite términos intermedios en contextos, por lo 
anterior está involucrada prácticamente en el 90% de las expresiones del lenguaje y su vastedad 
de posibilidades roza el descaro puesto que nos da acceso a una infinidad de aplicaciones.
Cuando se habla de la función CALCULATE nada es desdeñable, pues su entendimiento 
auténtico demanda de mucho estudio y práctica, no obstante, este capítulo brinda una buena 
introducción para que la puedas utilizar a un nivel superior a la media.
    415/742
    Bien, en este capítulo retomamos la línea general de archivos Disproductos, vale decir, las tablas: 
Pedidos, SKUProductos, CategoríaDeProductos, Descuentos, etc.
En el Capítulo 15: La Llave para Dominar DAX, Síntesis de contextos. Vimos cómo crear una 
medida que arroje el porcentaje de participación o porcentaje del total general, esta medida 
será vital ahora, por lo que recordar que la hemos llamado: % Participación no está demás.
Vamos a crear una matriz que tenga en el área de filas el campo Categoría de la tabla 
CategoríaDeProductos y el campo SKU de la tabla SKUProductos también el área de filas, 
adicionalmente vamos a llevar la medida % Participación al área de valores.
Recordar que si no 
aparece todas las 
jerarquías en la matriz
sólo debemos dar clic 
en el botón señalado.
    416/742
    Analizando la medida % Participación de la matriz anterior podremos notar que todo está 
correcto, la manera más fácil de identificarlo es observando el Total de la matriz, ya que allí 
debemos comprobar que el valor sea 100% y en dicho caso se cumple perfectamente. Ahora 
procedamos a llevar una segmentación de datos al lienzo de Power BI y arrastar a su campo la 
columna Categoría de Descuento de tabla Descuento.
En la segmentación de datos vamos a seleccionar el elemento Special Day.
Observemos nuevamente la matriz para corroborar si la medida % Participación sigue 
funcionando en todo su esplendor o más bien encontramos alguna incoherencia. Utilicemos el 
método de mirar el Total de la matriz para ejecutar la comprobación, será más que claro que la 
medida % Participación ya no está funcionando por que el valor del Total no es 100%, es de 
hecho, un valor muy inferior.
Nota Todos los detalles acerca del objeto visual Segmentación de Datos: Su 
configuración y trucos de diseño lo puedes estudiar en el capítulo 25.
    417/742
    Variación Discreta de Contexto
La pregunta que surge naturalmente: 
– ¿Por qué la medida se daña con una configuración como la presentada en la figura 17.3 mientras
que para la matriz de la figura 17.1 funciona correctamente?
Para llegar al corazón del asunto debemos enfocarnos en el objeto visual que separa estas dos 
matrices, esto es, la segmentación de datos con el campo CategoríaDeDescuento de la tabla 
Descuento.
Aquí deberíamos 
observar el valor 100%, 
en su lugar observamos 
un valor muchísimo 
menor. Lo anterior nos 
ayuda a concluir que la 
medida % Participación 
es errónea en este 
escenario.
Casilla a 
analizar en 
el siguiente 
aparatado.
    418/742
    Dejemos a la vista la expresión DAX de la medida % Participación para que nos ayude a dilucidar 
lo que está ocurriendo.
El numerador de la expresión DAX: 
SUM ( Pedidos[Ingresos] ) 
No tiene nada extraño y además sabremos que funciona adecuadamente, analizando en 
termino de los 3 pasos primordiales en contextos:
– 1. Identificar Filtros
▪ CategoríaDeProductos[Categoría] = “Blue-Ray”
▪ SKUProductos{SKU] = “B01”
▪ Descuento[Categoría de Descuento] = “Special Day”
% Participación = 
DIVIDE (
 SUM ( Pedidos[Ingresos] ) ;
 SUMX( ALL ( Pedidos ) ; 
 Pedidos[Ingresos] )
 )
Nota Estaremos analizando la expresión DAX de la medida % Participación en el 
escenario de la matriz de la figura 17.3 y la casilla remarcada en la misma figura.
    419/742
    – 2. Aplicar Filtros y Propagar
Aquí sabremos que la tabla transaccional Pedidos quedará restringida en su visibilidad para la
expresión DAX de acuerdo con los filtros anteriores y la propagación, a saber, la tabla Pedidos 
quedará visible únicamente para Special Day, B01 y Blue-Ray.
– 3. Ejecutar Expresión DAX
Quiere decir que la expresión (Para la casilla encerrada en la figura 17.3): SUM ( 
Pedidos[Ingresos] ) corresponde al total de ingresos para la categoría de producto Blue-Ray, la 
categoría de descuento Special Day y el SKU B01. Esto lo que quiere decir es que esta parte de 
la expresión DAX está teniendo en cuenta los 3 filtros.
El Denominador de la expresión DAX: 
SUMX ( ALL ( Pedidos ) ; Pedidos [Ingresos] )
– 1. Identificar Filtros
▪ CategoríaDeProductos[Categoría] = “Blue-Ray”
▪ SKUProductos{SKU] = “B01”
▪ Descuento[Categoría de Descuento] = “Special Day”
Nota Es importante tener un conocimiento pleno y consiente del capítulo 16, sino 
es importante estudiarlo y repasarlo ahora mismo.
    420/742
    – 2. Aplicar Filtros y Propagar
En este punto debemos mirar con un poco más de cuidado el primer argumento de la función 
SUMX, que corresponde a: ALL ( Pedidos )
Recapitulando: La función ALL en su primera faceta recibe una tabla y la retorna ignorando el contexto 
de filtro. 
Lo anterior se traduce que devuelve la tabla completa sin ningún filtro para ningún campo, 
independientemente de si es un filtro dictado por una matriz, segmentación de datos o 
cualquier objeto visual, devuelve la tabla Pedidos completica.
– 3. Ejecutar Expresión DAX
La función SUMX va a iterar en la tabla Pedidos completa, pero en realidad lo que se quiere 
buscar es que siga teniendo en cuenta el filtro de la segmentación de datos:
▪ Descuento[Categoría de Descuento] = “Special Day”
Pero a su vez ignore los filtros de la matriz:
▪ CategoríaDeProductos[Categoría] = “Blue-Ray”
▪ SKUProductos{SKU] = “B01”
Para el caso de la medida % Participación esto no sucede, porque hasta el momento solo 
contamos con dos posibilidades extremas para el contexto:
Nota No olvidar que la aplicación de filtros y la propagación si ocurre, sin embargo, 
ALL ignora el contexto.
    421/742
    La variación discreta de contexto se presenta para una y cada una de las funciones que existen 
en el lenguaje DAX, es decir, o la función tiene en cuenta el contexto (On) o la función no tiene 
el contexto (off). Como hemos dichos, dos estados discretos 1 y 0. 1 para decir que si lo tiene 
en cuenta (por aquello de que el 1 es booleano significa verdadero) y 0 para decir que no lo tiene 
en cuenta (por aquello de que el 0 en booleano es falso)
– Ejemplos:
▪ FILTER: lo tiene en cuenta
▪ ALL: No lo tiene en cuenta
▪ SUMX: Lo tiene en cuenta
Sin embargo, y esto es clave: en el lenguaje DAX existe una función y solo una función que 
permite estados intermedios, es otras palabras, que puede tener en cuenta ciertos filtros e 
ignorar otros e incluso agregar nuevos, esto se conoce como la actualización o modificación del 
contexto de filtro.
Variación Discreta de Contexto El contexto de filtro lo podemos trabajar en dos 
estados: el primera tenerlo en cuenta en su totalidad (con todos los filtros de los 
diversos objetos visuales sean matrices, segmentación de datos u otros) y la otra ignorar 
el contexto de filtro por completo
En otras palabras, es on/off, todo o nada, dos estados discretos 0 o 1. Por lo 
anterior decimos que el contexto es discreto porque solo toma dos estados.
La premisa aquí presentada es parcialmente cierta, ya que tener estados 
intermedios del contexto sí que es posible, es más, deriva en algo muy importante: 
la modificación del contexto de filtro.
    422/742
    Antes de continuar con la función CALCULATE es obligatorio entender que significa actualizar 
el contexto de filtro para ello hay que indagar un poco más acerca de los contextos.
Repasemos la definición de contexto que tenemos hasta ahora:
Debemos ser tajantes: La definición de contexto de filtro actual es bastante ingenua, si bien es 
una aproximación para la parte introductoria de DAX con una validez propia no deja de ser una 
aproximación burda de lo que es el contexto.
Para investigar un poco más acerca del contexto es necesario aterrizar un concepto.
Listas (Filtros) en el Ambiente de Contextos
–¿Qué es un filtro?
Un filtro es un conjunto activo de valores y cada filtro se aplica a una única columna en el 
modelo de datos actual.
Nota La única función que puede modificar, actualizar el contexto de filtro es la 
función CALCULATE (Y su secuaz CALCULATETABLE). 
Contexto de Filtro
El contexto son los pedacitos de tablas visibles en el modelo de datos que verá la 
expresión DAX del cálculo personalizado* después de la propagación de filtros.
*Cálculo Personalizado: Medidas, Columna Calculada y Tabla Calculada
    423/742
    En este punto vamos a utilizar las tablas simplificadas del Capítulo 16: Propagación de Filtros al 
Desnudo, en particular, el resultado después de toda la propagación.
El filtro o lista de valores activos para la columna Product Name de la tabla Product Datail sería: 
Hamburger, mientras que para la columna OrderHistoryOfJune2017 serían: 39 y 49.
Nota Si has llegado hasta aquí sin interiorizar el capítulo 16 o te los has saltado, 
es recomendable hacer una pausa activa y estudiarlo con lujo de detalle antes de 
continuar. 
Product Datail
OrderHistoryOfJune2017
    424/742
    He aquí la las listas de cada una de las columnas:
Nótese que se habla del conjunto activo de valores, esto quiere decir, que son los elementos 
únicos visibles, por lo tanto, hablamos de filtros en el contexto de filtro después del paso dos 
(aplicar y propagar) en los tres pasos primordiales en contextos y DAX.
1 Hamburger 20
Product Datail
OrderHistoryOfJune2017
1/06/2017
39
45
1 1
    425/742
    Significado de Modificar el Contexto de Filtro
Entendiendo que un filtro es la lista de valores activos podemos revelar que significa modificar el 
contexto de filtro.
Gráficamente el significado de modificar el contexto de filtro.
Modificar Contexto de Filtro
Para modificar o actualizar el contexto de filtro debemos proveer una lista de nuevos 
valores para una o varias columnas filtradas (después del paso dos) en el modelo de 
datos.
1 Hamburger 20
Hot Dog 
Pizza
Debemos llegar de alguna manera con una nueva lista 
de valores (filtro) y reemplazarla en alguna de las 
columnas en el modelo.
Ejemplo, sabemos que la lista de valores activos para 
la columna Product Name es: {Hamburger}, para 
modificar el contexto podemos llegar con una lista 
nueva como, por ejemplo: {Hot Dog, Pizza}
    426/742
    Hasta el momento no sabemos cómo generar esas nuevas listas, pero sí que conocemos el 
significado de modificar el contexto de filtro.
Contexto de Filtro una Definición más Aproximada
Ya que conocemos lo qué es un filtro, podemos dar una definición más próxima al contexto de 
filtro; la definición que presentamos ahora sigue siendo una aproximación, más cercana pero 
aproximada en todo caso, a pesar de ello, ya con esto podemos estudiar una gran cantidad de 
funciones y aspectos del lenguaje DAX bastante robustas.
La crema y nata de las funciones es CALCULATE por el simple hecho de que es la única función 
que puede modificar el contexto de filtro, esto ya lo hemos mencionando y hemos dicho que 
su secuaz CALCULATETABLE también puede modificar el contexto de filtro. En realidad,
CALCULATE y CALCULATETABLE crean un nuevo contexto de filtro y luego evalúa su expresión 
en el nuevo contexto.
Contexto de Filtro
El Contexto de Filtro es un conjunto de tablas, cada columna de las diversas tablas lista 
todos los valores los cuales el motor interno de DAX considera visible en el modelo de 
datos actual, cada uno de los filtros operan en conjunto (Conjunción lógica -Y-) y forman 
el contexto de filtro.
Nota No es objeto de este libro estudiar DAX y contextos y sus temáticas 
relacionadas. Sin embargo, nosotros los autores brindamos el Curso en Vídeo: 
Máster en DAX y Power Pivot donde puedes profundizar en estos temas.
    427/742
    Sintaxis de la Función CALCULATE
= CALCULATE ( <Expresión Escalar>; [<Lista 1>]; [<Lista 2>]; [<Lista 3>]; … )
▪ Expresión: Una expresión de tipo escalar a ser evaluada en el contexto modificado, 
puede ser algo tan sencillo como: SUM o expresiones más complejas como de iteración 
con sufijo X o incluso funciones anidadas. Ejemplos:
o SUM ( Pedidos[Ingresos] ) 
o AVERAGEX ( Pedidos; Pedidos[Costo Empaque]+Pedidos[Costo del Producto] )
o ROUNDUP ( SUM ( Pedidos[Ingresos] ) )
▪ Lista 1: Una lista de valores exacta en forma de expresión tabular que se desea ver en el 
nuevo contexto. 
El número de argumentos de la función CALCULATE es indefinidos, a saber, podemos 
proporcionamos n lista de valores en sus argumentos, esto se hace a partir del segundo 
argumento. Del segundo argumento de adelante se les conoce como Argumentos de Filtro.
Nota Nótese que del segundo argumento en adelante de la función CALUCLATE 
recibe la lista de nuevos valores para modificar el contexto de filtro.
Nota Vease que el único argumento obligatorio de la función CALCULATE es el 
primero, aunque pueda parecer que la función CALCULATE sin argumentos de 
filtros carezca de sentido, la verdad es que CALCULATE con solo su primer 
argumento ejecuta una operación llamada transición de contexto (Por fuera del 
alcance de tema del presente libro).
    428/742
    Procedimiento Interno de la Función CALCULATE
El funcionamiento interno de la función CALCULATE es crítico para sacarle máximo provecho y 
entender todas las fórmulas que andan rodando por la web, para ello, lo primero es tener claro 
que el procedimiento interno se ejecuta respetando los tres pasos primordiales en contexto, 
dicho de otro modo, si la expresión DAX tiene una o más funciones CALCULATE, estas se van a 
ejecutar igualmente en el paso tres: ejecutar expresión DAX.
–Procedimiento:
▪ Toma el contexto de filtro actual (el producido por los pasos 1 y 2 de los tres pasos 
primordiales) y hace una copia en un nuevo contexto de filtro
▪ Evalúa cada argumento de filtro (del segundo en adelante) y genera para cada argumento 
una lista de valores válidos para la columna especifica que reemplazará o alterará la lista 
actual
▪ Si dos o más argumentos de filtros afectan a la misma columna, estas se combinan en 
una conjunción lógica (La intersección u operación Y). Ejemplos:
o Si una lista arroja: {“Argentina”} y otra arroja: {“Colombia”} entonces la 
intersección de las dos es vacía, ya que ninguno de los dos conjuntos comparte 
elementos.
o Si una lista arroja: {“B01”; “B02”; “CBO1”; “L07”; “L02”} y otra lista arroja 
{“D01”; ”L07”; “B02”} la lista final válida sería: {”L07”; “B02”}. Estos casos son 
supremamente extraños.
▪ Si una columna tiene un filtro, el nuevo filtro (la nueva lista de valores válidos generados 
por argumento de CALCULATE) lo reemplaza, sino lo tiene lo aplica
▪ Una vez el contexto es evaluado la función CALCULATE ejecuta la expresión DAX en el 
nuevo contexto (Nótese que el primer argumento de CALCULATE es el último en
    429/742
    ejecutarse, por eso se ejecuta en el contexto modificado). Al final se reinicia al contexto 
original.
La Máscara para Condición Booleana
Volemos a Disproductos.
Creemos una matriz con el campo País de la tabla Pedidos en el área de filas y la medida Ingresos 
Totales en el área de valores.
¡Advertencia! En este capítulo utilizamos los corchetes {} para representar la lista 
de elementos de una columna producida por una expresión tabular, por ejemplo, 
si indicamos: {“Chile”; “Perú”; “Uruguay”} estamos señalando que una expresión 
tabular DAX arroja como resultados los elementos: “Chile”, “Perú” y “Uruguay” del 
campo País.
Se debe tener presente y no confundir que esta notación no tiene nada que ver 
con la notación para crear listas en el lenguaje M.
Las listas en el lenguaje M siguen una notación del estilo {1,2,3,4,5} y representan 
una secuencia ordenada de valores primitivos o estructurados y cada valor se 
separa por coma (,)
Las listas en este capítulo representan el conjunto de los valores activos de una 
columna, esta columna es expresión tabular que sólo devuelve una columna como 
resultado. Por cuestiones pedagógicas representamos estas listas también con {} 
pero separadas por punto y como (;)
Pata mayor detalle acerca de las listas en preparación de datos y el lenguaje M 
puedes referirte al Capítulo 8: Introducción al Lenguaje M.
    430/742
    La misión que queremos cumplir ahora es crear una medida que nos devuelva los ingresos 
totales pero que siempre tenga en cuenta el SKU L07, en otras palabras, independientemente 
de la configuración de la matriz que la medida calcule los ingresos para el SKU = L07.
Vamos a llevar el paso a paso para conseguir la meta analizando la casilla correspondiente a 
Argentina. Los tres pasos primordiales en DAX con la medida Ingresos Totales.
– 1. Identificar Filtros
▪ Pedidos[País] = “Argentina”
– 2. Aplicar Filtros y Propagar
El único filtro que se aplica es del país, por lo tanto, la tabla Pedidos únicamente queda visible 
para aquellos registros donde el país es Argentina.
– 3. Ejecutar Expresión DAX Filtros: =SUM ( Pedidos[Ingresos] )
    431/742
    Como ya intuimos la medida Ingresos Totales no cumple con el requerimiento de que sea 
únicamente para los SKU = L07, por lo tanto, debemos añadir ese filtro de alguna manera sin 
que provenga de una matriz, segmentación de datos o cualquier otro objeto visual.
Como con las funciones ALL, FILTER y demás es todo o nada, o se tiene consideración el 
contexto o no, entonces no vale la pena hacer uso de ellas. Lo que vemos es que al contexto 
actual debemos añadirle un filtro adicional (SKU = L07) sabremos que nuestra búsqueda se 
debe enfocar con la función CALCULATE que es la única que puede modificar el contexto de 
filtro.
=CALCULATE ( SUM ( Pedidos[Ingresos] ) ; ______________________ )
Lo que queremos conseguir en el argumento subrayado es una lista que retorne: L07 para el 
SKU y así afecta a la columna en el contexto actual. Recordemos que la lista exacta se debe 
generar como una expresión Tabular.
Una posible expresión:
La fórmula anterior no brinda el resultado deseado por el simple hecho de que está arrojando 
una tabla completa (Como veremos más adelante proporcionar una tabla en los argumentos de filtros 
también es válido, pero de momento estamos enfocados en la lista). Lo que se desea de la expresión 
tabular es una tabla con una única columna y que en ella únicamente tenga el elemento L07 de 
la columna SKU, para que eso suceda podemos iterar en la columna SKU y la manera de 
= 
FILTER ( Pedidos ; Pedidos[SKU] = “L07” )
    432/742
    conseguirlo es con la función ALL (Recordemos que ALL en su segunda faceta devuelve la lista de 
valores únicos ignorado el contexto)
– ALL ( Pedidos[SKU] ) devolvería:
Una única columna era un primer paso para generar la lista, ahora podemos utilizar la fórmula 
ALL (Pedidos[SKU]) en el primer argumento de la función FILTER para iterar y extraer el SKU 
L07.
= 
FILTER (
 ALL ( Pedidos[SKU] ) ; 
 Pedidos[SKU] = “L07”
)
    433/742
    Ya tenemos los elementos para crear la expresión DAX encomendada, nombremos a esta 
medida como: IngresosL07.
El resultado en la matriz:
= 
CALCULATE (
 [Ingresos Totales];
 FILTER ( ALL ( Pedidos[SKU] ); Pedidos[SKU] = "L07" )
)
L07
    434/742
    Sigamos los tres pasos primordiales en DAX para la casilla correspondiente al país Argentina y 
la medida Ingresos L07.
– 1. Identificar Filtros
▪ Pedidos[País] = “Argentina”
– 2. Aplicar Filtros y Propagar
El único filtro que se aplica es el de país, por lo tanto, la tabla Pedidos sólo queda visible para 
aquellas filas donde el país es igual a Argentina.
– 3. Ejecutar Expresión DAX Filtros
CALCULATE ( [Ingresos Totales]; FILTER ( ALL ( Pedidos[SKU] ); Pedidos[SKU] = "L07" ) )
Procedimiento Interno de CALCULATE
✓ Copia Contexto: Pedidos con filtro de país Argentina
✓ Evalúa cada argumento de filtro y genera lista:
o <Lista1> => FILTER ( ALL ( Pedidos[SKU] ); Pedidos[SKU] = "L07" ) => {“L07”}
✓ Filtros existentes
o Pedidos[País] = “Argentina”
✓ Nuevo Filtro
o Pedidos[SKU] = “L07”
✓ Contexto de filtro actualizado
o Pedidos[País] = “Argentina”
o Pedidos[SKU] = “L07”
El nuevo contexto de filtro es la tabla Pedidos actualizada donde tendrá en cuenta únicamente 
aquellas filas para el país Argentina y el SKU L07
    435/742
    ✓ Ejecutar Expresión DAX (Primer argumento de CALCULATE) en el nuevo contexto de filtro: 
Pedidos con filtro de país Argentina: [Ingresos Totales] => SUM (Pedidos[Ingresos})
✓ Reiniciar Contexto al Original
Puede parecer una explicación compleja a una tarea sencilla, por lo que simplemente era agregar 
otro filtro a una columna, sin embargo, los argumentos de filtro de CALCULATE en conjunción 
con otras funciones nos van a permitir modificar el contexto de filtro para hacer tareas de 
mucha más complejidad. No obstante, el escenario anterior, es decir, agregar un filtro a una 
columna es una tarea tan común que Microsoft se dio cuenta de ello desde el principio por lo 
que creo un atajo mediante una máscara para una utilización más rápida y acortada.
FILTER ( ALL ( Pedidos[SKU] ); Pedidos[SKU] = "L07" )
Pedidos[SKU] = "L07"
Este resumen, esta máscara para añadir un filtro adicional a una expresión DAX sin necesidad 
de pensar en la expresión tabular que arroje los valores exactos para cambiar el filtro existente 
se le ha denominado como: Condición booleana.
Esto es una máscara para la 
expresión tabular real (la 
encerrada en cuadro punteado 
arriba)
¡Advertencia! Internamente la condición booleana se transforma en la expresión 
tabular. Muchas personas aprenden CALCULATE con la condición booleana e 
ignorando por completo la explicación por lista de, por eso al ver algo de estilo: 
CALCULTAE ([Medida], VALUES(Pedidos[Tipo Compra])) se pierden.
    436/742
    Con la condición booleana clara, solicitudes del estilo: una medida que devuelve el promedio de 
ingresos para la categoría de descuento igual a Non es sencilla:
Ahora bien, como sabemos que los argumentos de filtro funcionan como un Y lógico podemos 
responder solicitudes también del tipo: La mediana de ingresos para la categoría de descuento Non 
y el SKU igual a CB01.
No podemos repetir la advertencia lo suficiente: las condiciones booleanas son un atajo para no 
tener que redactar toda la expresión tabular que proporcione la lista de elementos válidos y 
nuevos para el contexto de filtro, en efecto, si necesitamos una medida en la cual se deba aplicar 
un elemento A de una columna o un elemento B de otra columna ya no podremos utilizar la 
máscara de condición booleana (Aquí debemos puntualizar dos opciones, más adelante lo hacemos, 
de momento vamos a tomar el caso de un elemento A o B de una misma columna).
= 
CALCULATE (
AVERAGE ( Pedidos[Ingresos] ) ;
Pedidos[Categoría de Descuento]="Non"
)
= 
CALCULATE( 
MEDIAN ( Pedidos[Ingresos] ) ; 
Pedidos[Categoría de Descuento]="Non" ; 
Pedidos[SKU]="CB01"
)
    437/742
    – Ejemplo:
Crear una medida que al agregar a la matriz de la figura 17.10 devuelva los ingresos para el SKU 
L02 o L07. 
Nuestro amigo y lector debería poder deducir porque la siguiente expresión no es correcta:
Si repasamos el tercer paso del procedimiento interno de CALCULATE encontraremos que: si 
dos o más argumentos de filtros afectan la misma columna, estas se combinan en la 
intersección de los dos conjuntos.
Con lo anterior tendríamos:
Pedidos[SKU] = "L02" => FILTER ( ALL ( Pedidos[SKU] ); Pedidos[SKU] = "L02" ) => {“L02”}
Pedidos[SKU] = "L07" => FILTER ( ALL ( Pedidos[SKU] ); Pedidos[SKU] = "L07" ) => {“L07”}
Como están en argumentos de filtros diferentes en la función CALCULATE entonces toma los 
dos conjuntos y hace la intersección, así: {“L02”} ∩ {“L07”} = { } por lo anterior no habría 
ningún elemento en común devolviendo una lista vacía, esto quiere decir que para el campo
SKU no habría ningún elemento retornando una tabla vacía para el contexto de filtro.
= 
CALCULATE (
SUM ( Pedidos[Ingresos] ) ;
Pedidos[SKU]="L02";
Pedidos[SKU]="L07"
)
    438/742
    Nuestro objetivo sería encontrar una expresión tabular que retorne una lista con los siguientes 
elementos: {“L02”; “L07”}, para conseguirlo no es nada complicado con lo que ya sabemos:
Otra alternativa se puede presentar con la función OR 
E incluso tenemos otra vertiente adicional gracias al operador IN, de hecho, vale la pena 
detenernos unos segundos a estudiar este operador.
El Operador IN
El operador IN simplifica la comprobación de varios O lógicos, o desde otra perspectiva, chequea 
si uno dos o más elementos están en una lista proporcionada al operador IN.
= 
FILTER (
 ALL ( Pedidos[SKU] ) ; 
 Pedidos[SKU] = “L02” || Pedidos[SKU] = “L07”
)
= 
FILTER (
 ALL ( Pedidos[SKU] ) ; 
 OR ( Pedidos[SKU] = “L02” ; Pedidos[SKU] = “L07” )
)
    439/742
    La mejor manera de comprender el operador IN es con ejemplos, tomemos lo siguientes OR 
anidados.
Lo podemos resumir:
– Operador IN con múltiples columnas:
Otra gran ventaja subyace en que el operador IN no sólo puede hacer comprobaciones de listas 
en una misma columna, sino que también puede hacer comprobaciones de múltiples columnas, 
cada una con su respectiva lista, entenderlo es mucho más sencillo con un ejemplo que 
describirlo en palabras, así que vamos a ello:
Nota El operador IN está disponible desde la versión de noviembre del 2016 de 
Power BI y desde la actualización de Excel del mes de febrero del 2017, para SSAS 
estará disponible en futuras versiones sin duda.
 OR ( Pedidos[SKU] = “L01” ; 
 OR ( Pedidos[SKU] = “L02” ; 
 OR ( Pedidos[SKU] = “L03”; Pedidos[SKU] = “L04” )
 )
 )
Pedidos[SKU] IN { “L01” ; “L02”; “L03”; “L04” }
    440/742
    Condiciones Booleanas con Disyunción Lógica
Conociendo el operador IN podemos presentar la alternativa tres:
Recordemos el planteamiento del apartado anterior: Crear una medida que al agregar a la matriz 
de la figura 17.10 devuelva los ingresos para el SKU igual a L02 o L07.
Presentamos 3 alternativas:
▪ Con el operador de disyunción lógica (||)
▪ Con la función OR
▪ Con el operador IN
( Pedidos[SKU] ; Pedidos[País] )
IN { 
( “L01”; “Colombia” );
( “L02”; “Brasil” )
}
 
= 
FILTER (
 ALL ( Pedidos[SKU] ) ; 
 Pedidos[SKU] IN { “L02” ; “L07” )
)
    441/742
    Con todos los elementos que tenemos hasta este punto, ya podemos presentar la solución a la 
medida con cualquiera de las tres vertientes de disyunción lógica:
Aquí debemos puntualizar algo bien importante e involucrar la condición booleana o el atajo o 
máscara como nos gusta llamarlo:
▪ Si necesitamos una medida en la cual se deba aplicar un elemento A de una columna o 
un elemento B una misma columna podemos utilizar la condición booleana.
▪ Si necesitamos una medida en la cual se deba aplicar un elemento A de una columna o 
un elemento B otra columna debemos escribir la expresión tabular explícita
Lo anterior nos dejar ver que la expresión DAX a la hora del té la podíamos escribir de manera 
simplificada así:
= 
CALCULATE (
 [Ingresos Totales];
 FILTER ( ALL ( Pedidos[SKU] ); Pedidos[SKU] IN {"L02"; "L07" } )
)
= 
CALCULATE (
 [Ingresos Totales];
 Pedidos[SKU] = "L02" || Pedidos[SKU] = "L07"
)
    442/742
    Pero si nos piden: Una medida que devuelva los ingresos para SKU igual a L02 o el tipo de compra 
igual a Devolución, sabremos que inexorablemente debemos escribir la expresión tabular para el 
argumento de filtro de la función CALCULATE de forma explícita.
De hecho, si intentamos la forma booleana para columnas distintas. Así:
La interfaz nos devolverá un error inevitable, que dice de la siguiente manera:
Por lo tanto, no hay otra opción cuando es un O lógico con columnas diferentes que escribir la 
expresión tabular completica y 100% explicita. En este caso toca iterar en la tabla Pedidos 
completa dado que si dejamos sólo una columna devolverá un error.
= 
CALCULATE ( 
SUM ( Pedidos[Ingresos] ) ;
Pedidos[SKU]="L02" || Pedidos[Tipo Compra]="Devolución"
)
La expresión contiene varias columnas, pero en una expresión True/False que se usa 
como expresión de filtro de tabla solo puede utilizarse una columna.
= 
CALCULATE (
 [Ingresos Totales];
 FILTER ( Pedidos ; 
 Pedidos[SKU]="L02" || Pedidos[Tipo Compra]="Devolución"
)
 )
    443/742
    Casos de Condiciones Booleanas para CALCULATE
Hagamos un sumario de los casos de condiciones booleanas.
▪ Si necesitamos aplicar un único filtro a una columna específica, ejemplo, que 
únicamente se tenga en cuenta el país Colombia, entonces podemos utilizar la 
condición booleana:
o Pedidos[País]= “Colombia” 
▪ Si necesitamos un O lógico podemos utilizarlo en un mismo argumento de CALCULATE 
de la siguiente manera:
o Pedidos[País]= “Colombia” || Pedidos[País]= “Chile”
o Pedidos[País]= “Colombia” || Pedidos[País]= “Chile” || Pedidos[País]=
“Brasil”
▪ Si necesitamos un O lógico pero aplicado a diferentes columnas no hay condición 
booleana que valga, ya es necesario escribir la expresión tabular de manera explícita.
Hemos visto la sintaxis de la función CALCULATE de la siguiente manera:
= CALCULATE ( <Expresión Escalar>; [<Lista 1>]; [<Lista 2>]; [<Lista 3>]; … )
Pero en realidad esa es una de las 3 condiciones posibles para los argumentos de filtros, las 
condiciones son:
▪ [<Condición Booleana>]
▪ [<Lista>]
▪ [<Tabla>]
Es de nuestro conocimiento que:
    444/742
    [<Lista>]: Una lista de valores exacta en forma de expresión tabular que se desea ver en el 
nuevo contexto
[<Condición Booleana>]: Es un atajo o máscara para una lista que va a generar un filtro una 
columna especifica.
Condición en Forma de Tabla
En los argumentos de filtros de la función CALCULATE también podemos decirle la tabla tal cual 
como queremos que quede.
Este es el caso de la expresión:
Observemos que el argumento de filtro no devuelve una sola columna sino la tabla Pedidos
completa restringida para L02 y Devolución más la restricción del contexto de fila original. Ojo: 
con las restricciones del contexto de filtro original, esto quiere decir que si la tabla Pedidos viene 
con una restricción de país lo va a tener en cuenta, para aclararlo, si tomamos la casilla resaltada 
en la figura 17.10 (únicamente la casilla) sabremos que el contexto de filtro tendría una 
restricción de país con el elemento Argentina, pues bien esa restricción será tenida en cuenta 
= 
CALCULATE (
 [Ingresos Totales];
 FILTER ( Pedidos ; 
 Pedidos[SKU]="L02" || Pedidos[Tipo Compra]="Devolución"
)
 )
    445/742
    en la medida anterior, dado que si observamos el primer argumento de FILTER no hay ninguna 
función para ignorar el contexto, por lo tanto, lo tiene en consideración.
Con la condición de tabla clara solicitudes del estilo: Crear una medida que devuelva los ingresos 
de alta rentabilidad, estos es la suma de los ingresos, pero solamente si los ingresos de la 
transacción fueron estrictamente mayores al doble del costo total.
= 
CALCULATE( [Ingresos Totales];
FILTER ( Pedidos ; 
Pedidos[Ingresos]>
2* ( Pedidos[Costo de Envio] +
 Pedidos[Costo del Producto] +
 Pedidos[Costo Empaque]
 )
)
 )
Nota También es perfectamente válido dividir por dos las columnas 
Pedidos[Ingresos] y dejar la suma de los costos, lo vital de la medida es observar 
cómo estamos devolviendo la tabla Pedidos completa en el argumento de filtro de 
la función CALCULATE.
    446/742
    Ya tenemos las herramientas necesarias para crear la medida que devuelva el % Participación de 
la figura 17.3 correctamente:
Nótese que los argumentos de filtros devuelven tablas, en el caso del primer argumento de filtro 
retorna la tabla CategoriaDeProductos “completica” dado que está encerrado en un ALL, lo mismo 
sucederá para la tabla SKUProductos, como se encuentra dentro de la función ALL quitará todos 
los filtros asociados a la tabla retornándola completa.
ALL ( CategoriaDeProductos ) => Toda la tabla CategoriaDeProductos sin ningún filtro
ALL ( SKUProductos ) => Toda la tabla SKUProductos
Por propagación de filtros la tabla Pedidos tendrá en cuenta todos los SKU y todas las categorías 
de productos, sin embargo, mantendrá el filtro de categoría de descuento.
= 
DIVIDE (
 [Ingresos Totales];
 CALCULATE (
 [Ingresos Totales];
 ALL ( CategoriaDeProductos );
 ALL ( SKUProductos )
 )
)
    447/742
    La ilustración de la figura a continuación presenta el resultado en la matriz y la expresión DAX 
en la barra de fórmulas.
x
    448/742
    CAPÍTULO 18 
Después de completar este capítulo tú sabrás:
▪ Medidas de Participación 
▪ Función ALLSELECTED
▪ Porcentaje del total general
Con un dominio y comprensión del lenguaje DAX avanzado; todas sus fórmulas, contextos, 
funcionamiento interno, etc. Podemos crear cualquier tipo de aplicación para el área del 
conocimiento que nos desempeñemos, llámese: financiera, contable, inventarios, servicio al 
cliente, ingeniería, producción, calidad, estudio del trabajo, etc.
A lo que queremos llegar es como su nombre lo indica, DAX es un lenguaje para el análisis de 
datos, con lo que prácticamente podemos crear cualquier cosa que nos imaginemos con el 
conocimiento adecuado, sin embargo, para llegar a ello debemos pasar por el ABC y entre eso 
se encuentra las aplicaciones más sencillas y ampliamente extendidas, en otras palabras, todo 
lo que tiene que ver participación, razones o porcentajes
En ese capítulo estudiaremos las medidas de participación para dejarlas lo más flexible posible, 
desde el porcentaje del total general pasando por la medida correspondiente al porcentaje del 
total de columnas y el porcentaje del total de filas.
    449/742
    La medida de porcentaje de participación estudiada hasta este punto aún no cumple con todo 
el dinamismo necesario, de hecho, si agregamos una segmentación de datos en la cual 
agregamos la columna SKU de la tabla SKUProductos a su campo y seleccionamos los elementos: 
B01, B02, C02, CB01, L04, L05 y L06 obtendremos el resultado de la matriz presentada en la 
figura siguiente:
Casilla para analizar con los 3 
pasos primordiales del lenguaje 
DAX.
    450/742
    Pero al mirar el total de archivos nos encontraremos a que la medida nuevamente a fallado por 
el simple hecho de que no da 100%.
– 1. Identificar Filtros
▪ SKUProductos[SKU] = { “B01”; “B02”; “C02”; “CB01”; “L04”; “L05”; “L06”; “L07” }
▪ Descuentos[Categoría de Descuento] = “Special Day”
– 2. Aplicar Filtros y Propagar
Se aplican los elementos del campo SKU de la tabla SKUProductos y el filtro de Special Day de 
la tabla Descuento, por propagación de filtros la tabla Pedidos sólo queda visible para aquellas
filas donde los SKU son { “B01”; “B02”; “C02”; “CB01”; “L04”; “L05”; “L06”; “L07” } y el 
descuento es Special Day.
– 3. Ejecutar Expresión DAX Filtros
= DIVIDE (
 [Ingresos Totales];
 CALCULATE (
 [Ingresos Totales];
 ALL ( CategoriaDeProductos );
 ALL ( SKUProductos )
 )
Para el numerador [Ingresos Totales]
[Ingresos Totales] = SUM ( Pedidos[Ingresos] ) = Ingresos totales pero sólo para los SKU: 
“B01”; “B02”; “C02”; “CB01”; “L04”; “L05”; “L06”; “L07” y el descuento igual a Special 
Day.
    451/742
    Para el denominador, Procedimiento Interno de CALCULATE
✓ Copia Contexto: Pedidos con filtros de SKU: “B01”, “B02”, “C02”, “CB01”, “L04”, “L05”, 
“L06”, “L07” y Categoría de descuento “Special Day”
✓ Evalúa cada argumento de filtro y genera lista o tabla completa: 
o <Tabla1> => ALL ( CategoriaDeProductos ) => Devuelve toda la tabla a la 
normalidad
o <Tabla2> => ALL ( SKUProductos ) => Devuelve toda la tabla a la normalidad
o Se debe destacar que propagación de filtros la tabla Pedidos también vuelve a 
la normalidad, en este caso, quita los de SKU y Categoría De Descuento
✓ Contexto de filtro actualizado
o Ningún filtro aplicado a la tabla Pedidos
El nuevo contexto de filtro es la tabla Pedidos actualizada donde no tendrá filtros para SKU ni 
para Categoría de Descuento.
✓ Ejecutar Expresión DAX (Primer argumento de CALCULATE) en el nuevo contexto de filtro: 
Pedidos sin filtros: [Ingresos Totales] => SUM (Pedidos[Ingresos})
✓ Reiniciar Contexto al Original
El problema radica entonces en que el denominador está removiendo todos los filtros del SKU, 
cuando en realidad lo que se quiere es que tenga en cuenta aquellos elementos que han sido 
seleccionados en la segmentación de datos originalmente.
– Cómo solucionamos este inconveniente
Función ALLSELECTED
La función ALLSELECTED es extremadamente útil cuando queremos ejecutar cálculos utilizando 
selecciones de objetos visuales de segmentación de datos y objetos visuales diferentes a la 
matriz.
    452/742
    La función ALLSELECTED retorna únicamente los valores que son visibles en el contexto de filtro 
original, es decir, del contexto de la matriz, dicho de otro modo: la función ALLSELECTED ignora 
los filtros del área de filas y columnas de la matriz y tiene en cuenta los que se utilizan para 
calcular el total general.
– ALLSELECTED tiene tres sabores de argumentos 
Columna: Retorna los elementos originales seleccionados, ejemplos: ALLSELECTED ( 
Pedido[SKU] )devuelve los SKU originalmente seleccionados.
Tabla: Ejecuta ALLSELECTED en todas las columnas de la tabla, retornando todas las filas 
originalmente seleccionadas, ejemplo: ALLSELECTED ( Pedidos )
Sin argumentos: También se puede utilizar la función ALLSELECTED sin argumentos de la 
siguiente manera: ALLSELECTED()es decir sin ningún parámetro. Lo que hace esta forma es que 
realiza el ALLSELECTED en todas las tablas en el modelo de datos, haciendo posible ejecutar el 
total general de una matriz sin filtros en filas y columnas. Una solución a la medida de % 
Participación podría ser:
= 
DIVIDE (
 [Ingresos Totales];
 CALCULATE (
 [Ingresos Totales];
 ALL ( CategoriaDeProductos );
 ALLSELECTED ( SKUProductos )
 )
)
    453/742
    Pero la medida más flexible de todas se escribe como sigue:
Ya podemos apreciar la matriz con los resultados adecuados:
= 
DIVIDE (
 [Ingresos Totales];
 CALCULATE (
 [Ingresos Totales];
 ALLSELECTED ( )
 )
)
    454/742
    Total de Fila o Columnas
El porcentaje respecto al total general es un cálculo tan común y de una utilidad gigantesca, a 
pesar de ello, también tenemos otras variaciones de igual impacto, una de ellas es el porcentaje 
respecto al total de columnas, por ejemplo, si tenemos una matriz con el campo SKU de la tabla 
SKUProductos en el área filas y el campo País de la tabla Pedidos en el área de columnas, así como 
la ilustrada en la siguiente figura:
 
Nota
Toma la expresión: 
VAR Med = [Medida para el Cálculo de Participación]
RETURN
DIVIDE ( Med ; CALCULATE ( Med ; ALLSELECTED() )
Como dada para crear cualquier medida que necesites de participación de cálculo 
de porcentaje del total general.
    455/742
    El objetivo es presentar cada casilla como un porcentaje respecto al total del país o columna en 
consideración. Si pensamos por un momento en términos de la casilla que esta resaltada en la 
figura anterior sabemos que lo se quiere alcanzar es dividir la medida [Ingresos Totales] sobre 
el total siempre y cuando sea únicamente para el país argentina, el numerador es sencillo
[Ingresos Totales] = SUM ( Pedidos[Ingresos} )
El denominador por otra parte conocemos de antemano que debe tener una estructura algo 
así:
CALCULATE ( [Ingresos Totales] ; ______________________ )
Lo que queremos conseguir en el argumento subrayado es una lista que retorne: “Argentina” 
para el caso particular de la casilla que estamos tomando como punto de referencia de la figura 
anterior, sin embargo, no podemos perder de vista que el país variará dependiendo de la casilla 
en la que nos encontremos ubicados en la matriz.
En este caso nos basta con crear una lista, para ello podríamos pensar en: ALL ( Pedidos[País] ) 
pero cabe recordar que ALL ignora el contexto de filtro por lo que dicha expresión devolvería el 
lista de todos los países, no es una opción. Si rememoramos una nota del capítulo 15 cuando 
discutíamos las dos caras de la función ALL recordaremos que hablamos de la función VALUES, 
la función VALUES es una función que retorna la lista de valores únicos teniendo en cuenta el 
contexto: 
VALUES ( Pedidos[País] )
Esta fórmula para casilla que estamos tomando de base (Figura 18.2) devolvería lo que 
necesitamos: {“Argentina”}. Por lo tanto, la medida para el porcentaje del total de columnas 
sería como sigue:
    456/742
    La matriz:
= 
DIVIDE (
 [Ingresos Totales];
 CALCULATE (
 [Ingresos Totales];
 ALLSELECTED () ;
 VALUES ( Pedidos[País] )
 )
)
    457/742
    Si en su lugar se desea el porcentaje respecto al total de fila, la solución es similar, pero en lugar 
de indicar el campo País de la tabla Pedidos en la función VALUES debemos indicar el campo SKU
de la tabla SKUProductos, así:
= 
DIVIDE (
 [Ingresos Totales];
 CALCULATE (
 [Ingresos Totales];
 ALLSELECTED () ;
 VALUES ( SKUProductos[SKU] )
 )
)
Nota Estas medidas se pueden realizar de manera implícita utilizando las 
características de interfaz de Power BI, no obstante, aparte de ser unas buenas 
medidas de estudio debemos recordar que la minimización de medidas implícitas 
es una de las mejores prácticas en la construcción de un modelo de datos.
    458/742
    CAPÍTULO 19 
Después de completar este capítulo tú sabrás:
▪ Construcción de Tablas de Calendario
▪ Qué es una Medida y su importancia
▪ Qué es una Columna Calculada y su importancia
▪ Qué es una Tabla Calculada y su importancia
▪ Variables en el lenguaje DAX
Las aplicaciones y cálculos que involucran fechas y distorsiones en el tiempo son parte del que 
hacer “matutino” de las personas que trabajan con datos, por esto en este capítulo queremos 
construir y analizar de forma generosa las más utilizadas y destilar su esencia, pero para que se 
una crónica en toda regla primero debemos desnudar cada parte de la temática de tablas de 
calendario, estas flanquean las funciones de inteligencia de tiempo o time Intelligence (por el 
termino en inglés) a quienes se les atañe toda la facilidad. En ese capítulo encontraras las 
expresiones DAX para cálculos de: PY, PM, PQ, PYTD, PMTD, PQTD, MAT y muchas más.
Antes de dar una definición de qué es una tabla de calendario es necesario repasar los 
conceptos de: Tablas de búsqueda y una tabla transaccional. Puedes repasar estos conceptos 
en el capítulo 12, aquí te dejamos unas definiciones alternas para consolidar estos conceptos 
importantes.
    459/742
    Qué es una Tabla de Calendario
Desglosemos la definición por partes para tratar de dejarlo lo más claro posible.
Tabla de Búsqueda
Una tabla de búsqueda es aquella que contiene campos que son utilizados para 
restringir y agrupar registros en tablas transaccionales. 
Sí, sé que eso se leyó como si se tratará del lenguaje alíen del film arrival (Complejo y 
rozando los límites de lo incomprensible)
¿Está familiarizado con BUSCARV? - Mejor que mejor
Porque una tabla de búsqueda sería aquella que ponemos en el argumento
matriz_buscar_en mientras que la tabla donde estamos creando la función BUSCARV 
sería la tabla transaccional.
Para ponerlo en términos coloquiales para lo que necesitamos:
Una Tabla de Búsqueda: Es una tabla en la cual por lo menos uno de sus campos 
tiene elementos que no se repiten (cada ítem o elementos es único identificando 
de forma univoca cada registro de la tabla). 
Tabla de Calendario
Una tabla de calendario es un tipo especial de tabla de búsqueda que tiene como finalidad 
poder categorizar elementos en el campo fecha en diversos grupos de acuerdo con 
parámetros en esa fecha.
    460/742
    ▪ Una tabla de calendario es un tipo especial de tabla de búsqueda: Nos dice que es una 
tabla de búsqueda, esto quiere decir que debe existir una columna (campo) cuyos 
elementos no se repiten (valores únicos)
Esta columna en la tabla de calendario es una que contiene todas las fechas de manera 
consecutiva entre dos fechas extremas
– Ejemplo: si la tabla de calendario va de 1/1/2016 al 31/12/2016, entonces una y cada una 
de las fechas entre esta dos últimas debe estar una única vez.
Nótese como van apareciendo de manera consecutiva y una única vez las diversas fechas sin 
excepción (la imagen anterior muestra un fragmento de la columna, la tabla original llega hasta el 
31/12/2016)
    461/742
    También la definición indica que es: «especial». Ello es así porque está pensado para el trabajo 
con fechas y habilita un conjunto de funciones especiales llamadas time Intelligence o de 
inteligencia de tiempo. 
La definición continua con:
▪ Tiene como finalidad poder categorizar elementos en el campo fecha en diversos grupos 
de acuerdo con parámetros en esa fecha: Quiere decir que toma características comunes 
en el campo fecha y asigna una categoría que posteriormente podemos usar en el 
reporte de tabla dinámica para ver un resumen de los datos.
– Ejemplo: De la fecha (columna con fecha consecutiva) podemos extraer a que mes pertenece 
esa fecha 
Nota A esa columna que contiene las fechas consecutivas de manera única 
generalmente se le denomina: Fecha o Fechas (En inglés la llaman también Date o 
DateKey). La definición dice: «Categorizar elementos por el campo fecha» Ese campo 
es precisamente el campo con elementos únicos (No repetidos)
    462/742
    De la tabla y las columnas creadas se aprecia claramente que el campo Mes Nombre les ha 
asignado a todas las fechas del primer mes del año la etiqueta enero, para el segundo mes 
febrero y así sucesivamente.
Como intuimos directamente dicha columna (Mes Nombre) la podemos utilizar posteriormente 
en un reporte de tabla dinámica para ver los resúmenes de los datos en los distintos meses.
Otro par de columnas que se ilustran en la imagen, son:
– Mes Número: En lugar de asignar el nombre (enero) asigna el número de mes 1, y así para 
cada mes (Columna especialmente útil para ordenar)
– Trimestre: Otra categoría que nos permite agrupar las fechas con otra característica, en este 
caso a que trimestre del año pertenece
¿Cuáles son las columnas que debe tener una tabla de calendario?
Aquí no hay una regla de oro, dado que las columnas las creas a tu medida y necesidad, pero te 
recomendamos como mínimo las siguientes:
Llamémoslas las Columnas Primordiales para tabla de calendario:
– Fecha: Ok. Este si es obligatorio. Es la columna con valores únicos que hemos venido 
discutiendo
– Año: Si tus datos pasan la frontera de un año, entonces es indispensable añadir esta categoría 
para los años
Nota, Cada una de estas agrupaciones se ve en su respectiva columna en la figura 
19.2.
    463/742
    – Mes Número: Columna que indica si la fecha pertenece al primer mes del año, al segundo, 
tercero, etc. Mediante un número entero entre el 1 al 12
– Mes Nombre: Indica a que mes pertenece la fecha en la fila (enero, febrero, marzo, …)
– Trimestre: Indica a que trimestre del año pertenece la fecha actual
– Día de la Semana Nombre: Informa a cuál de los días de la semana pertenece la fecha en la 
fila (Lunes, Martes, Miércoles,…)
– Día de la Semana Número: Columna que indica si la fecha pertenece al primer día de la 
semana, al segundo, tercero, etc. Mediante un número entero que va del 1 al 7 (También útil 
para ordenar)
¿Son esas columnas las únicas para una tabla de calendario?
No. Creamos las columnas a nuestra necesidad, sí necesitas una columna que señale 
los bimestres, cuatrimestres, semestre lo puedes hacer o incluso agrupar períodos más extensos
como en lustros, décadas, etc. También es válido.
En resumen, cualquier sistema de tiempo que necesites para segmentar tus datos en el reporte 
de tabla dinámica.
Características y Propiedades de una Tabla de Calendario
Ya entendemos y conocemos qué es una tabla de calendario.
Igual de importante es saber esas características y propiedades que debe tener para que sea 
una tabla de calendario con todas las de la ley.
Nota La clave es que dichas categorías se basan en la columna de fechas
    464/742
    ▪ Contiene una columna con nombre fecha o similar la cual contiene todas las fechas de 
manera consecutiva entre dos extremos (nada de saltos)
▪ Las fechas extremas siempre deben arrancar en su cota inferior en el primero de enero 
del año asociado a la menor fecha de tablas del modelo de datos, y en su cota superior 
en el treinta y uno de diciembre del año final en el modelo de datos.
▪ El mes de febrero tiene 28 días o 29 días si es bisiesto
▪ Los meses enero, marzo, mayo, julio, agosto, octubre y diciembre tienen 31 días; los meses 
restantes tienen 30 días a excepción de febrero
▪ Contiene categorías para agrupar fechas según un criterio
o Años
o Meses
o Trimestres
o Etc.
▪ Marcar la tabla como de calendario si quieres acceder sin ningún tipo de anomalía al 
paquete de funciones time Intelligence o de inteligencia de tiempo
▪ La tabla de calendario tiene sentido de verdad si está relacionada con por lo menos una 
tabla transaccional (también llamada base o tabla matriz)
Nota
La tabla de calendario (estándar), cumple con una y cada una de las condiciones 
del calendario gregoriano o ese calendario que tenemos «colgado en la pared» o 
el del celular.
¡Importante!: resaltar que las tablas de calendario de las cuales estamos hablando 
son tablas de calendario estándar.
    465/742
    Métodos de Construcción de Tablas de Calendario
So far, so good ..
Quizá ya hayas esbozado en tu mente una o varias formas de poder crear una tabla de 
calendario estándar, pues comprendiendo qué es y cuáles son propiedades no es difícil poner 
sobre la mesa métodos para su construcción.
Listemos algunas alternativas para construir una tabla de calendario:
▪ Construcción en Excel con fórmulas clásicas 
▪ Construcción en Power Pivot con fórmulas DAX 
▪ Construcción en Power Pivot automáticamente 
▪ Construcción en Power BI con CALENDAR y CALENDARAUTO
▪ Construcción con Power Query de Excel o Power BI con elementos de la interfaz 
▪ Construcción con Power Query y lenguaje M 
▪ Obtención desde Azure Marketplace 
▪ Obtención desde BD SQL 
Nota En el capítulo 7: Inteligencia de Negocios con Fechas puedes estudiar un 
método de construcción de tabla de calendario utilizando la interfaz del editor de 
Power Query.
Nota La construcción de tablas de calendario con la interfaz de celdas de Excel es 
bastante intuitiva si tienes conocimiento básico/intermedio de las fórmulas de 
Excel.
Si deseas conocer su desarrollo y ejecución de time Intelligence en Excel te 
recomendamos el libro: EL ADN de Power Pivot.
    466/742
    Construcción de Tabla de Calendario con CALENDAR y CALENDARAUTO
Desde la interfaz analítica podemos crear tablas de calendario gracias a el tipo de cálculo tablas 
calculadas.
– Construcción con la función CALENDAR
La función CALENDAR es una función del lenguaje DAX que retorna una columna con nombre 
“Date” que contiene un conjunto de fechas contiguas, el rango de fechas inicia desde la fecha 
indicada en su primer argumento hasta la fecha decretada en su segundo argumento, ambos 
extremos se incluyen en la columna de fechas. 
Estos son los dos argumentos de la función CALENDAR
▪ Start Date: Cualquier expresión DAX que retorne un escalar de tipo fecha o de fecha 
que servirá de fecha inicial para la columna
▪ End Date: Cualquier expresión DAX que retorne un escalar de tipo fecha o de fecha y 
hora que servirá de fecha final para la columna 
La utilización de la función CALENDAR estriba en identificar la menor y mayor fecha en nuestro 
modelo de datos. ¿Cómo identificamos estas fechas?
En nuestro caso tenemos únicamente la tabla Pedidos y ella tiene dos columnas de fechas: Fecha 
de Envió y Fecha de Llegada, intuitivamente sabremos que la fecha más pequeña estará en la 
fecha de envió y la fecha más grande en la columna fecha de llegada. Por lo que las siguientes 
expresiones retornan lo deseado:
Nota Para identificar la fecha más pequeña en el modelo de datos, así como la 
mayor debemos tomar todas las columnas de fechas de las tablas transaccionales 
y extraerlas.
    467/742
    ▪ MIN ( Pedidos[Fecha de Envio] ) 
▪ MAX ( Pedidos[Fecha de Llegada] ) 
Las funciones señaladas son válidas, dicho sea de paso, presentan inconvenientes con la 
función CALENDAR, para un funcionamiento como fina pieza de relojería tenemos que recurrir 
a la versión de la función MIN para fechas que es la función FIRSTDATE y la versión de la función 
MAX para fechas que es la función LASTDATE.
▪ FIRSTDATE ( Pedidos[Fecha de Envio] ) 
▪ LASTDATE ( Pedidos[Fecha de Llegada] ) 
Cuando implementamos las soluciones anteriores bien sean en medidas o tablas calculadas
encontraremos las siguientes respuestas:
Nota, Los cálculos de la figura anterior se crearon en medidas, así
FIRSTDATE ( Pedidos[Fecha de Envio] ) y LASTDATE ( Pedidos[Fecha de Llegada] ) 
Ellas fueron añadidas a una tarjeta de múltiples filas. Para profundizar en este 
objeto visual véase el Capítulo 23: Gráficos de Seguimiento.
    468/742
    La función DATE retorna una fecha específica en un formato de fecha y hora detallando de 
manera explícita el año, mes y día cada uno en de sus argumentos en ese orden, esta es la 
sintaxis”
= DATE (<Año>;<Mes>;<Día>)
▪ Año: Un número entero que representa el año. El rango de valores numéricos que se 
pueden utilizar en este argumento va desde 1900 hasta el año 9999.
▪ Mes: Un número entero que representa el mes del año, donde el número 1 corresponde 
con enero, el 2 con febrero y así sucesivamente.
▪ Día: Un número entero que representa el día del mes, donde el 1 representa el primer 
día del mes, el 2 el segundo día del mes y así sucesivamente hasta el último día del mes.
¡Advertencia! Utilizar la expresión DAX:
=
CALENDAR (
 FIRSTDATE ( Pedidos[Fecha de Envio] );
 LASTDATE ( Pedidos[Fecha de Llegada] )
)
No es la más adecuado para crear la columna de fechas de una tabla de calendario, 
el motivo es que la primera fecha no siempre inicia en el 1de enero, de hecho, para 
nuestro escenario empieza el 14 de diciembre, la misma lógica aplica para la fecha 
final que termina el 20 de diciembre en lugar del 31 de diciembre
    469/742
    La expresión DAX ideal para la tabla calculada en nuestro caso sería:
Después de la creación de la columna es buena práctica renombrarla con el nombre de fechas, 
a continuación, generaremos las demás columnas con los sistemas de tiempo necesarios para 
nosotros con columnas calculadas.
Dejamos las fórmulas para las columnas más utilizadas:
▪ Año: = YEAR(Calendario[Fechas])
▪ Semestre: =IF(MONTH(Calendario[Fechas])<=6;"Semestre 1"; "Semestre 2")
▪ Cuatrimestre: = "Ctr. 1" & ROUNDUP(DIVIDE(MONTH(Calendario[Fechas]);4);0)
▪ Trimestre: = FORMAT(Calendario[Fechas];"q")
▪ Mes Número: =MONTH(Calendario[Fechas])
▪ Mes Nombre: =FORMAT(Calendario[Fechas];"mmmm")
▪ DS Número: =WEEKDAY(Calendario[Fechas];2)
▪ DS Nombre: = FORMAT(Calendario[Fechas];"dddd")
▪ Día del Mes: = DAY(Calendario[Fechas])
Un aspecto de las columnas Mes Nombre y DS Nombre son los nombres propios para sus 
elementos, en este caso a nosotros nos gusta que la primera letra vaya en mayúscula, ejemplo 
en lugar de: enero, febrero, …, diciembre; preferimos: Enero, Febrero, …, Diciembre
Calendario =
CALENDAR (
 DATE ( YEAR ( FIRSTDATE ( Pedidos[Fecha de Envio] ) ); 1; 1 );
 DATE ( YEAR ( LASTDATE ( Pedidos[Fecha de Llegada] ) ); 12; 31 )
)
    470/742
    La fórmula DAX para la primera la columna Mes Nombre con el primer carácter en mayúsculas 
sería:
La fórmula para la columna DS Nombre sería prácticamente idéntica:
=
VAR MesNombre =
 FORMAT ( Calendario[Fechas]; "mmmm" )
RETURN
 CONCATENATE (
 UPPER ( MID ( MesNombre; 1; 1 ) );
 MID ( MesNombre; 2; LEN ( MesNombre ) )
 )
DS Nombre =
VAR DSNombre =
 FORMAT ( Calendario[Fechas]; "dddd" )
RETURN
 CONCATENATE (
 UPPER ( MID ( DSNombre; 1; 1 ) );
 MID ( DSNombre; 2; LEN ( DSNombre ) )
 )
    471/742
    Una particularidad que deriva al hacer uso de la columna Fechas de la tabla de Calendario radica 
en que al momento de digitar: Fechas[Calendario] se despliega una lista desplegable con 
diversos periodos de tiempo.
Podríamos estar tentados a valernos de estas vías rápidas, dicho sea de paso, no son originarias 
del lenguaje DAX técnicamente hablando, son en realidad atajos del lenguaje MDX. 
Como intuye nuestro amigo y lector no recomendamos los atajos MDX. 
¿Por qué?
Posteriormente debemos indicar por medio de la interfaz que la tabla creada es una tabla de 
calendario, al hacerlo nos mostrará un error en las columnas creadas con los atajos.
Nota Nosotros utilizamos las letras DS para abreviar las palabras Día de la Semana 
para que no quede un nombre tan extenso, claro está que no es camisa de fuerza.
Atajos 
derivados 
de MDX.
    472/742
    Con las consideraciones necesarias y 100% cristalinas:
– Construcción con la función CALENDARAUTO
La función CALENDARAUTO retorna una columna con nombre “Date” que contiene un conjunto 
de fechas contiguas, esta función no tiene argumentos por lo que para la menor fecha tomará 
la fecha más pequeña que detecte en todo el modelo y de manera similar lo hará para la mayor 
fecha. 
La expresión para la tabla calculada sería tan sencilla como:
A parte de allí crear las columnas calculadas como se hizo con CALENDAR
Entonces ¿Por qué molestarse en utilizar la función CALENDAR y todas las funciones anidadas que de 
allí se desprende?
Calendario =
CALENDARAUTO ()
    473/742
    Marcar como Tabla de Calendario
Para que el modelo de datos entienda que es una tabla de calendario y la jerarquía de fechas 
funcionen adecuadamente con el conjunto de fórmulas de inteligencia de tiempo debemos 
decírselo de forma explícita.
Para indicarlo seleccionamos la tabla de calendario, vamos a la pestaña Modelado y ubicamos el 
grupo Calendarios.
¡Advertencia! Dependiendo de cómo internamente la función CALENDARAUTO 
tome las fechas de inicio y final puede en ciertas ocasiones presentar errores de 
referencia circular, son problemas de baja frecuencia, pero tenemos la alternativa 
con CALENDAR por si llega a presentar.
En Power Pivot para Excel no contamos con la función CALENDAR.
    474/742
    Allí desplegamos las opciones de Marcar como tabla de fechas y pulsamos clic en la primera 
opción con el mismo nombre, con esta acción se muestra el cuadro de diálogo que se ilustra en 
la figura a continuación:
En la lista del cuadro de diálogo vamos a seleccionar la columna con la clave primaria, dicho de 
otro modo, la columna que creamos mediante el tipo de cálculo la tabla calculada y la función 
CALENDAR o CALEDARAUTO. En el panel de campos veremos que icono en el extremo izquierdo 
de la columna fecha cambia.
x
    475/742
    Construcción de Tabla de Calendario con GENERATE y ROW
Una alternativa para la creación de una tabla de calendario de un solo golpe, nos referimos, a 
crear todas las columnas en el tipo de cálculo tabla sin necesidad de ulteriormente agregar 
columnas calculadas, es con la ayuda de la función GENERATE
– Función GENERATE
La función GENERATE evalúa el segundo argumento para cada fila en el primer argumento, 
retornando el producto cartesiano entre cada fila del primer argumento y la fila correspondiente 
generada en el segundo argumento.
Estos son los dos argumentos de la función GENERATE
▪ Table 1: Cualquier nombre de tabla o una expresión DAX que retorne una taba como 
resultado.
▪ Table 2: Puede ser algo tan sencillo como un nombre de tabla o una expresión DAX de 
tipo tabular.
– Función ROW
La función ROW devuelve una tabla con una única columna.
ROW (<Nombre Columna 1>; <Expresión>
[<Nombre Columna 2>; <Expresión>] …)
Si nos valemos de la función GENEARTE y ROW podemos crear todas las variables que 
necesitemos en el contexto de fila antes de la expresión ROW.
Nota La función GENEARTE es una función de iteración.
    476/742
    Calendario=
VAR CalendarioBase =
 CALENDAR (
 DATE ( YEAR ( FIRSTDATE ( Pedidos[Fecha de Envio] ) ); 1; 1 );
 DATE ( YEAR ( LASTDATE ( Pedidos[Fecha de Llegada] ) ); 12; 31 )
 )
RETURN
 GENERATE (
 CalendarioBase;
 VAR FechaBase = [Date]
 VAR A =
 YEAR ( FechaBase )
 VAR MesNumero =
 MONTH ( FechaBase )
 VAR MesNombre =
 FORMAT ( FechaBase; "mmmm" )
 VAR Trimestre =
 FORMAT ( FechaBase; "q" )
 RETURN
 ROW ( "Fecha"; FechaBase;
 "Año"; A;
 "Mes Nombre"; MesNombre;
 "Mes Número"; MesNumero;
 "Trimestre"; Trimestre )
 )
    477/742
    Interacción de Tabla de Calendario con las demás Tablas
Para que el modelo de datos entienda que es una tabla de calendario y la jerarquía de fechas 
funcionen adecuadamente con el conjunto de fórmulas de inteligencia de tiempo debemos 
decírselo de forma explícita.
La tabla de calendario se debe relacionar con las tablas transaccionales en el modelo de datos, 
sabiendo que una tabla de calendario es una tabla de búsqueda no hay mayor misterio en ese 
punto. 
En última instancia una tabla de calendario es una tabla de búsqueda, con lo cual los filtros de 
dicha tabla se propagan a la tabla o tablas transaccionales.
Nota En un mismo modelo de datos podemos tener más de una tabla de calendario 
cada uno con un propósito.
    478/742
    Orden Cronológico para Meses
Si creamos una matriz con el campo Mes Nombre de la tabla de Calendario y en el área de filas la 
medida Ingresos Totales en el área de valores, nos podremos percatar que los nombres de los 
meses siguen un orden alfabético.
Evidentemente no es el orden natural y cronológico al que estamos acostumbrados, sin 
embargo, su solución es muy sencilla; para lograrlo vamos a la vista de datos, seleccionaos la 
tabla de Calendario y luego la columna Mes Nombre, posteriormente vamos a la pestaña 
modelado y en el grupo ordenar desplegamos las opciones de ordenar por columna, con ello 
aparecerán todas las columnas en la tabla de calendario. Aquí seleccionamos Mes Número ya que 
asocia el número 1 a enero, el número 2 a febrero, el número 3 a marzo y así sucesivamente 
hasta el número 12 para el mes diciembre
    479/742
    La matriz ahora queda organizada
x
Nota El orden por columna no solo aplica para los meses, también debemos 
ejecutar el procedimiento para la columna DS Nombre. En otros aspectos tal vez 
necesitemos ordenar la columna por el número de habitantes u otras variables, 
este mismo método será el apropiado para alcanzar dicho objetivo.
x
Campos Mes 
Nombre ordenado 
cronológicamente.
    480/742
    Extensión de Tablas de Calendario
Hemos visto que utilizamos los campos de la tabla de calendario para segmentar en las tablas 
transaccionales, empero, no todas las columnas en una tabla de calendario tienen dicho fin.
En una tabla de calendario tenemos dos tipos de columnas o campos:
▪ Columnas de Segmentación
▪ Columnas Técnicas
– Columnas de Segmentación
Las más sencillas de entender son las columnas de segmentación, debido a que simplemente 
son aquellos campos que utilizamos para agrupar los datos, y añadir a algunas de las áreas de 
colocación a necesidad, ejemplo: Año, Mes, Trimestre, etc.
Las columnas de segmentación son visibles para el usuario, pues como se menciona hace una 
nimiedad dichas columnas (campos) son lo que arrastramos a algunas de las áreas de colocación 
para crear la matriz u objeto visual, en el caso de Power Pivot para Excel en una tabla dinámica.
– Columnas Técnicas
Las columnas técnicas pueden ser pensadas como columnas auxiliares y cuyo objetivo primo 
es identificar y/o manipular partes o subconjuntos de la tabla de calendario para así llevar a buen 
término un cálculo (que implican fechas) deseado.
Nota, Las columnas Mes Número y DS Número también son columnas de 
segmentación, esto es así porque ellas también sirven para agrupar los datos 
demás de ser auxiliares.
    481/742
    Por ejemplo:
Para crear medidas con DAX en algunos casos es necesario crear la combinación concatenada
(Años, Semestre y Mes) de manera única independiente de una fecha en singular
El campo AñoSemestresMesSerie es número que sirve para hacer cálculos internos y crear 
medidas más no para utilizarla en un área de colocación y ver análisis a partir de ella 
directamente. Un caso práctico para la columna AñoSemestresMesSerie es para la creación de la 
medida Pronóstico Media Móvil Simple (una de las múltiples alternativas).
La fórmula DAX para la columna AñoSemestresMesSerie es sencilla: 
Nota Las columnas técnicas también son vitales para el funcionamiento del 
modelo de datos.
AñoSemestresMesSerie =
VALUE (
 Calendario[Año] & RIGHT ( Calendario[Semestre]; 1 )
 & Calendario[Mes Número]
)
Nota No confundas la función VALUES con la función VALUE, la primera es una 
función tabular que retorna la lista de valores únicos teniendo en cuenta el 
contexto de filtro, mientras que la segunda (VALUE sin la S al final) es una función 
de conversión de tipo escalar la cual toma un valor de tipo texto que representa 
un número y lo convierte a valor de tipo numérico.
    482/742
    Antes de terminar con columnas técnicas, es válido señalar que es una buena práctica ocultar 
dichas columnas del panel de campos.
¿Cómo lo hacemos?
En la vista de datos seleccionamos la columna AñoSemestresMesSerie de la tabla de Calendario y 
pulsamos clic derecho, en el menú desplegable que aparece ubicamos la opción ocultar en la 
vista de informe.
En consecuencia, cuando estemos trabajando en la vista de informe de Power BI y despleguemos 
en el panel de campos las columnas de la tabla de calendario, el campo AñoSemestresMesSerie
no se mostrará. Igualmente, si aplicamos el procedimiento de ocultar en la vista de informe, pero 
en Power Pivot para Excel, dicha columna no será visible para arrastrar y soltar en las áreas de 
colocación de una tabla dinámica.
    483/742
    Días No Laborales con Tablas de Calendario (Sábados, Domingos y Festivos)
En ciertas métricas nos demandarán presentar un cálculo que tenga en cuenta los días laborales 
de forma directa o indirecta. Los días no laborales son extremadamente versátiles de país a país 
y más aún de empresa en empresa.
¿Por qué?
Por el simple hecho de que en una compañía A los sábados pueden ser considerados días 
laborales, mientras que para una compañía B si se sean laborales, para complicarlo un poquito 
más, puede que dentro de una misma compañía para los empleados de oficina los sábados no 
sean días laborales, pero para otras áreas si tengan que trabajar, y si, lo queremos llevar al mayor 
grado de complejidad puede variar de empelado a empleado dentro de la misma empresa
¿Es posible?
Si, puesto que un empleado puede tener ciertos días incapacidad, permisos o sus días de 
vacaciones.
Por lo anterior no existe una fórmula estándar o una tabla estándar para días laborales, más 
bien un factor común que podemos extrapolar.
Columna Días Laborales
Para la construcción de una columna que nos diga si una fecha en la tabla de calendario 
corresponde a un día laboral necesitamos una tabla que liste todas las fechas que son 
festividades en nuestro país y aquellas que no son laborales por algún motivo entre semana 
dentro de la compañía, un ejemplo puede ser: el aniversario de la empresa.
    484/742
    Por ejemplo, la ilustración siguiente muestra la tabla DíasFestivos donde se especifican todas las 
festividades para el país Colombia en el año 2015.
La columna Días Festivos de la tabla DíasFestivos la tenemos que relacionar con la columna Fecha
de la tabla de Calendario.
Nota En nuestro modelo de datos podemos tener varias tablas de calendario, en 
dicho caso recomendamos relacionarlas con todas las tablas, si bien no es la 
alternativa de optimización de recursos si es una buena idea para no encontrarnos 
con dolores de cabezas si creamos muchas medidas que utilicen esta columna en 
una o varias tablas de calendario.
    485/742
    Al relacionar las tablas observaremos que es uno a uno.
La elaboración de la columna calculada en la tabla Calendario la podemos ejecutar con la 
siguiente fórmula.
Día Laboral =
IF (
 OR (
 Calendario[DS Número] = 6
 || Calendario[DS Número] = 7;
 RELATED ( 'DíasFestivos'[Días Festivos] ) = Calendario[Fechas]
 );
 FALSE ();
 TRUE ()
)
    486/742
    Si no contamos con la información de días feriados una alternativa como la siguiente expresión 
DAX puede ser plausible.
Los beneficios de las tablas de calendario incluyen la creación y segmentación en sistemas de 
tiempo deseados (Semanas, Meses, …, Año, … Decenios, siglos …); ordenación personalizada, 
manipulación de varias tablas transaccionales, perite hacer tareas hasta 100 veces más rápido, 
reportes más adecuados y dinámicos disminuyendo errores por factor humano, etc. Pero hay 
que destacar que las tablas de calendario habilitan un conjunto de funciones para manipular 
fechas, estas son las funciones de inteligencia de tiempo o como se conoce en ingles las 
funciones Time Intelligence.
Acumulados: Total a la fecha (YTD, MTD y QTD)
Para el grueso de las personas que se dedican en menor o mayor medida al análisis de datos la 
palabra acumulado habla por sí sola, no obstante, para no dejar cabos sueltos vamos a definir 
Día Laboral =
IF ( Calendario[DS Número] = 6 || Calendario[DS Número] = 7; 
FALSE (); 
TRUE ()
)
Nota,La recomendación es contar con la tabla de días festivos.
    487/742
    el acumulado como la agregación desde el principio de un periodo de tiempo hasta el periodo 
actual, ejemplo: la suma de los ingresos desde el principio del año hasta el mes actual en análisis, 
en concreto, tomemos la matriz de la siguiente figura:
Si posicionamos nuestra vista en la pequeña “casilla” en blanco resaltada en la imagen, el 
acumulado para el año sería hacer la suma de los ingresos desde enero hasta mayo, es decir, la 
agregación aditiva de: enero, febrero, marzo, abril y mayo; esto dependiendo de la casilla que 
estemos analizando puesto que es el acumulado desde el principio del año al mes actual.
¡Ojo! Desde el principio del año actual, en otras palabras, para la casilla en estudio dese enero 
del 2000.
Sigamos los tres pasos primordiales en DAX para la casilla correspondiente a mayo y entrever 
como sería la expresión DAX.
Elabora la siguiente 
matriz llevando los 
campos: Año, Mes 
Nombre y Fechas de la 
tabla de Calendario al 
área de filas y en el 
área de valores 
arrastrar la medida 
Ingresos Totales.
En la jerarquía de 
fechas dejar visible 
Año y Mes Nombre.
    488/742
    – 1. Identificar Filtros
▪ Calendario[Año] = 2000
▪ Calendario[Mes Nombre] = “Mayo”
– 2. Aplicar Filtros y Propagar
Los filtros son aplicados en la tabla de Calendario, por lo tanto, queda restringida para el año 
2000 y el mes de mayo única y exclusivamente. Por propagación de filtros entre las columnas 
fecha de la tabla de Calendario y fecha de envió de la tabla Pedidos, esta última también quedará 
restringida sólo para aquellas fechas que correspondan a 2000 y el mes de mayo.
– 3. Ejecutar Expresión DAX
CALCULATE ( [Ingresos Totales] ; ___________________________________ )
¿Entiendes el porqué del CALCULATE?
Existen varias formas de lograr este objetivo que se nos pueden venir a la mente de ipso facto, 
una variante con la condición de tabla de CALCULATE y otra con la condición de lista, vamos a 
desmenuzar la opción con una lista.
¡Advertencia! Aquí asumimos que has estudiado e interiorizado el Capítulo 17: La 
Crema y Nata de las Funciones, CALCULATE. Si no lo has estudiado es urgente que 
tomes una pausa y te aventures a dominarlo antes de continuar, si bien puedes 
entender este capítulo sin ello, lo mejor es con CALCULATE en la manga.
    489/742
    La idea es generar una lista con todas las fechas desde el 1/1/2000 hasta el 31/5/2000. El asunto 
sería ¿Cómo?, la verdad es que tenemos una función de inteligencia de tiempo que ejecuta esa 
tarea precisamente.
– Función DATESYTD
La función DATESYTD retorna una columna que contiene las fechas individuales (día a día) 
desde el principio del año hasta la última fecha en el contexto de filtro actual.
Estos son los dos argumentos de la función DATESYTD:
▪ Dates: Columna de fechas de la tabla de Calendario
▪ Year End Date: Si nuestro final de año no es el 31 de diciembre, en este argumento 
podemos indicar cuál es mediante una cadena de caracteres.
Gráficamente que queremos conseguir:
Nota El 99% de las funciones de inteligencia de tiempo cuenta con un factor 
común en sus argumentos: el argumento de Fechas, este será siempre la columna 
de fechas de la tabla de calendario ya que todas ellas aplican el contexto de filtro 
mediante este campo.
1/5/2017
.
.
.
31/5/2000
1/1/2000
.
.
.
31/1/2000
.
.
.
1/5/2000
.
.
.
31/5/2000
Lista de la columna 
fechas generada 
por la matriz, 
contexto de filtro 
original
Lista nueva 
generada por 
DATESYTD e 
ideal para 
utilizar en 
argumento 
de filtro de 
CALCULATE
    490/742
    Con lo anterior claro ya podemos crear la medida del acumulado desde el principio del año hasta 
la fecha actual.
Arrastremos la medida YTD Ingresos a la matriz de la figura 19.26 y obtendremos:
La casilla resaltada representa la suma de los valores: 13.508,96 + 17.592.04 + 18.328,51 + 
14.726,52 + 13.507,17.
YTD Ingresos =
CALCULATE ( [Ingresos Totales] ; 
 DATESYTD ( Calendario[Fechas] ) 
)
Nota Utilizamos las siglas en inglés YTD por Year To Date que lo podemos traducir 
aproximadamente como fechas desde el principio del año a la fecha.
    491/742
    Hay que enmarcar que la medida corresponde al acumulado desde el principio del año hasta la 
fecha actual y no el acumulado desde el principio del año hasta el mes actual, esto lo que quiere 
decir es que si llevamos la jerarquía de la matriz hasta nivel de días encontraremos que los 
valores son diferentes.
– El Segundo Argumento de DATESYTD
El segundo argumento de DATESYTD es opcional y es una cadena de caracteres que indica el 
final del año. El valor por defecto es 31 de diciembre.
YTD acumula 
desde la primera 
fecha del año y 
siempre desde la 
primera fecha 
del año hasta la 
fecha actual.
    492/742
    Por ejemplo, podemos crear una medida que realiza el acumulado de los ingresos para el año 
fiscal, esto es que el principio del año se empieza a contar desde 30 de junio, he aquí la expresión 
DAX. 
También podemos utilizar esta otra versión:
Dependiendo de la configuración regional podemos tener el formato MM/DD o DD/MMM. 
Anteriormente el DAX Engine quería que se especificará como la configuración local o arrojaría 
un error, sin embargo, la versión actual de Power BI acepta cualquiera de las dos maneras 
independiente de la configuración regional.
La implementación del segundo argumento de DATESYTD es habitual para el año fiscal, el cual 
coincide con la fecha final del mes, por lo tanto, no hay ningún inconveniente; a pesar de ello, 
si llegamos a necesitar una final de año en los 12 primeros días del mes nos encontraremos con 
casos ambiguos, nos explicamos, "04/07": Corresponde a 4 de julio o 7 de abril.
YTD Ingresos Fiscal = 
CALCULATE ( [Ingresos Totales] ; 
 DATESYTD ( Calendario[Fechas] ; "06/30" ) 
)
YTD Ingresos Fiscal = 
CALCULATE ( [Ingresos Totales] ; 
 DATESYTD ( Calendario[Fechas] ; "30/06" ) 
)
    493/742
    Una manera de evitar este desliz es utilizando el formato YYYY-MM-DD, la porción del formato 
YYYY será ignorada por la función DATESYTD y TOTALYTD que veremos más adelante, sin 
embargo, será completamente claro que lo siguiente al año será el mes y luego el día.
Recordemos, no es que el final del año vaya a ser siempre el 30 de junio del 2018 porque el año 
será ignorado, así el final del año será el 30 de junio del año dependiendo del contexto.
– Total Acumulado desde el Principio del Trimestre Hasta la Fecha (QTD)
La primera variante de acumulado se presenta si queremos desde el principio del trimestre hasta 
la fecha actual.
Para el QTD llevemos el campo Trimestre de la tabla de Calendario y mostremos los niveles de 
jerarquía: Años, Trimestre y Mes Nombre.
YTD Ingresos Fiscal = 
CALCULATE ( [Ingresos Totales] ; 
 DATESYTD ( Calendario[Fechas] ; "2018-06-30" ) 
)
¡Advertencia! En Power Pivot para Excel 2016, 2013 y 2010 se debe respetar el 
formato de la configuración local.
    494/742
    Como se observa en la matriz ya no es el agregado desde el primer mes del año, en su lugar es 
desde el primer mes del trimestre.
En suma, la función DATESQTD hace la tarea de la lista de fechas desde el principio del trimestre 
hasta la fecha actual para ser utilizada en CALCULATE.
La función QTD sólo tiene un argumento y nada más, no existen argumentos opcionales ni de 
ninguna otra clase.
QTD Ingresos = 
CALCULATE ( [Ingresos Totales] ; 
 DATESQTD ( Calendario[Fechas] ) 
)
    495/742
    – Total Acumulado desde el Principio del Mes Hasta la Fecha (MTD)
La segunda variante de acumulado se presenta si queremos desde el principio del mes hasta la 
fecha actual. Para el MTD es obligatorio desplegar toda la jerarquía si queremos observar los 
efectos de la medida MTD Ingresos ¿Por qué? porque como el acumulado es desde el principio 
del mes su efecto se ve a nivel de días.
MTD Ingresos = 
CALCULATE ( [Ingresos Totales] ; 
 DATESMTD ( Calendario[Fechas] ) 
)
    496/742
    Acumulados con: TOTALYTD, TOTALQTD y TOTALMTD
Para los acumulados contamos con tres atajos, así:
Acumulado YTD
▪ CALCULATE ( [Ingresos Totales] ; DATESYTD ( Calendario[Fechas] ) ) →
▪ TOTALYTD ( [Ingresos Totales] ; Calendario[Fechas] )
La función TOTALYTD tiene un tercer argumento opcional para señalar el final del año, ejemplo 
con el año fiscal
▪ CALCULATE ( [Ingresos Totales] ; DATESYTD ( Calendario[Fechas]; "06/30" ) ) →
▪ TOTALYTD ( [Ingresos Totales] ; Calendario[Fechas] )
    497/742
    Acumulado QTD
▪ CALCULATE ( [Ingresos Totales] ; DATESQTD ( Calendario[Fechas] ) ) →
▪ TOTALQTD ( [Ingresos Totales] ; Calendario[Fechas] )
Acumulado MTD
▪ CALCULATE ( [Ingresos Totales] ; DATESMTD ( Calendario[Fechas] ) ) →
▪ TOTALMTD ( [Ingresos Totales] ; Calendario[Fechas] )
Acumulado: Histórico a la Fecha (HTD)
Es posible que queramos el acumulado, pero desde la primera fecha de la tabla de datos, 
TOTALYTD no funciona porque toma la fecha desde el principio del año, nosotros queremos el 
acumulado histórico.
    498/742
    Te dejamos la expresión DAX:
El resultado lo podemos contrastar en la matriz:
HTD Ingresos =
CALCULATE (
 [Ingresos Totales];
 FILTER (
 ALL ( Calendario[Fechas] );
 Calendario[Fechas] <= MAX ( Calendario[Fechas] )
 )
)
    499/742
    Comparación de Períodos (PY, PQ y PM)
En análisis de datos hacer comparaciones entre periodos de tiempo es pan de cada día, por 
ejemplo, cuando nos demandan comparar los ingresos del año actual con los ingresos del año 
pasado, el provecho de este tipo de expresiones para seguimiento y comparaciones de 
tendencias las hace vitales en nuestro arsenal. Las funciones de inteligencia de tiempo no son 
ajenas a esto y por ello contamos con las funciones para lograrlo.
Mismos Ingresos del Año Pasado:
Si enfocamos el análisis en la “casilla” en blanco resaltada en la imagen previa, la operación sería 
traer los ingresos del año 2000.
    500/742
    Como no podía ser diferente, sigamos los tres pasos primordiales en DAX para la casilla 
correspondiente al año 2001:
– 1. Identificar Filtros
▪ Calendario[Año] = 2001
– 2. Aplicar Filtros y Propagar
Los filtros son aplicados en la tabla de calendario, por lo tanto, queda restringida para el año 
2001. Por propagación de filtros entre las columnas fecha de la tabla de Calendario y fecha de 
envió de la tabla Pedidos, esta última también quedará restringida sólo para aquellas fechas que 
correspondan al año 2001. 
– 3. Ejecutar Expresión DAX Filtros
CALCULATE ( [Ingresos Totales] ; ___________________________________ )
Gráficamente necesitamos el siguiente reemplazo de lista
La función que genera esta lista es: SAMEPERIODLASTYEAR
Sintaxis: SAMEPERIODLASTYER ( <Columna de Fechas> )
1/1/2001
.
.
.
31/12/2001
1/1/2000
.
.
.
.
31/12/2000
    501/742
    Con lo anterior, la expresión DAX es sencilla:
En la matriz se reflejará claramente el efecto.
Nosotros utilizamos las siglas PY por Previous Year (año anterior)
PY Ingresos =
CALCULATE ( [Ingresos Totales]; 
SAMEPERIODLASTYEAR ( Calendario[Fechas] )
)
    502/742
    Mismos Ingresos del Trimestre Pasado y Mismos Ingresos del Mes Pasado
Desafortunadamente en el lenguaje DAX no contamos con las funciones:
▪ SAMEPERIODLASTQUARTER
▪ SAMEPERIODLASTMONTH
La buena noticia es que contamos con una función que nos brindará la posibilidad de hacer los 
desfases no solo para trimestre y meses, sino también para días e incluso movernos adelante o 
atrás un número de intervalos deseados, esta función es DATEADD.
La función DATEADD retorna una tabla que contiene una columna de fechas desfasada adelante 
o atrás en el tiempo en un número específico de intervalos según el contexto de filtro actual.
= DATEADD ( <Fechas>;<Número de Intervalos>; <Intervalos> )
▪ Fechas: Una columna que contiene fechas, normalmente, la columna de fechas de la 
tabla de calendario.
▪ Número de Intervalos: Un numero entero que representa el desfase en el tiempo, los 
valores negativos significan retroceder en el tiempo y los positivos por su parte hacia 
adelante en el tiempo.
▪ Intervalo: Este argumento indica en que escala de tiempo se desea realizar el desfase: 
años, meses, trimestres o días.
Así emulamos la medida PY Ingresos con DATEADD:
PY Ingresos =
CALCULATE ( [Ingresos Totales]; DATEADD ( Calendario[Fechas] ; -1; YEAR )
    503/742
    Así creamos la medida de los mismos ingresos del trimestre pasado o PQ Ingresos:
Así creamos la medida de los mismos ingresos del mes pasado o PM Ingresos:
Presentamos las medidas en la siguiente matriz.
PQ Ingresos =
CALCULATE ( [Ingresos Totales]; 
 DATEADD ( Calendario[Fechas] ; -1; QUARTER 
 )
PM Ingresos =
CALCULATE ( [Ingresos Totales]; 
 DATEADD ( Calendario[Fechas] ; -1; MONTH 
 )
    504/742
    Pero la versatilidad de la función DATEADD también radica en el número entero, por ejemplo, si 
ponemos el número -2 devolvería los ingresos de dos años atrás, si por otro lado ponemos 4 
traería los ingresos de 4 años adelante.
Total del Año Pasado
Otra situación frecuente es retornar el total del año pasado, especialmente útil para comparar
con el acumulado hasta la fecha (YTD), esto para hacer un seguimiento si se ha cumplido el 
objetivo en contraste con el año anterior o no.
La función time Intelligence para hacer referencia al total de un periodo pasado o futuro si llega 
ser necesario es: PARALLELPERIOD.
= PARALLELPERIOD ( <Fechas>;<Número de Intervalos>; <Intervalos> )
▪ Fechas: Una columna que contiene fechas, normalmente, la columna de fechas de la 
tabla de Calendario.
▪ Número de Intervalos: Un numero entero que representa el desfase en el tiempo, los 
valores negativos significan retroceder en el tiempo y los positivos por su parte hacia 
adelante en el tiempo.
▪ Intervalo: Este argumento indica en que escala de tiempo se desea realizar el desfase: 
años, meses, trimestres o días.
La creación de la medida PY Total Ingresos se muestra a continuación:
Nota La diferencia entre DATEADD y PARALLELPERIOD se encuentra en el tercer 
argumento, el intervalo, pues mientras que DATEADD devuelve el periodo 
desfasado, PARALLELPERIOD retorna la lista desde el principio del año pasado 
hasta el final del año pasado.
    505/742
    En una matriz con el campo Año y mes Nombre se verá claramente el efecto
Véase que los valores se repiten a nivel de meses puesto que siempre se está haciendo 
referencia al total del año pasado.
Con PY Total Ingresos y YTD Ingresos ya podemos elaborar la métrica para detectar si al 
acumulado a la fecha del año ha alcanzado el total del año pasado.
PY Total Ingresos = 
CALCULATE( [Ingresos Totales]; 
 PARALLELPERIOD ( Calendario[Fechas]; -1 ; YEAR )
)
    506/742
    Obsérvese la matriz:
Mismo Acumulado del Año Pasado: PY YTD
¿Cómo crear una medida que realice el acumulado de los mismos en estudio en el contexto actual, pero 
para el año anterior?
Para crea la medida necesitamos un mix entre las funciones SAMEPERIODLASTYEAR y 
DATESYTD. 
YTD/PYTot Ingresos % = 
DIVIDE ( [Ingresos Totales] - [PY Ingresos] ; [PY Ingresos])
    507/742
    Visualicemos la medida en la matriz:
PY YTD Ingresos =
CALCULATE (
 [Ingresos Totales];
 SAMEPERIODLASTYEAR ( DATESYTD ( Calendario[Fechas] ) )
)
Nota Presentar la medida PY YTD Ingresos en gráficos de velocímetro y termómetro 
puede ser una buena combinación, véase capítulo 27.
    508/742
    Diferencias en Periodos
Una operación común consiste en calcular la diferencia entre los ingresos actuales y los ingresos 
del año anterior, en esta métrica se puede presentar como un valor absoluto o como un 
porcentaje.
Si tenemos las medidas Ingresos Totales y PY Ingresos su creación es bastante sencilla:
Una manera de mostrar la métrica de YOY Ingresos es como un porcentaje, para conseguirlo lo 
único que debemos hacer dividir la medida YOY Ingresos sobre PY Ingresos
Podemos apreciar el resultado en la siguiente matriz.
YOY Ingresos = [Ingresos Totales] - [PY Ingresos]
YOY Ingresos % = 
DIVIDE ( [Ingresos Totales] - [PY Ingresos] ; [PY Ingresos] )
    509/742
    Cálculo del Total Anual Móvil
Una petición que pasa a menudo es el total anual móvil, su característica para remover cambios 
estacionales y su fácil cálculo la convierten en una métrica obligatoria en manejo de fechas. El 
total anual móvil siempre considera los 12 meses anteriores.
Ejemplo: El total anual para el mes de mayo del 2008 sería la suma de los ingresos desde abril 
del 2007 hasta marzo 2008.
La expresión DAX sería:
Para comprenderla debemos desglosar la función DATESINPERIOD.
La función DATESINPERIOD retorna una columna de fechas que empieza en la fecha indicada 
en el segundo argumento y continua un número especifico de intervalos.
MAT Ingresos =
CALCULATE (
 [Ingresos Totales];
 DATESINPERIOD ( Calendario[Fechas]; 
 LASTDATE ( Calendario[Fechas] ); 
 -1; 
 YEAR 
)
 )
    510/742
    = DATESINPERIOD ( <Fechas>;<Fecha Inicial>; <Número de Intervalos> ; <Intervalos> )
▪ Fechas: Una columna que contiene fechas, normalmente, la columna de fechas de la 
tabla de calendario.
▪ Fecha Inicial: Una expresión para fecha
▪ Número de Intervalos: Un numero entero que representa el número de intervalos para 
añadir o substraer a la fecha inicial
▪ Intervalo: Este argumento indica en que escala de tiempo se desea realizar el desfase: 
años, meses, trimestres o días.
    511/742
    Inteligencia de Negocios con Excel y Power BI - Page 512
    512/742
     
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
En la presente sección haremos un 
recorrido por las diferentes categorías de 
gráficos en Power BI, objetos Visuales 
personalizados y configuración de Reporte, 
todo con el principal objetivo de transmitir 
de manera efectiva, la información 
encontrada a través del Lenguaje DAX.
EN ESTA PARTE
Capítulo 20
Introducción a Objetos Visuales de Power BI
Capítulo 21
Gráficos de Comparación
Capítulo 22
Gráficos de Tendencia
Capítulo 23
Gráficos de Seguimiento
Capítulo 24
Gráficos Geográficos
Capítulo 25
Gráficos de Segmentación
Capítulo 26
Matriz y Tabla
Capítulo 27
Gráficos Personalizados
Capítulo 28
Diseño Apropiado de Gráficos
Capítulo 29
Configuración de Reporte
    513/742
    514/742
    CAPÍTULO 20 
Después de completar este capítulo tú sabrás:
▪ Cómo crear un objeto visual en Power BI
▪ Evolución Matriz a Gráfico
▪ Tipos de Visualizaciones
Es muy probable que tu primera aproximación a la visualización de datos haya sido utilizando 
los diferentes tipos de gráficos en Excel, como lo habrás notado, a pesar de ser muy útiles tienen 
ciertas limitaciones: obtener un diseño óptimo no es una tarea fácil, para hacer que trabajen en 
sincronía dos o más visualizaciones debemos recurrir a otras funcionalidades, el catálogo de 
gráficos es limitado, construir un gráfico que no se encuentra por defecto puede convertirse en 
un trabajo titánico. Por esta razón, queremos invitarte a realizar un viaje a través del universo 
de las visualizaciones en Power BI, un universo en el que no hay restricciones y en el cual 
podemos representar los datos de casi cualquier manera. 
La visualización de datos en Power BI es la tercera etapa del proceso de Inteligencia de 
Negocios, recuerda que luego de extraer, transformar y cargar los datos, es necesario crear las 
medidas e indicadores que nos van a facilitar el entendimiento del escenario, aunque para 
realizar un análisis más profundo debemos recurrir a los gráficos ya que son una potente 
herramienta para obtener conclusiones rápidamente. Por esta razón, iniciemos puntualizando
qué es un gráfico.
    515/742
    ¿Qué es un Gráfico?
Podemos definir un gráfico, como un medio de comunicación que nos permite transmitir datos 
numéricos visualmente; su utilidad y potencia radica en la posibilidad que nos brindan para 
obtener conclusiones, identificar patrones y/o relaciones.
Panel de Visualizaciones
En el caso particular de Power BI contamos con un catálogo de visualizaciones bastante amplio, 
en total son veintisiete gráficos nativos que tenemos a nuestra disposición listos para ser 
utilizados, aunque es muy probable que este número continúe en aumento, todos ellos se 
encuentran agrupados en la interfaz de Power BI, exactamente en el Panel de Visualizaciones, 
aquí elegimos cualquiera de los gráficos para agregar al lienzo y donde podemos modificar su 
estructura, aspecto e incluso analizar con opciones adicionales únicas para algunos objetos 
visuales. 
1
2 3
4
    516/742
    El Panel de Visualizaciones de Power BI está compuesto por:
1. Visualizaciones: Aquí encontramos todos los gráficos por defecto que se 
encuentran en Power BI
2. Pestaña Campos: En esta área del panel de visualizaciones arrastramos y
configuramos los campos en las distintas áreas de colocación para darle vida al 
objeto visual elegido
3. Pestaña Formato: En la pestaña formato se encuentran todas las opciones para 
realizar cambios cosméticos a los elementos que componen el gráfico, es decir, todo 
lo relacionado al diseño del objeto visual
4. Secciones: Dependiendo de la pestaña elegida, cambia la sección mostrada en el 
panel de visualizaciones
Luego de conocer la estructura y partes del Panel de Visualizaciones de Power BI, es momento 
de iniciar con la construcción de un gráfico.
Creando Objetos Visuales en Power BI
Una de las grandes bondades de Power BI es la facilidad en el momento de crear cualquier tipo 
de visualización, para darle vida a un objeto visual debemos:
1. Elegir en el Panel de Visualizaciones el gráfico que deseamos agregar, dando clic 
sobre el icono correspondiente
2. Arrastrar columnas de las tablas y/o medidas a las diferentes áreas de colocación 
Nota Al seleccionar algunas visualizaciones, existe la posibilidad de que aparezca 
una tercera pestaña denominada Analytics con opciones adicionales y particulares 
para analizar datos.
    517/742
    Como puedes ver en la Figura 20.2 hemos elegido el tipo de visualización Matriz, después 
arrastramos los campos País al área de filas, Tipo de Compra al área de columnas e Ingresos al 
área de valores, cabe aclarar que todos estos campos pertenecen a la tabla Pedidos; en 
consecuencia, obtenemos la siguiente visualización:
Tipo de visualización 
Matriz
Áreas de Colocación
    518/742
    Como ya te lo mencionamos, para crear la matriz únicamente utilizamos campos de la tabla 
Pedidos, pero dado el caso, también es posible combinar campos y medidas e incluso utilizar 
sólo medidas para establecer una visualización. En la Figura 20.4 se encuentra definida la matriz 
previa, pero en lugar de arrastrar el campo Ingresos al área de valores, vamos a llevar la medida 
Ingresos Totales, obteniendo así los mismos resultados:
Cambiar el Tipo de Visualización
La flexibilidad de Power BI con respecto a los gráficos no se evidencia únicamente en la etapa 
de creación, por ejemplo, si quisieras cambiar la Matriz creada en la Figura 20.4 por otro tipo 
de visualización, solo debes emplear dos clics:
Medida
    519/742
    1. Seleccionar el objeto visual que queremos modificar, dando clic izquierdo sobre su 
área
2. En el panel de visualizaciones elegimos el nuevo tipo de gráfico, para este caso en 
particular, el Gráfico de Barras Apiladas
Evolución Matriz a Gráfico
Cuando iniciamos nuestro viaje por el mundo de las visualizaciones es muy común que al 
principio sea un poco complicado configurar cualquier tipo de gráfico debido a que las áreas de 
colocación cambian según el tipo de objeto visual, por eso es una buena práctica iniciar la 
creación de un gráfico a partir de una Matriz y después “evolucionarla” a la visualización 
deseada. Para ello vamos a construir una matriz y luego cambiamos el tipo de gráfico.
4
    520/742
    1. Crear Matriz: Elegir la visualización de tipo Matriz y arrastrar el campo País al área 
de filas y la medida Ingresos Totales al área de valores
2. Evolución a Otra Visualización: Seleccionamos la Matriz dando clic sobre su área y 
después cambiamos el tipo de visualización por un Gráfico de Columnas Apiladas
    521/742
    Ahora que sabes cómo crear y modificar una visualización, es momento de hablar de los tipos 
de gráficos en Power BI ...
Tipos de Objetos Visuales en Power BI
Aunque los objetos visuales de Power BI Desktop se encuentran todos juntos en el panel de 
visualizaciones, nosotros podemos clasificarlos en diferentes categorías de acuerdo con su 
función, todo con el único objetivo de establecer ciertos lineamientos para elegir el tipo de 
gráfico apropiado para cada situación. A continuación, te listamos las diferentes categorías, las 
cuales estaremos revisando en profundidad en los próximos capítulos: 
▪ Gráficos de Comparación 
▪ Gráficos de Tendencia
▪ Gráficos de Seguimiento
▪ Gráficos Geográficos
▪ Gráficos de Segmentación
Cada una de estas categorías tiene una misión en particular y en algunos casos un gráfico puede 
transmitir mejor la información que otro, por eso es importante clasificarlos y entender para 
que trabajo están diseñados.
Nota Si la visualización resultante no cumple con la estructura deseada, podemos 
mover los campos entre las diferentes áreas de colocación para obtener el gráfico 
esperado
    522/742
    CAPÍTULO 21 
Al finalizar el presente capítulo tú sabrás:
▪ Para qué sirven los Gráficos de Comparación
▪ Cuáles son los gráficos de Comparación 
▪ Particularidades de Cada Gráfico
Una de las tareas más comunes en el análisis y visualización de datos, es la comparación entre 
categorías, periodos de tiempo e incluso variables, ya que nos permite contrastar resultados 
para entender lo que está sucediendo en un escenario en particular, en el presente capítulo 
conoceremos todas las consideraciones para emplear los gráficos de comparación de una 
manera óptima.
Esta categoría de gráficos nos permite hacer comparaciones de valores numéricos que se 
encuentran agrupados por categorías, periodos de tiempo o dado el caso en diferentes 
variables, ya sean dependientes o independientes, aunque esto es solo la punta del iceberg 
porque también es posible: identificar relaciones existentes, reconocer patrones, hacer 
rankings, e incluso mostrar los valores como porcentaje del total.
    523/742
    Los gráficos de comparación los podemos dividir en tres subcategorías; Columnas y Barras, 
Distribución y Flujo de datos.
Columnas y Barras
▪ Gráfico de Barras Apiladas
▪ Gráfico de Columnas Apiladas
▪ Gráfico de Barras Agrupadas
▪ Gráfico de Columnas Agrupadas
▪ Gráfico de Columnas Apiladas y de Líneas 
▪ Gráfico de Columnas Agrupadas y de Líneas
Distribución
▪ Gráfico de Barras 100% Apiladas 
▪ Gráfico de Columnas 100% Apiladas
▪ Gráfico Circular
▪ Gráfico de Anillos
▪ Treemap 
Flujo de Datos
▪ Gráfico de la Barra de Herramientas
▪ Gráfico de Cascada
▪ Embudo
    524/742
    Gráfico de Barras Apiladas
Este tipo de gráfico representa los datos como una barra y su tamaño depende exclusivamente 
del valor o magnitud de cada punto. 
Aplicación
▪ Comparación de categorías y datos a través del tiempo 
▪ Mostrar Rankings 
▪ Identificar Relaciones
▪ Encontrar Patrones
Creación
1. Dar clic sobre el icono que corresponde al Gráfico de Barras Apiladas
2. Configurar los campos que deseamos analizar sobre las diferentes áreas de colocación
Gráfico de Barras 
Apiladas
    525/742
    Para este gráfico, vamos a llevar el Campo País de la Tabla Pedidos al Eje y la medida Ingresos 
Totales a Valor.
Áreas de Colocación
Visualización sin Campos Agregados
    526/742
    Como puedes ver en la Figura 21.3, para crear este gráfico en su forma más simple basta con 
llevar un Campo al eje y una medida a Valores, aunque esto no es una camisa de fuerza, también 
puedes emplear únicamente columnas de una Tabla.
Configuración Adicional
3. Podemos utilizar las otras áreas de colocación para añadir más información en el 
gráfico
En este caso, vamos a llevar la Medida Costos Totales a Saturación de Color.
Nota Algunas áreas de colocación son comunes a varios gráficos, por ejemplo, 
Saturación de Color e Información sobre herramienta. 
Nota Si arrastramos campos de una tabla directamente al Lienzo, sin haber elegido 
ninguna visualización se crea automáticamente un gráfico.
    527/742
    Al agregar la medida a Saturación de Color podemos ver que el gráfico ahora nos muestra dos 
variables asociadas al país, la primera es Ingresos Totales y está relacionada con el tamaño de la 
barra, es decir, que entre más grande sea obtuvimos mayores ingresos, La segunda medida 
Costos Totales se encuentra vinculada con el color de las barras, entre más oscuro, nos indica 
que obtuvimos mayores Costos y entre más claro, muestra que se tienen menores costos. 
Tooltip
Puedes verificar los datos acercando el cursor sobre alguna de las barras del gráfico, 
automáticamente aparecerá el Tooltip, básicamente es una “Cajita de Información” que nos 
muestra las variables relacionadas a dicho punto en el gráfico.
    528/742
    Para editar la paleta de color, vamos a la pestaña Formato, opción Colores de Datos, y allí 
cambiamos los colores a degradar en la visualización.
Información sobre Herramientas
El Tooltip es un elemento bien interesante porque permite explorar el detalle de cada variable 
que contiene un punto del gráfico, y de ser necesario, podemos agregar información adicional, 
de tal manera que no se vea en el gráfico, sino que únicamente aparezca en el Tooltip al acercar 
el cursor sobre un punto del gráfico. En ese orden de ideas, vamos a llevar el campo Costo del 
Producto de la tabla Pedidos a Información sobre herramienta.
    529/742
    A simple vista parece que no obtuvimos ningún resultado significativo, pero al acercar el cursor 
sobre un valor del gráfico la historia es diferente.
En la Figura 21.9 puedes ver que ahora si aparece la información relacionada a los Costos del 
Producto, pero solo se muestra en el Tooltip y no en el gráfico como tal, de igual modo, 
podemos agregar más campos o medidas para que se muestre únicamente en nuestra “Cajita 
de Información”.
    530/742
    Diseño y Personalización
4. En la Pestaña Formato puedes modificar todo lo relacionado con el aspecto del gráfico
Eje Y
Si vas a la pestaña formato y eliges la opción Eje Y, encontrarás una serie de características 
asociadas a este elemento del gráfico, por ejemplo, el tamaño de las barras o la fuente de las 
etiquetas del eje. 
Si aumentamos el Ancho de categoría mínimo de 20 a 50, las barras del gráfico crecerán.
    531/742
    Después, vamos a cambiar el Tamaño del texto por 25, obteniendo así una fuente más grande.
Eje x
Al desplegar las opciones del Eje X, podrás manipular la escala del gráfico; las unidades a 
mostrar, posiciones decimales, etc.
    532/742
    Veamos cómo cambia el gráfico si definimos la escala iniciando en 0 y finalizando en 500000. 
También, debes especificar las unidades a mostrar en cifras de miles.
Colores de Datos
Al dar clic sobre esta opción, se despliega un menú en el cual podemos establecer la paleta de 
colores del gráfico.
    533/742
    En este caso, el menú de Colores de Datos muestra las opciones para cambiar la Saturación de 
Color, pero si quitamos el campo Costos Totales de esta área de colocación, se modifican las 
opciones, permitiéndonos ajustar el color de todas las barras o de un punto en particular.
Para cambiar los colores de todas las barras, vamos a Color predeterminado y allí elegimos el 
que sea de nuestra preferencia.
Para cambiar el color de una barra en particular, activamos la opción Mostrar todo, en 
consecuencia, aparece la lista de todos los puntos del gráfico con el color asociado.
    534/742
    Pestaña Analytics
5. En algunas visualizaciones, al dar clic sobre la Pestaña Analytics encontrarás opciones 
adicionales para analizar o agregar elementos al gráfico 
Para el Gráfico de Barras Apiladas contamos con la Línea Constante.
Pestaña Analytics
    535/742
    Para añadirla vamos a dar clic en Agregar luego de desplegar la opción Línea Constante en la 
pestaña Analytics. Allí establecemos el Color de la Línea y el valor en el que será dibujada.
Gráfico de Columnas Apiladas
Muestra los valores como Columnas y la dimensión de cada una depende del valor de cada 
punto, y podríamos decir que es una variación del gráfico de barras, pero rotadas 90°.
Aplicación
▪ Comparación de categorías y datos a través del tiempo 
▪ Mostrar Rankings 
▪ Identificar Relaciones
▪ Encontrar Patrones
    536/742
    Creación
1. Elegir el icono del Gráfico de Columnas Apiladas en el panel de visualizaciones
2. Configurar los campos en las distintas áreas de colocación
En este caso, agregamos el campo País al Eje y la medida Ingresos Totales a Valor para obtener 
el siguiente gráfico:
Gráfico de 
Columnas Apiladas
k
    537/742
    Pestaña Analytics
3. El Gráfico de Columnas Apiladas al igual que el Gráfico de Barras Apiladas, nos brinda la 
posibilidad de agregar una línea constante, en ese orden de ideas, agregamos una línea 
constante en el valor de 390000.
Nota Otra manera de construir visualizaciones es clonar un gráfico y luego 
modificar su aspecto. Primero seleccionamos un objeto que ha sido creado 
previamente, luego presionamos la combinación de teclas Ctrl + c para copiar, 
después, quitamos la selección dando clic sobre el lienzo y finalmente pegamos el 
objeto dando Ctrl + v.
    538/742
    Gráfico de Barras Agrupadas
Bosqueja los datos como una barra, el tamaño de cada barra esta dado por la magnitud del 
punto y si agregamos un campo a Leyenda, agrupa los valores para facilitar el análisis. 
Aplicación
▪ Comparación de categorías y datos a través del tiempo
▪ Mostrar Rankings 
▪ Identificar Relaciones
▪ Encontrar Patrones
Creación
1. Seleccionar el icono correspondiente al Gráfico de Barras Agrupadas
2. Establecer los Campos en las áreas de colocación del gráfico
Por ejemplo, arrastra el campo País al Eje y la medida Ingresos Totales a Valor.
Gráfico de Barras 
Agrupadas
    539/742
    Configuración Adicional
3. Si llevamos un campo a Leyenda se agrupan las categorías, facilitando la comparación
En este momento, que te parece si hacemos una pausa para hacernos la siguiente pregunta:
¿Cuál es la diferencia entre el Gráfico de Barras Apiladas y el Grafico de Barras Agrupadas? Para 
resolver este interrogante llevemos el campo Categoría de Descuento a Leyenda.
x
    540/742
    Al llevar este campo a Leyenda del Gráfico de Barras Agrupadas, se discriminan los ingresos 
dependiendo de la categoría de Descuento, es decir que ahora vemos los ingresos por país y 
por el descuento aplicado en barras diferentes. Pero qué pasa si por un momento volvemos a 
nuestro Gráfico de Barras Apiladas y hacemos lo mismo, llevar Categoría de Descuento a Leyenda.
En el Gráfico de Barras Apiladas obtenemos un resultado diferente, las categorías NO se 
discriminan, por el contrario, se muestran como parte del total del País. 
Pestaña Analytics
1. El Gráfico de Barras Agrupadas tiene más “Superpoderes” que el de Barras Apiladas: 
▪ Línea Constante
▪ Línea Mínima
▪ Línea Máxima
▪ Línea Promedio
▪ Línea Mediana
▪ Línea de Percentil
    541/742
    Primero vamos a desplegar la opción de Línea Mínima y damos clic en Agregar para visualizarla 
en el gráfico, la línea queda exactamente en el valor más bajo de la gráfica.
Luego abrimos la opción Línea Máxima y la añadimos.
Como consecuencia, la línea aparece en el valor más alto de toda la gráfica.
    542/742
    Después añadimos la Línea Promedio, desplegando el menú y dando clic en Agregar.
Si habilitamos la opción Etiqueta de datos, el gráfico muestra el valor asociado a la Línea Promedio
    543/742
    Para finalizar, insertamos la Línea Mediana.
Gráfico de Columnas Agrupadas
Es una variación del Gráfico de Barras Agrupadas, lo único que cambia es la orientación del 
gráfico.
Aplicación
▪ Comparación de categorías y datos a través del tiempo 
▪ Mostrar Rankings 
▪ Identificar Relaciones
▪ Encontrar Patrones
Nota Al agregar una Línea de Percentil es posible variar el porcentaje.
    544/742
    Creación
1. Dar clic en el icono del Gráfico de Columnas Agrupadas
2. Configurar campos y/o medidas en las áreas de Colocación
La medida Ingresos Totales a Valor, País al Eje y Categoría de Descuento a Leyenda.
Gráfico de Columnas 
Agrupadas
    545/742
    Pestaña Analytics
3. En la pestaña Analytics, tiene las mismas opciones que el Gráfico de Barras Agrupadas
Gráfico de Columnas Apiladas y de Líneas
Permite comparar dos variables que pueden tener o no la misma escala y estar relacionada entre 
sí. Una variable la bosqueja como Columnas Apiladas y la otra es dibujada como una Línea que 
atraviesa el grafico.
Aplicación 
▪ Comparar variables de Escalas diferentes
▪ Identificar Relaciones
    546/742
    Creación
1. Escoger el Gráfico de Columnas Apiladas y de Líneas en el Panel de Visualizaciones
2. Configurar los Campos en las áreas de colocación
Inicialmente, vas a llevar el campo País a Eje Compartido, la medida Ingresos Totales a Valores de 
Columnas y la medida Costos Totales a Valores de Líneas.
Gráfico de Columnas 
Apiladas y de Líneas
    547/742
    En el gráfico se evidencia la diferencia en las escalas de ambos ejes, los ingresos están en cifras 
de millón, y el costo en cifras de miles, también, podemos ver que se obtuvieron ganancias, 
pues los ingresos (Columnas) sobrepasan los costos (Línea), sin embargo, ¿qué pasa si llevamos 
el campo Categoría de Descuento a Serie de Columnas?
Al agregar el campo a Serie de Columnas, se muestran dichas categorías apiladas como parte 
del total por país.
Gráfico de Columnas Agrupadas y de Líneas
Es una variación del Gráfico de Columnas Apiladas y de Líneas, pero en lugar de “amontonar”
¡Advertencia! Aunque ya te lo mencionamos, hay ciertos gráficos que no cuentan 
con opciones en la pestaña Analytics y el Gráfico de Columnas Apiladas y de Líneas 
es uno de ellos.
    548/742
    las categorías en una sola columna, las separa mostrándolas en columnas independientes pero 
agrupadas. 
Aplicación 
▪ Comparar variables de Escalas diferentes
▪ Identificar Relaciones
Creación
1. Seleccionar el icono correspondiente al gráfico
2. Configurar las áreas de colocación
Gráfico de Columnas 
Agrupadas y de Líneas
    549/742
    En la figura anterior puedes ver la estructura de la visualización en la cual llevamos el campo 
País al Eje Compartido, Categoría de Descuento a Serie de Columnas, la medida Ingresos Totales a 
Valores de Columnas y la medida Costos Totales a Valores de Líneas; como consecuencia, puedes 
comparar las variables Ingresos y Costos, porque cada una está relacionada con un eje y a 
diferencia del Gráfico de Columnas Apiladas y de Líneas, discrimina cada Categoría agrupándola 
por país. 
Gráfico de Barras 100% Apiladas y Gráfico de Columnas 100% Apiladas
Ambos gráficos muestran los valores como porcentaje del total general, es decir que revelan 
cuanto aporto cada categoría al total, pero dado como un porcentaje. La diferencia entre ambos 
únicamente es la orientación de los puntos en el gráfico.
Aplicación
▪ Comparación de Categorías
▪ Porcentaje del Total General
Creación 
1. Dar clic izquierdo sobre el icono que corresponde al Gráfico de Barras 100% Apiladas o 
Gráfico de Columnas 100% Apiladas
¡Advertencia! El Gráfico de Columnas Agrupadas y de Líneas no tiene ninguna opción 
en la pestaña Analytics.
    550/742
    2. Configurar los campos en las áreas de colocación de la visualización
Primero, vamos a crear el Gráfico de Barras 100% Apiladas, en ese orden de ideas, movemos los 
campos País al Eje, Categoría de Descuento a Leyenda y la medida Ingresos Totales a Valor
Gráfico de Barras 
100% Apiladas
Gráfico de Columnas 
100% Apiladas
    551/742
    En la figura se evidencia que el ancho de todas las barras es igual porque el gráfico convierte los 
valores a porcentajes, es decir, cada país representa el 100% y las secciones que se dibujan, 
muestran el porcentaje que cada Categoría de Descuento está aportando al total por país. Si 
acercamos el cursor sobre alguna sección nos muestra la información asociada a dicho 
porcentaje
    552/742
    Pestaña Analytics
1. Para los gráficos 100% apilados solo contamos con una “Habilidad Especial” y consiste 
en agregar una Línea Constante
En la pestaña Analytics abrimos la única opción que aparece, damos clic en agregar y luego 
establecemos el valor en el que será trazada la línea constante, por ejemplo, 0,8. 
¡Advertencia! Al agregar la Línea Constante debes tener en cuenta que estamos 
trabajando con porcentajes, por ello, es recomendable agregar la línea empleando 
valores entre 0 y 1, porque al escribir un número entero se altera la visualización.
    553/742
    Gráfico de Columnas 100% Apiladas
Para crearlo, vas a clonar el Gráfico de Barras 100% Apiladas y luego cambias el tipo de 
visualización por el Gráfico de Columnas 100% Apiladas.
Gráfico Circular
Esta visualización tiene como objetivo mostrar las partes de un total de manera circular y es
muy útil cuando se quiere enseñar aproximadamente los aportes de varios ítems hacia un total, 
es decir, que lo podemos utilizar en una situación que no requiera mucho detalle. 
Aplicación
▪ Comparación Aproximada de Categorías
▪ Porcentaje del Total General
    554/742
    Creación 
1. Elegir el Gráfico Circular en el Panel de Visualizaciones
2. Configurar los Campos en las áreas de colocación correspondientes al Gráfico Circular
Para crear este objeto visual, arrastra el campo Categoría de Descuento a Leyenda y la medida 
Ingresos Totales a Valores.
Gráfico Circular
    555/742
    Configuración Adicional
3. El área de colocación Detalles, permite subdividir cada sección del gráfico
En ese orden de ideas, llevamos el campo Tipo de Compra a Detalles. 
Nota Es recomendable utilizar este gráfico para comparar pocos elementos, en 
caso contrario puede que su lectura se dificulte.
    556/742
    Por esta razón, se subdivide con esa pequeña línea blanca cada una de las áreas del gráfico en 
secciones más pequeñas, dadas por el Tipo de Compra. 
Diseño y Personalización
4. Para facilitar la lectura por parte del usuario final, en la pestaña Formato, podemos 
habilitar la opción Leyenda
Gráfico de Anillos
Este tipo de visualización es una variación del gráfico circular, la única diferencia es que tiene 
un orifico en el centro de la circunferencia como una “Dona”.
¡Advertencia! El Gráfico Circular no tiene ninguna opción en la pestaña Analytics.
    557/742
    Aplicación
▪ Comparación Aproximada de Categorías
▪ Porcentaje del Total General
Creación 
1. Dar clic en el icono del Gráfico de Anillo
2. Configurar los Campos y medidas en las distintas áreas de colocación 
Los campos Categoría de Descuento a Leyenda, Tipo de Compra a Detalle y la medida Ingresos 
Totales a Valores.
Gráfico de Anillos
    558/742
    Treemap
El Treemap muestra en áreas cuadradas cuanto aportó cada valor al total general, es decir que 
nos enseña las proporciones de un ítem, agregando una jerarquía según el tamaño de los datos.
Aplicación
▪ Comparación Aproximada de Categorías
▪ Porcentaje del Total General
▪ Jerarquías
Creación
1. Seleccionar el Treemap en el panel de visualizaciones
2. Agregar Campos y/o medidas en las distintas áreas de colocación
¡Advertencia! El Gráfico de Anillos no tiene opciones en la pestaña Analytics.
Treemap
    559/742
    Para este ejemplo repetimos la configuración del Gráfico Circular que creamos previamente, es 
decir, el campo Categoría de Descuento a Grupo y la medida Ingresos Totales a Valores.
Si agregamos un campo a Detalle, subdivide las áreas cuadradas, al igual que los gráficos de 
anillo y circular.
¡Advertencia! El Treemap no tiene opciones en la pestaña Analytics.
    560/742
    Gráfico de la Barra de Herramientas
El Gráfico de la Barra de herramientas es realmente poderoso porque permite hacer 
comparación entre categorías y lo más interesante, analizar flujos de datos, todo de una sola 
vista.
Aplicación
▪ Comparación de Categorías y datos a través del tiempo
▪ Análisis de Flujos de Datos
▪ Parte del Total 
Creación
1. Seleccionar el Gráfico de la Barra de Herramientas en el Panel de Visualizaciones
Gráfico de la Barra de 
Herramientas
    561/742
    2. Definir medidas y campos en las Áreas de Colocación de la visualización 
Inicialmente, movemos el campo Año de la Tabla de Calendario al Eje y la Medida Ingresos Totales
a Valor, con lo cual obtenemos el siguiente resultado:
Con una medida y un campo, la visualización tiene un aspecto similar al Gráfico de Columnas, 
aunque, al arrastrar el campo Categoría de Descuento al área de colocación Leyenda, cambia 
drásticamente el diseño.
    562/742
    Al agregar dicho campo a Leyenda, obtenemos el Gráfico de la Barra de Herramientas listo para 
analizar los datos a través del tiempo, como puedes ver, se muestra el total por año, ingresos 
por categoría y el cambio a través del tiempo.
Partes del Gráfico
Para entender la composición del gráfico, imagina que hicimos “Zoom” sobre una sección.
▪ Total: Muestra el acumulado para ese punto en el gráfico
Flujo de Datos Partes del Total
Total
    563/742
    ▪ Partes del Total: Divide e indica las categorías que componen ese punto y cuanto 
aportan al total
▪ Flujo de Datos: Al acercar el cursor muestra el cambio que tuvo una categoría en el 
gráfico
    564/742
    Diseño y Personalización
3. En la pestaña Formato, se encuentra la opción Barras de Herramientas, aquí puedes 
modificar las características del gráfico
Si aumentemos el tamaño del Espaciado cambiándolo, por ejemplo, de 0 a 10, se abre una 
brecha entre cada una de las categorías.
Nota Para hacer el “Zoom” en el gráfico, debes filtrar ciertos puntos en el Panel de 
Filtros, no te preocupes si no sabes cómo, este tema será tratado en el Capítulo 
29.
    565/742
    Si desactivamos la opción Coincidir con el Color de la Serie, el color del flujo de datos cambia, 
estableciendo el mismo para todas las categorías.
La opción Transparencia está relacionada con la claridad que tiene los colores del flujo de datos, 
independiente si coincide o no con el color de la serie, en consecuencia, si aumentamos el valor 
pues los colores se verán más transparentes.
    566/742
    Gráfico de Cascada
La visualización identifica cuanto aportó cada punto de la serie al total general, además, 
diferencia los valores negativos y positivos asignando con un código de color, e ilustra la 
transición de una variable, es decir el flujo de datos.
Aplicación
▪ Comparación de Categorías y datos a través del tiempo
▪ Análisis de Flujos de Datos
▪ Parte del Total 
Creación
1. Dar clic sobre el icono del Gráfico de Cascada en el Panel de Visualizaciones
¡Advertencia! El Gráfico de la Barra de Herramientas no tiene opciones en la 
pestaña Analytics.
Gráfico de Cascada
    567/742
    2. Adicionar campos y medidas al área de colocación
Para este escenario, arrastramos el campo Año de la Tabla de Calendario a Categoría e Ingresos 
Totales al Eje Y.
 
En la figura anterior, puedes ver que el gráfico ordena de mayor a menor los aportes que hizo 
cada año con respecto al total, resaltándolos en verde porque tienen una cifra positiva, si 
existiera un valor negativo estaría en rojo, haciendo referencia a datos que son negativos y por 
ende representan una disminución para el Total.
Diseño y Personalización
3. En la pestaña Formato existe una opción denominada Tendencia de las Opiniones, que nos 
permite cambiar el color de los puntos en el gráfico 
Nota Si arrastras un campo al área de colocación Desglose, se muestra los aportes 
para los puntos ya existentes.
    568/742
    Pestaña Analytics
4. En el Gráfico de Cascada es posible insertar una Línea Constante
En la pestaña Analytics abrimos las opciones de Línea Constante, el valor para crearla será de 
500,000 y además habilitamos la Etiqueta para que el número aparezca en la visualización.
    569/742
    Embudo
Esta visualización permite observar el flujo decreciente de los valores graficados, las barras se 
encuentran centradas y el tamaño de cada una depende del dato asociado.
Aplicación
▪ Comparación
▪ Análisis de Flujos de Datos
Creación
1. Elegir el icono correspondiente al Embudo
2. Configurar áreas de Colocación
Para ver la evolución de los ingresos a través de los años, movemos el campo Año de la tabla de 
Calendario a Grupo, e Ingresos Totales a Valores. 
Embudo
    570/742
    El Embudo contrasta todos los valores con respecto al más grande, que es tomado como el 
100%, por eso al momento de acercar el cursor sobre una barra del gráfico, el Tooltip enseña 
en porcentaje a cuanto corresponde ese punto con respecto al primer valor (más grande) y al 
inmediatamente anterior.
    571/742
    Diseño y Personalización
3. En la pestaña Formato se encuentra la opción Colores de Datos, allí podemos modificar el 
color de todas las barras o incluso resaltar un valor
    572/742
    CAPÍTULO 22 
Cuando termines el presente capítulo tú aprenderás:
▪ Para qué sirven los Gráficos de Tendencia
▪ Cuáles son los Gráficos de Tendencia
▪ Características particulares de cada visualización 
Las visualizaciones de Power BI Desktop están diseñadas para ayudarnos a entender la realidad, 
y una de las consideraciones que siempre debemos tener en cuenta para ser más precisos, es el 
tiempo. Por eso contamos con una categoría de gráficos que nos permite ver desde diferentes 
perspectivas que pasa con un valor a través del tiempo, identificar valores atípicos e incluso 
reconocer si existe o no relación entre dos o más variables, en ese orden de ideas, te damos la 
bienvenida a los Gráficos de Tendencia. 
Las visualizaciones que componen esta categoría tienen la misión de ayudarnos a: Analizar 
Series de Tiempo, identificar tendencias, encontrar fluctuaciones (Valores Atípicos) y establecer 
si existe o no correlación en los datos.
    573/742
    ▪ Gráfico de Línea
▪ Gráfico de Área
▪ Gráfico de Áreas Apiladas
▪ Gráfico de Dispersión
Gráfico de Líneas
Esta visualización representa los valores como una línea que cruza por los puntos de la serie y 
permite identificar la tendencia de los datos. 
Aplicación
▪ Cambios a través del tiempo 
▪ Tendencia
▪ Fluctuaciones
▪ Previsión
Creación
1. Insertar la visualización, dando clic sobre el icono del Gráfico de Líneas que se 
encuentra en el Panel de Visualizaciones de Power BI Desktop
    574/742
    2. Establecer Campos y Medidas en las áreas de colocación del Gráfico
Para este caso, arrastra el Campo Año de la Tabla de Calendario al Eje y la medida Ingresos 
Totales al área de Valores.
En la visualización se ve claramente que los ingresos tienen una tendencia creciente al 
transcurrir los distintos años. 
Gráfico de Líneas
    575/742
    Configuración Adicional 
3. Si quieres mostrar diferentes categorías en el gráfico, puedes llevar un campo al área 
de colocación Leyenda
Para empezar, lleva la columna Tipo de Compra a Leyenda.
Como resultado, obtenemos en la visualización dos líneas, una representa los ingresos para el 
tipo de compra Normal y la otra para Devolución. Aunque debes tener cierta precaución al utilizar 
la Leyenda porque si el campo cuenta con muchos ítems, la visualización perderá claridad y será 
muy difícil comparar los datos.
    576/742
    Pestaña Analytics
4. Para el Gráfico de Líneas contamos con una gran variedad de “Superpoderes” para facilitar 
el análisis de los datos: Línea de Tendencia, Línea Constante, Línea Mínima, Línea Máxima, 
Línea Promedio, Línea Mediana, Línea de Percentil y Previsión
Línea de Tendencia
Para ver la dirección que toman los datos, puedes crear la Línea de Tendencia dando clic en la 
opción correspondiente en la pestaña Analytics y después en Agregar.
    577/742
    Previsión
Para pronosticar que ocurrirá con un proceso o situación en el futuro, puedes hacer una 
predicción en el Gráfico de Líneas, por ello, en la pestaña Analytics abrimos la opción Previsión y 
damos clic en Agregar.
Automáticamente aparece un área sombreada correspondiente a la previsión que recién 
creamos, al acercar el cursor sobre el área, aparece en el Tooltip la predicción, así como el límite 
inferior y superior que se ha establecido para ese punto.
    578/742
    Para hacer más precisa la previsión, podemos modificarla, por esta razón, vamos a cambiar el 
número de periodos a predecir por uno y el intervalo de confianza lo aumentamos al 99%, para 
finalizar damos clic en Aplicar.
Si es necesario puedes excluir un punto de la visualización, quitándolo en el Panel de Filtros,
tema que será tratado en el capítulo 29.
    579/742
    Al excluir el punto referente al año 1999 del gráfico, se ha reajustado el pronóstico, pues dicho 
valor era mucho menor a los demás y esto hacía que la previsión fuera menos precisa.
Gráfico de Áreas
El Gráfico de Áreas, esboza una línea que une los puntos de la serie y resalta el área que está 
por debajo de los datos.
Aplicación
▪ Cambios a través del tiempo 
¡Advertencia! Solo podemos hacer Previsiones si agregamos campos 
numéricos al Eje del Gráfico.
    580/742
    ▪ Tendencia
▪ Fluctuaciones
Creación
1. Dar clic en el icono del Gráfico de Áreas para insertarlo en el Lienzo
2. Definir campos y medidas en las áreas de colocación
Por ejemplo, lleva el campo Año al Eje del gráfico y la medida Ingresos Totales a Valores.
Gráfico de Áreas
    581/742
    Configuración Adicional
3. Para ver distintas categorías en la visualización, debemos utilizar el área de colocación 
Leyenda
Puedes agregar el campo Tipo de Compra a Leyenda para observar dicho cambio en la 
visualización.
 
Pestaña Analytics 
4. En la Pestaña Analytics de este gráfico contamos con opciones ya conocidas para 
optimizar el análisis: Línea de Tendencia, Línea Constante, Línea Mínima,Línea Máxima,Línea 
Promedio, Línea Mediana y Línea de Percentil
Para ver su aplicación, vamos a añadir la Línea de Tendencia, Línea Promedio, Línea Mínima y Línea 
Máxima …
    582/742
    Gráfico de Áreas Apiladas
Esta visualización es una variación del Gráfico de Áreas, aunque su diseño cambia drásticamente 
si llevamos un campo al Área de Colocación Leyenda, en ese caso, apila o “amontona” las 
categorías una sobre otra.
Aplicación
▪ Cambios a través del tiempo 
▪ Tendencia
▪ Fluctuaciones
Creación
1. Seleccionar el icono del Gráfico de Áreas Apiladas para insertarlo en la página
    583/742
    2. Definir la configuración de la visualización moviendo campos y medidas en las áreas de 
colocación
Nuevamente, el campo Año al Eje del gráfico, Tipo de Compra a Leyenda y la medida Ingresos 
Totales a Valores.
En la figura anterior puedes ver que el área de una línea empieza en el límite donde termina la 
otra, es decir, que están apiladas, a diferencia del Gráfico de Áreas, donde un área se ve
Gráfico de Áreas 
Apiladas
    584/742
    Detrás de la otra, lo que nos indica que inician en el mismo valor. 
Pestaña Analytics
3. Dado el caso, puedes agregar una Línea Constante en la visualización 
Gráfico de Dispersión 
El Gráfico de Dispersión dibuja los datos como puntos o burbujas dependiendo del número de 
variables agregadas, y permite identificar si existe correlación entre los datos. 
Aplicación
▪ Encontrar Patrones
▪ Identificar Correlación en los datos
▪ Fluctuaciones
▪ Tendencias
    585/742
    Creación
1. Dar clic en el icono del gráfico
2. Establecer la estructura del gráfico, agregando campos en las áreas de colocación
Primero, movemos el campo SKU a Detalles, la medida Ingresos Totales al Eje X pues será la 
variable independiente y Costos Totales al Eje Y.
Gráfico de 
Dispersión
    586/742
    Cada punto en el gráfico representa un producto, por esta razón, podemos asociar cada uno 
con los Costos e Ingresos que obtuvo. Si agregamos un Campo a Leyenda, los puntos serán 
agrupados de acuerdo con las categorías que tiene la columna.
Para analizar una tercera variable en el Gráfico de Dispersión, podemos llevar un campo o 
medida al área de colocación Tamaño. Hagamos el experimento situando allí la Columna 
Unidades.
    587/742
    Ahora el diámetro de cada circunferencia está asociado a las Unidades vendidas.
Configuración Adicional 
3. Podemos Animar el Gráfico de Dispersión utilizando el Área de Colocación Eje de 
Reproducción
Por consiguiente, vas a situar el campo Año de la Tabla de Calendario en el Eje de Reproducción y 
automáticamente aparece una barra de estado, con ella, podemos manejar la animación del 
Gráfico.
    588/742
    Para iniciar la animación llevamos el indicador al Inicio y luego damos clic en el botón de 
Reproducir.
En consecuencia, el gráfico empezará a reproducir el cambio de los datos a través del tiempo, 
año a año.
Indicador
Botón de Reproducción
    589/742
    La reproducción del gráfico finaliza cuando se acaban los datos, para volver a animar debes
mover el indicador al valor desde donde quieres que empiece a reproducir.
    590/742
    Si damos clic sobre un punto del gráfico, se muestra la trayectoria que siguió para llegar al 
estado actual.
Pestaña Analytics
4. Para esta visualización, contamos con una gran variedad de “Superpoderes”: Línea 
Constante del eje x, Línea constante del eje y, Línea Mínima, Línea Máxima, Línea Promedio, 
Línea Mediana, Línea de Percentil, Sombreado de Simetría y Línea de Relación
    591/742
    Sombreado de Simetría
Dependiendo de las variables agregadas en los Ejes, nos ayuda a identificar cuál tiene más peso 
sobre cada punto. En consecuencia, vamos a la pestaña Analytics, desplegamos la opción 
Sombreado de Simetría y clic en Agregar.
Como puedes ver, se han resaltado dos áreas en el gráfico, cada una está asociada a una variable 
y depende del porcentaje que tiene cada una sobre el área total del gráfico. Por ejemplo, un 
punto que se encuentra en el área azul, indica que los ingresos fueron mayores a los costos ,
en cambio, un punto que se encuentre en el área amarilla, nos señala que los costos fueron 
mayores que los ingresos.
Línea de Relación 
Nos ayuda a entender la relación que tienen las variables en el gráfico y está dada por la línea 
que mejor se ajuste a los datos, dibujada a partir de la nube de puntos. En ese caso vamos a dar 
clic en Agregar para esbozarla en la visualización.
    592/742
    Quiere decir que entre más cercanos se encuentren los puntos a la línea, las variables estarán 
más relacionadas.
    593/742
    .
    594/742
    CAPÍTULO 23 
Al finalizar el presente capítulo tú aprenderás:
▪ Para qué sirven los Gráficos de Seguimiento
▪ Cuáles son los Gráficos de Seguimiento
▪ Características particulares de cada visualización 
¡No todo es análisis!, una de las falencias más marcadas en Microsoft Excel es la falta de 
visualizaciones diseñadas específicamente para monitorear los datos, por eso, debemos recurrir 
a infinidad de trucos que nos permiten tomar un gráfico preestablecido y transformarlo en uno 
de seguimiento, aunque no todo es malo, en Power BI Desktop ya contamos con un “equipo de 
visualizaciones” creadas exclusivamente para vigilar variables importantes de negocio y en el 
presente capítulo hablaremos de ellas. 
Los gráficos de seguimiento fueron creados para vigilar o monitorear una variable importante 
para el negocio y dado el caso alertarnos si el estado en el que se encuentra es bueno o malo. 
Estas visualizaciones son ideales para representar indicadores o métricas, porque en algunos 
casos, podemos configurar niveles de referencia para comparar el resultado.
    595/742
    ▪ Medidor
▪ Tarjeta
▪ Tarjeta de Varias Filas
▪ KPI
Medidor
Esta visualización es similar al velocímetro de un auto, es media circunferencia que se va 
llenando a medida que crece la variable, y además podemos establecer un límite a sobrepasar, 
dado como una Línea.
Aplicación 
▪ Seguimiento de Datos
▪ Monitorear y comparar Objetivos
Creación
1. Insertar el Medidor, dando clic sobre el icono en el panel de visualizaciones
    596/742
    2. Configurar Campos o Medidas en las Áreas de Colocación del Medidor
Para empezar, lleva la medida Ingresos Totales a Valor.
Luego, vamos a crear dos medidas, la primera la llamaremos Valor Mínimo y será una constante 
con un valor de 100,000, y la segunda la nombramos Valor Máximo con un valor de 5,000,000.
Medidor
    597/742
    Luego, arrastramos la medida con el número más pequeño al área de colocación Valor Mínimo, 
y la medida con el número mayor, a Valor Máximo.
    598/742
    En la figura anterior puedes notar que ahora han cambiado los niveles donde inicia y finaliza el 
gráfico. Después, vamos a definir el objetivo que queremos alcanzar para representarlo en el 
medidor, por esta razón, creamos una medida constante con un valor de 4,000,000 y la 
llevamos al área de colocación Valor Destino.
Configuración Adicional
3. Otra manera de conformar el gráfico es llevar únicamente la medida Ingresos Totales al 
área de colocación Valor y después configurar manualmente los valores mínimo, máximo 
y destino, en las opciones del Eje Medidor de la Pestaña Formato
    599/742
    Diseño y Personalización
4. En la pestaña Formato, podemos modificar el diseño de los elementos que componen el 
Medidor
En la opción Colores de Datos, cambiamos el color del relleno, así como el Destino que tiene la 
visualización.
    600/742
    Para cambiar las cifras del valor que aparece en el centro del medidor referente al estado actual, 
debes ir a la opción Valor del Globo y reajustamos la configuración preestablecida.
Tarjeta
Es una “Cajita de Información” que muestra un único valor, independiente de si agregamos un 
Campo o Medida, es ideal para mostrar datos importantes o vigilar un indicador.
Aplicación 
▪ Seguimiento de Datos
¡Advertencia! Ninguno de los Gráficos de Seguimiento tiene opciones en la 
pestaña Analytics.
    601/742
    Creación
1. Dar clic en el icono de Tarjeta en el Panel de Visualizaciones
2. Agregar un solo campo o una sola medida al Área de Colocación Campos
Diseño y Personalización
3. En la pestaña Formato puedes modificar la apariencia de la Tarjeta
En Etiqueta de Datos vamos a cambiar las cifras que muestra la visualización, y el color del dato.
Tarjeta
    602/742
    Tarjeta de Varias Filas
Es una “Caja de Información” que nos permite mostrar diferentes valores discriminados en filas 
a diferencia de la Tarjeta, si es posible visualizar varios campos o medidas.
Aplicación 
▪ Seguimiento de Datos
▪ Comparación
¡Advertencia! La Tarjeta solo deja llevar un Campo o una Medida al área de 
colocación.
    603/742
    Creación
1. Seleccionar la Tarjeta de Varias Filas
2. Mover Columnas y/o Medidas al Área de Colocación Campos
Por ejemplo, lleva la columna País y la medida Ingresos Totales a Campos.
Tarjeta de 
Varias Filas
    604/742
    En la figura anterior, puedes ver que la Tarjeta con Varias Filas muestra los valores 
correspondientes al campo y medida que han sido añadidas, agrupados por filas. Si llevamos 
otra columna, la agrupación continua … 
KPI
Es una “Caja de Información” evolucionada, porque nos brinda la posibilidad de hacer 
seguimiento a una métrica o indicador con respecto a un objetivo que deseamos alcanzar y 
también podemos mostrar cambios a través del tiempo.
Nota Gráfico personalizado recomendado Card With States by OKViz.
    605/742
    Aplicación 
▪ Seguimiento de Datos
▪ Comparación
Creación
1. Seleccionar la visualización KPI
2. Mover Columnas y/o Medidas al Área de Colocación Campos
Para este escenario, vamos a crear una visualización de tipo KPI que nos indique si los ingresos 
del año actual superaron a los del año anterior. Por esta razón vamos a utilizar las medidas 
Ingresos Totales y PY Ingresos que hace referencia a los ingresos, pero del año anterior, si quieres 
recordar cómo se creó puedes ir al Capítulo 19 del libro.
Con esto en mente, llevamos la medida Ingresos Totales a Indicador, el campo Mes Número de la 
Tabla de Calendario a Eje de Tendencia y PY Ingresos a Objetivos de Destino.
KPI
    606/742
    Aunque el KPI muestra datos y aparentemente se ve bien, debemos tener cuidado porque los 
valores son erróneos, ya que las medidas están agregando los datos para todos los años, es 
decir, están haciendo la suma desde el año 1999 hasta 2015 y nosotros queremos compararlos 
uno a uno. Para resolver el problema, debemos insertar una segmentación de datos, lo que 
limitara el cálculo de las medidas en el KPI para el año seleccionado, en ese orden de ideas 
creamos un “Slicer” con el campo Año de la Tabla de Calendario, en el Capítulo 25 hablaremos 
de esta visualización que nos permite filtrar datos.
    607/742
    Si elegimos un año en la Segmentación de Datos, ahora si el KPI nos revelará los valores correctos, 
porque como ya te lo mencionamos, se restringe el cálculo de las medidas para el año 
correspondiente.
La visualización KPI señala que no se ha cumplido el objetivo de superar los ingresos del 2014, 
es decir, que los ingresos del año 2015 están por debajo un 26.39% con respecto al año 
anterior, por eso el gráfico se vuelve rojo. El área que aparece detrás nos marca los ingresos en 
cada mes para el 2015.
Indicador
Objetivo de 
Destino
Eje de 
Tendencia
    608/742
    Al cambiar el año en el Slicer, se revela nueva información en el KPI.
En la imagen anterior, se evidencia que en el año 2014 superamos los ingresos del año 2013 en 
un 36.66% y por eso el KPI toma un color verde.
Diseño y Personalización
3. En la Opción Codificación de Color de la pestaña Formato, puedes cambiar el código de 
color del gráfico
    609/742
    Inteligencia de Negocios con Excel y Power BI - Page 610
    610/742
    CAPÍTULO 24 
Cunado finalices con el capítulo tú aprenderás:
▪ Para qué sirven los Gráficos Geográficos
▪ Cuáles son los Gráficos Geográficos
▪ Características particulares de cada visualización
Para mejorar la estrategia de nuestra compañía es importante ver los datos desde diferentes 
perspectivas, porque existen visualizaciones que nos revelan información que de otra manera 
seria más difícil de identificar, en Power BI Desktop contamos con una categoría de gráficos 
que nos permite mostrar y comparar información sobre diferentes tipos de mapas, todo para 
entender que está pasando con una variable asociada a una ciudad, país o un lugar en 
específico.
Esta categoría de objetos visuales tiene como misión principal localizar datos sobre un mapa
para comparar valores según donde se encuentren, brindándonos así una perspectiva más 
“realista” sobre lo que está pasando con una métrica. Lo interesante de esta categoría es que 
contamos con diferentes tipos de mapas que podemos utilizar según el escenario y la 
información que deseamos revelar.
    611/742
    ▪ Mapa
▪ Mapa Coroplético 
▪ Mapas ArcGIS para Power BI
Mapa
Esta visualización permite esbozar circunferencias sobre un mapa según su ubicación y el 
tamaño que toma cada una depende del valor correspondiente. 
Aplicación
▪ Geolocalización
▪ Comparación entre Categorías
Creación 
1. Insertar la visualización Mapa en el Lienzo
Mapa
    612/742
    2. Agregar Campos y medidas en las áreas de colocación del Mapa
Por ejemplo, mueve el campo País de la tabla Pedidos a Ubicación y la medida Ingresos Totales a 
Tamaño.
Para optimizar el gráfico, debemos estar seguros de que el campo agregado a Ubicación, se le 
ha asignado la Categoría de Datos: País o Región. Si aún no lo has hecho, simplemente 
seleccionas la columna País en el Panel de Campos, vas a la pestaña Modelado y en el grupo 
Propiedades defines la Categoría de Datos. 
Si has asignado correctamente la Categoría de Datos, aparecerá un icono con forma de planeta 
cerca al nombre de la columna, en el Panel de Campos.
    613/742
    En la Figura 24.2, puedes ver que cada dato esta representado como una “Burbuja” y el diámetro 
está asociado a los ingresos. Para Argentina, tenemos la esfera más grande pues allí fue donde 
hicimos más ventas con respecto a los demás países. Si llevas un campo a Leyenda, las 
circunferencias se dividen de acuerdo con los ítems que tiene la columna, para nuestro ejemplo, 
arrastramos el campo Tipo de Compra de la tabla Pedidos.
Como ya te lo mencionamos, las circunferencias se están dividiendo según el tipo de compra.
Diseño y Personalización 
3. En la pestaña Formato puedes cambiar el tamaño de todas las circunferencias, así como 
el estilo del mapa
    614/742
    Para aumentar proporcionalmente el diámetro de todas las burbujas, vas a la pestaña Formato,
opción Burbujas y en Tamaño aumentas el porcentaje.
Puedes personalizar el mapa cambiando su apariencia, en la opción Estilos de Mapa se encuentra 
una lista de temas que puedes utilizar, por defecto está configurado el denominado Carretera, 
cámbialo por el tema Aéreo para obtener un mapa más “realista” .
    615/742
    Mapa Coroplético
Es un tipo de mapa que permite colorear regiones de acuerdo con la intensidad de una variable 
en esa ubicación, es decir, que entre más oscura una región, allí fue más grande la variable.
Aplicación
▪ Geolocalización
▪ Comparación entre Categorías
Creación 
1. Añadir el Mapa Coroplético dando clic en el icono del panel de visualizaciones
¡Advertencia! Ninguno de los Mapas de Power BI cuenta con opciones en la 
pestaña Analytics.
¡Advertencia! Debes estar conectado a Internet para que los Mapas funcionen 
correctamente, de otra manera, no se visualizan los datos.
Mapa 
Coroplético
    616/742
    2. Añadir Columnas y Medidas en las áreas de colocación de la visualización
Nuevamente, mueve la columna País a Ubicación y la medida Ingresos Totales a Saturación de 
Color. 
El país con mayores ingresos tiene un color más oscuro (Argentina), mientras que los países 
con menores ingresos tienen una saturación de color más clara. Y es fácil identificar en cuales 
no tenemos participación de mercado porque aparecen sin ningún relleno.
Diseño y Personalización
3. En la pestaña Formato podemos cambiar la Escala de color, así como el estilo del mapa
Con la visualización seleccionada, nos dirigimos a la pestaña Formato y damos clic en Colores de 
Datos y allí establecemos la nueva paleta de colores.
    617/742
    Después, te vas a dirigir a la opción Estilos de Mapa y eliges el tema Aéreo.
En el mapa se ve claramente que en Chile y Uruguay obtuvimos los ingresos más bajos, y en 
Bolivia y centro américa no hemos vendido ningún producto.
    618/742
    Mapas ArcGIS para Power BI
Los Mapas ArcGIS son una categoría especial de mapas que pueden llevar a otro nivel nuestro 
análisis, porque además de geolocalizar los datos y visualizarlos para compararlos, es posible 
agregar capas de referencia, modificar el tema por un catálogo más extenso, ver tiempos de 
recorrido e incluso tomar datos públicos para verlos junto con nuestro modelo. 
Aplicación
▪ Geolocalización
▪ Comparación entre Categorías
Creación 
Si el icono de los Mapas ArcGIS no aparece en el panel de visualizaciones, es necesario 
habilitarlo, por esta razón, vamos a la pestaña Archivo, Opciones y Configuración y damos clic en 
Opciones.
    619/742
    En el cuadro de diálogo, vamos a la pestaña Seguridad, habilitamos la opción Usar ArcGIS Maps 
For Power BI y damos clic en Aceptar, como consecuencia, aparece el icono en el Panel de 
Visualizaciones.
1. Dar clic en el icono correspondiente a los mapas ArcGIS
ArcGIS Maps 
For Power BI
    620/742
    2. Agregar campos País y medidas Ingresos Totales en las áreas de colocación del Mapa
Una primera impresión nos hace pensar que son similares a la visualización Mapa, aunque a 
medida que avancemos vas a darte cuenta de que esto no es del todo cierto. En la parte superior 
derecha se encuentra el botón Más Opciones, al abrirlo se listan una serie de acciones que 
podemos hacer sobre el objeto visual, seleccionamos Editar.
    621/742
    Automáticamente, la visualización se coloca en Modo Expandido y aparecen en la parte 
superior, una lista de opciones que nos permiten llevar a otro nivel nuestro mapa.
Mapa Base
Aquí modificamos el aspecto general del mapa, por ejemplo, si queremos una vista con calles y 
direcciones o simplemente cambiar el color. Para nuestro escenario, establecemos como mapa 
base el denominado Calles.
Opciones de Mapa
    622/742
    Tipo de Ubicación
En Tipo de Ubicación definimos como queremos representar los datos en el mapa, ya sea como 
Fronteras que es la configuración por defecto o Puntos.
Fronteras
Dependiendo del Tipo de Ubicación elegida, cambian los temas que podemos utilizar en el mapa, 
para las Fronteras contamos con dos, Solo Ubicación que nos indica en que lugares se encuentran 
nuestros datos sin importar la magnitud de la variable:
    623/742
    Y Color que resalta a través de la intensidad, cuales tuvieron menores y mayores valores:
Estilo de Símbolo
En esta pestaña configuramos todo lo relacionado con el aspecto del Tipo de Ubicación elegida, 
para Fronteras, es posible modificar el color del gráfico, la transparencia y en general hacer 
cambios cosméticos.
    624/742
    Análisis 
En esta pestaña encontramos una lista de posibilidades para ir más allá en nuestros mapas 
▪ Chinchetas: Sí lo sabemos, ese nombre no es tan claro, pero su función si, al dar clic 
sobre esta característica podemos agregar direcciones y marcarlas con un símbolo en 
el mapa.
Para hacer una prueba, vamos a dar clic en Chinchetas y agregamos las siguientes direcciones 
en el cuadro de búsqueda: Calle 100 2, El Bagazal, Chapinero, Bogotá, D.C., COL y Calle 45A 20 
67, Palermo, Teusaquillo, Bogotá, D.C., COL
Para ver las ubicaciones con mayor precisión, utilizamos Zoom en el gráfico haciendo scroll o 
dando clic en el botón de acercar en el mapa.
    625/742
    ▪ Tiempo de Recorrido: en esta opción de análisis debemos elegir dos ubicaciones o 
más, para crear un radio o establecer un tiempo de recorrido
Si quieres establecer una ruta de acuerdo con las dos ubicaciones y un tiempo definido, vamos 
a dar clic en Tiempo Recorrido, elegimos las ubicaciones y luego definimos si queremos ver el 
tiempo de recorrido o el radio, finalmente clic en Aceptar.
    626/742
    En ambos casos, tú debes especificar el radio o el tiempo de recorrido que quieres resaltar en el 
mapa.
    627/742
    ▪ Capa de Referencia: Aquí podemos tomar datos públicos y contrastarlos con nuestro 
conjunto de datos
En ese caso, vamos a agregar el promedio de Ingreso per Capita en el 2016 para Estados 
Unidos. Clic en Capa de referencia, buscamos la capa denominada 2016 USA Per Capita 
Income y Agregar.
    628/742
    Al seleccionar un estado de la capa, aparece la información asociada.
▪ Infografía: esta opción nos permite agregar cajas de información sobre el mapa.
    629/742
    Puntos
Al cambiar el Tipo de Ubicación por puntos se modifica la representación en el mapa.
Así como los temas que podemos establecer para la visualización.
▪ Solo Ubicación: Únicamente muestra dónde están los datos
    630/742
    ▪ Mapa de Calor: Revela donde hubo mayor actividad dada la ubicación de los datos
▪ Color: Asocia la intensidad con el valor que toma la variable
    631/742
    ▪ Clustering: Cuenta y agrupa los puntos en el mapa según su ubicación
Puedes combinar las opciones que hemos repasado aquí para obtener el mapa deseado, no 
olvides estar conectado a internet porque de otra forma no funcionaran las visualizaciones.
    632/742
    CAPÍTULO 25 
Al finalizar el capítulo tú aprenderás:
▪ Para qué sirven los Gráficos de Segmentación
▪ Cuáles son los Gráficos de Segmentación
▪ Características particulares de la Segmentación de Datos
Una de las características más sobresalientes en Power BI es su dinamismo para cambiar la 
perspectiva de un reporte, para hacer esta tarea contamos con una visualización diseñada 
específicamente para ayudar a cambiar todo lo que está a su alrededor, te hablamos de la 
segmentación de datos. 
Los Gráficos de Segmentación tienen como misión principal restringir los valores que se 
encuentran en todas las visualizaciones de una página, es decir, que todos los datos que se 
muestren van a estar asociados a un ítem seleccionado.
▪ Segmentación de Datos
    633/742
    Este objeto filtra todas las visualizaciones que se encuentren en una sola página del reporte, 
quiere decir, que por sí solo no tiene mayor utilidad y su potencial radica en controlar lo que 
estamos viendo en otros gráficos.
Aplicación 
▪ Aplicar Filtros 
Creación
1. Elegir el icono de Segmentación de Datos en el Panel de Visualizaciones para agregarlo 
en el lienzo
2. Agregar un Campo en al área de colocación del gráfico
Para este ejemplo, vas a llevar la columna País a Campo. 
Segmentación 
de Datos
    634/742
    Automáticamente, aparece una lista con casillas que podemos seleccionar, aunque por sí solo 
no es de mucha ayuda. Para ver cómo trabaja vamos a agregar dos Gráficos de Barras Agrupadas,
para el primero la configuración es el campo País al Eje y la medida Ingresos Totales a Valor, en el 
segundo, la columna Categoría de Descuento al Eje y la medida Ingresos Totales a Valor, por ende, 
obtenemos el siguiente conjunto de visualizaciones en la página del reporte.
¡Advertencia! La Segmentación de Datos trabaja con una sola columna y no 
admite Medidas.
    635/742
    Al seleccionar en la Segmentación Argentina, los gráficos cambian, mostrándonos únicamente 
los valores para ese país.
Después, observemos los ingresos para otro país, seleccionando Brasil.
En ambos casos, se restringen los cálculos, mostrando los valores únicamente para los países 
elegidos. Si mantienes presionada la tecla Ctrl puedes escoger dos ítems o más en la 
segmentación.
    636/742
    Luego de establecer los países a filtrar como Argentina y Brasil en la Segmentación de Datos, 
puedes ver en las visualizaciones los datos para ambos países. 
Configuración Adicional
3. Es posible romper la regla que nos dice que una Segmentación de Datos solo trabaja a 
nivel de página y no permite filtrar objetos visuales alojados en otras páginas del reporte, 
utilizando Segmentaciones de Sincronización.
Imagina el siguiente escenario en el que tenemos tres páginas en el archivo de Power BI y cada 
una cuenta con visualizaciones diferentes:
¡Advertencia! La Segmentación de Datos filtra todas las visualizaciones que se 
encuentran en una página y no en todo el reporte.
    637/742
    Inteligencia de Negocios con Excel y Power BI - Page 638
    638/742
    Según lo que sabes hasta ahora, si quisieras filtrar cada una de las paginas por país, tendrías 
que crear en tres ocasiones diferentes, la segmentación de datos, una para cada página, aunque 
gracias a la opción Segmentaciones de Sincronización podemos configurar las páginas que se van 
a afectar al seleccionar elementos en un “Slicer” y dado el caso que aparezca en las páginas sin 
necesidad de crearlo. 
Para configurar esta característica, seleccionamos la Segmentación de Datos, después vamos a 
la pestaña Vista, grupo Mostrar y habilitamos la opción Segmentaciones de Sincronización.
Automáticamente, aparece el panel Sincronización de Segmentaciones, aquí establecemos las 
páginas sobre las cuales el Slicer va a tener control.
    639/742
    ▪ Sincronizar: Si habilitamos esta opción, la Segmentación filtrara las visualizaciones de 
esa página, sin mostrar el objeto visual allí mismo
▪ Visible: Clona el Slicer en la Página para la cual fue habilitada, sin necesidad de crearlo 
de manera convencional. 
Con esto en mente habilitamos Visible y Sincronizar para todas las páginas, con lo cual, se 
clonará el Slicer en las tres páginas y trabajaran en sincronía dichos objetos visuales.
Visible
Sincronizar
    640/742
    Diseño y Personalización
4. Al acercar el cursor sobre una Segmentación de Datos, aparece un botón en forma de 
flecha, casi invisible, que nos permite cambiar el diseño
    641/742
    Si hemos creado la segmentación con un campo de tipo texto, solo contamos con dos opciones: 
Lista, que es el estilo por defecto, y Menú Desplegable.
Cuando añadimos una segmentación de datos con un campo de tipo numérico, contamos con 
más opciones: Lista, Menú Desplegable, Entre, Menor o Igual que y Mayor o Igual que.
Tipo de 
Segmentación
    642/742
    Orientación
Si definimos el Tipo de Segmentación de Datos como Lista, podemos modificar la Orientación y 
por ende el diseño. Con el Slicer seleccionado vamos a la pestaña Formato, desplegamos el 
grupo General y cambiamos la orientación Vertical por Horizontal.
Al establecer la orientación Horizontal, cambia el diseño de la Segmentación de Datos mostrando 
ahora los elementos en “Baldosas” que podemos elegir.
    643/742
    ¡Advertencia! La Segmentación de Datos no cuenta con opciones en la Pestaña 
Analytics.
Nota En la pestaña Formato, grupo Controles de Selección, puedes habilitar la 
selección múltiple o mostrar en la segmentación, una opción para Seleccionar 
todos los elementos.
    644/742
    CAPÍTULO 26 
Cuando termines la lectura de este capítulo tú aprenderás:
▪ Para qué sirven las visualizaciones Matriz y Tabla
▪ Características particulares de cada visualización
Hasta este punto hicimos un recorrido importante por los diferentes tipos de objetos visuales 
que existen en Power BI, aunque aún no hemos hablado de dos objetos extremadamente 
versátiles. La Matriz y la Tabla son bastante flexibles porque independientemente de la 
complejidad del cálculo o medida que hagamos utilizando el lenguaje DAX, los resultados se 
pueden presentar allí sin ningún problema y su utilidad en casi cualquier escenario las hacen 
imprescindibles en nuestro arsenal de visualizaciones. 
Para que lo veas de un modo familiar, una Matriz de Power BI es el equivalente a una Tabla 
Dinámica de Excel, nos permite resumir, analizar, agrupar, explorar y presentar datos desde 
diferentes perspectivas. 
Creación
1. Agregar una matriz dando clic sobre su icono en el panel de visualizaciones
    645/742
    2. Situar campos y medidas en las áreas de colocación de la Matriz
De la tabla Pedidos, llevamos el campo País a Filas y la medida Ingresos Totales a Valores.
Como consecuencia, la Matriz muestra los ingresos correspondientes para cada país. Ahora, 
arrastra el campo Tipo de Compra a Columnas.
Matriz
    646/742
    Como resultado, la matriz ahora muestra los ingresos para cada País discriminando el tipo de 
compra, si intercambiamos las columnas por filas, el resultado sigue estando bien, lo único que 
se modifica es la estructura del reporte.
Si volvemos a la configuración inicial y agregamos otra medida, por ejemplo, Costos Totales, los 
datos se calculan sin ningún problema.
    647/742
    ¿Pero qué pasa si ahora movemos el campo que está en el área de colocación Columnas a Filas?
En la parte superior izquierda aparecen unos botones que nos permiten ver por niveles los 
datos, es decir que podemos pasar al siguiente nivel o incluso mostrar toda la jerarquía.
    648/742
    Configuración Adicional
3. Si necesitas analizar los datos mostrados en la Matriz, contamos con una característica 
bien interesante, te hablamos de Formato Condicional 
Para agregarlo contamos con dos caminos, el primero consiste en ir a la pestaña Campos del 
Panel de Visualizaciones, y en la medida para la cual queremos ver el Formato Condicional, damos 
clic sobre la flecha de opciones que aparece cerca al nombre, en consecuencia, aparece una 
lista, allí elegimos Formato Condicional y establecemos la regla: Escalas de Color de Fondo.
Nota Es posible hacer Drill Down en la mayoría de las visualizaciones, aunque 
debes tener cuidado con los niveles a mostrar.
    649/742
    Automáticamente aparece el cuadro de diálogo de Formato Condicional, en el cual podemos 
personalizar la regla. 
Opciones
    650/742
    Si habilitas la casilla Color Según las Reglas, podrás configurar y agregar la cantidad de niveles 
que desees para el formato condicional.
    651/742
    Si activamos la casilla Divergente, aparece un nivel intermedio que podemos definir.
Para finalizar, clic en Aceptar, como consecuencia, se muestra el formato condicional sobre la 
matriz.
    652/742
    Al pasar al siguiente nivel de la jerarquía, el formato condicional cambia, pero se mantiene para 
los datos presentes en ese momento en la matriz.
Para activar el formato condicional por otro camino, puedes ir a la pestaña Formato y en los 
diversos grupos que existen, se encuentra una opción con este nombre, vamos a desplegarla, 
allí definimos la medida y el tipo de formato condicional a agregar. Para este ejemplo, elegimos 
la medida Costos Totales y activamos Escalas de Color de Fuente.
Medidas 
en la 
Matriz
Reglas de 
Formato 
Condicional
Nota Al dar clic en Controles Avanzados aparece el cuadro de diálogo de Formato 
Condicional para personalizar la regla.
    653/742
    Como consecuencia, tenemos dos reglas de formato condicional en la Matriz una para ingresos 
y otra para costos.
Si no es muy clara la Escala de Color de Fuente para los Costos Totales, puedes desactivarla y 
cambiarla por la regla Barra de Datos.
    654/742
    Para optimizar la regla, damos clic en Controles Avanzados para abrir el Cuadro de Diálogo y allí 
establecemos el valor mínimo como el número 38,000 y finalmente damos clic en Aceptar.
    655/742
    Diseño y Personalización
4. En la Pestaña Formato, grupo Estilo de Matriz puedes cambiar el aspecto de la 
visualización.
Esta visualización a diferencia de la Matriz configura los datos en un formato tabular y solo 
podemos agregar campos en un área de colocación.
Creación
1. Dar clic sobre el icono de Tabla
Tabla
    656/742
    2. Adicionar Columnas y Medidas en el área de colocación valores
Primero, movemos el campo País y la medida Ingresos Totales a Valores
A simple vista parece la visualización Matriz, aunque si agregamos el campo Tipo de Compra, las 
diferencias empiezan a marcarse.
    657/742
    En la figura anterior, se ve claramente que el conjunto de datos tiene un Formato Tabular.
Configuración Adicional
3. Para esta visualización, también podemos aplicar formato condicional
¡Advertencia! Ninguna de las visualizaciones del presente capítulo tiene 
opciones en la pestaña Analytics.
    658/742
    CAPÍTULO 27 
Cuando termines la lectura de este capítulo tú aprenderás:
▪ Como agregar un Gráfico Personalizado
▪ Configuración de Gráficos Personalizados
▪ Gráficos Personalizados recomendados
A pesar de contar con un catálogo de gráficos bastante extenso y que aplican para casi cualquier 
escenario es muy probable que te surja la siguiente pregunta ¿Qué hacer si la visualización que 
necesito no se encuentra en el Panel de Visualizaciones? En Microsoft Excel tendrías que crearlo a 
partir de los gráficos que ya existen, pero esto no es una tarea fácil, en cambio, en Power BI la 
respuesta tiene nombre propio: Gráficos Personalizados, una característica que permite agregar
más objetos visuales a nuestro arsenal.
Es una opción que tiene el panel de visualizaciones y consiste en importar de la web, Objetos 
Visuales prediseñados para utilizar en nuestros reportes. Lo más interesante es que esta opción 
está en constante actualización por lo que la lista de posibilidades crece.
    659/742
    ¿Como Agregar un Gráfico Personalizado?
Descargar Desde la Web 
Primero debemos a ir a nuestro navegador y buscar la página de Visualizaciones Personalizadas 
para Power BI en el Office Store
Luego, vas a encontrar una visualización que se ajuste a tus necesidades, por ejemplo, en la 
primera página está el objeto visual denominado Bullet Chart by OKViz.
    660/742
    Para agregarlo a Power Bi Desktop, damos clic en Obtenerla Ahora, automáticamente aparece 
una ventana en la cual debes escribir una dirección de correo electrónico corporativa o 
educativa, posteriormente, clic en Iniciar Sesión. 
Después de Iniciar Sesión, el navegador te redirecciona a la ventana de descarga de la 
visualización, por esta razón damos clic Open in Power BI para iniciar la descarga del objeto 
visual.
    661/742
    Con la visualización descargada en nuestro computador, es momento de agregarla a Power BI. 
Por esta razón, vamos a volver a la interfaz de Power BI Desktop y en el Panel de Visualizaciones
encontraras la opción Importar un Objeto Visual Personalizado.
Al dar clic sobre Importar un Objeto Visual Personalizado, aparecerán distintos caminos para 
agregar la nueva visualización, como nosotros la descargamos previamente, elegimos Importar 
desde Archivo.
En la ventana emergente, definimos la ruta donde se ha descargado el archivo correspondiente, 
lo seleccionamos y clic en Abrir.
Importar un Objeto 
Visual Personalizado
    662/742
    El resultado de este proceso se evidencia en el Panel de Visualizaciones, porque como puedes 
ver, ahora hay un nuevo icono correspondiente al objeto visual Bullet Chart by OKViz
    663/742
    Importar desde el Market Place
Para descargar una nueva visualización directamente desde Power BI, vamos a dar clic en 
Importar un Objeto Visual Personalizado y en este caso seleccionamos Importar de Marketplace.
Como consecuencia aparece la ventana del Marketplace.
    664/742
    Una vez aquí, vas a buscar una visualización denominada Thermometer by MAQ Software y clic 
en Agregar. 
Como consecuencia, aparece un nuevo icono en el Panel de Visualizaciones de Power BI 
correspondiente a dicho objeto visual. 
¡Advertencia! Si no has iniciado sesión, Power BI te la solicitara para abrir la 
ventana Marketplace.
Nota También puedes abrir el Marketplace en la Pestaña Inicio, grupo Objetos 
Visuales Personalizados.
    665/742
    El Bullet Chart es una visualización utilizada para contrastar un valor con respecto a una o varias 
metas que deseamos alcanzar, su composición es una combinación de un gráfico de barras, un 
gráfico de línea y un gráfico de termómetro, fue creado por Stephen Few con el principal 
objetivo de mostrar la mayor cantidad de información en un espacio pequeño.
Aplicación
▪ Seguimiento de Datos
▪ Comparación
Creación
1. Importar la Visualización desde el Marketplace a Power BI Desktop
2. Dar clic sobre el icono correspondiente en el panel de visualizaciones
    666/742
    3. Agregar Campos y Medidas en las áreas de colocación
Luego de importar el nuevo Objeto Visual, vas a darte cuenta de que tienen el mismo principio 
que las visualizaciones nativas, debes arrastrar campos y medidas en las áreas de colocación del 
gráfico, en la pestaña Campos.
Bullet Chart by OKViz
Áreas de 
Colocación
    667/742
    En este ejemplo, vamos a crear una visualización de tipo Bullet Chart para que nos indique si los 
ingresos del año 2015 superaron una meta establecida por nosotros y que, además, nos permita 
comparar el valor con los ingresos del año anterior, como consecuencia, creamos una medida 
con una constante denominada Objetivo con un valor de 350,000. 
Luego, arrastramos las medidas Ingresos Totales a Value, PY Ingresos a Comparision Value y 
Objetivo a Targets.
Para que el Bullet Chart muestre valores correctos, vamos a agregar una Segmentación de Datos
con el campo Año de la tabla de Calendario y seleccionamos 2015, de otra manera, las medidas
    668/742
    Ingresos Totales y PY Ingresos calcularán los ingresos para todos los años y el Bullet no mostrará 
la información solicitada. 
Diseño y Personalización 
4. Al igual que las visualizaciones por defecto, es posible modificar el aspecto del Bullet 
Chart en la pestaña Formato.
    669/742
    Como su nombre lo indica, esta visualización tiene forma de termómetro y nos permite 
comparar una métrica o indicador con respecto a una meta que queremos alcanzar, y a medida 
que el valor aumenta, el termómetro se ira llenando.
Aplicación
▪ Seguimiento de Datos
▪ Comparación
Creación
1. Importar la visualización desde el Marketplace
2. Dar clic sobre el icono correspondiente, para agregar la visualización al lienzo
3. Agregar campos a las distintas áreas de colocación
Thermometer by MAQ 
Software
    670/742
    Para ver cómo trabaja el Termómetro, vamos a recrear el escenario anterior, una visualización 
que nos indique si hemos alcanzado una meta para el año 2015. Como consecuencia, 
arrastramos el campo Ingresos Totales a Temperature y la medida Objetivo a Target Value.
Para que el objeto visual muestre los valores correspondientes a 2015, no olvides agregar una 
segmentación de datos y elegir dicho año.
    671/742
    Configuración Adicional
4. En la Pestaña Formato, grupo Configurations, puedes establecer el valor mínimo y máximo 
que se mostrará en el Termómetro
Esta visualización al igual que las anteriores, nos permite comparar un valor o indicador con 
respecto a una meta, lo más interesante es que podemos agregar niveles, y el objeto visual tiene 
la apariencia de un medidor de automóvil. 
Aplicación
▪ Seguimiento de Datos
▪ Comparación
    672/742
    Creación
1. Importar el objeto visual desde el Marketplace
2. Dar clic sobre el icono de la visualización
Tachometer
    673/742
    3. Configurar medidas y campos en las áreas de colocación
Para ver cómo funciona el Tacómetro, emularemos el escenario anterior, es decir que vamos a 
crear una visualización que nos permita verificar el objetivo de ingresos para el año 2015.Por 
esta razón, movemos la medida Ingresos Totales a Value y la medida Objetivo a Target Value.
 
Después, vamos a configurar los niveles del tacómetro creando dos medidas, la primera 
multiplicara la medida Objetivo por 0,5, quiere decir que este nivel señalará el 50% de la meta, 
la segunda, será una multiplicación del Objetivo por 0,9, que como ya lo habrás deducido 
señalara el 90% de la meta.
    674/742
    Posteriormente, llevamos las medidas 50%Objetivo a Range2 Start Value y 90%Objetivo a Range3 
Start Value.
Para que la visualización muestre datos correctos, agregamos una Segmentación de Datos y 
filtramos el año 2015. Recuerda que hasta este punto la medida calcula los valores para todos 
los años.
    675/742
    Diseño y Personalización
4. En la pestaña Formato, puedes ajustar el color de los niveles
    676/742
    Inteligencia de Negocios con Excel y Power BI - Page 677
    677/742
    A continuación, te vamos a dar una lista de Gráficos Recomendados, la idea es que los explores 
por tu cuenta debido a que son bastante útiles en algunos escenarios.
▪ Synoptic Panel by OKViz
▪ Sparkline by OKViz
▪ Smartfilter by OKviz
▪ Candlestick Chart
▪ Box and Whiskers
▪ Chiclet Slicer 
▪ Bullet Chart (Microsoft)
▪ Gantt
▪ Power KPI
    678/742
    CAPÍTULO 28 
Cuando termines la lectura de este capítulo tú aprenderás:
▪ Consejos de Diseño para Visualización de Datos
El siguiente capítulo es una recopilación de consejos, tips y buenas prácticas para la 
visualización de datos y está basado en el trabajo de Stephen Few, experto y pionero en esta 
materia. Si quieres profundizar en esta temática te recomendamos el libro Information Dashboad 
Design del mismo autor. 
Para lograr una visualización que transmita la información de manera efectiva no existe una 
regla general, lo más importante como dice Stephen Few es “Mantenerlo Simple”, aunque 
podemos seguir ciertos parámetros para lograr este objetivo:
▪ Claridad 
▪ Consistencia
▪ Legibilidad
▪ Balance
▪ Transmitir el Mensaje Apropiado
▪ Simplificar el Color
    679/742
    Claridad 
1. No sobrecargar el gráfico con Formatos innecesarios en las diferentes partes de la 
visualización
2. Las partes del gráfico no deben llamar la atención del usuario, recuerda que lo principal 
son los datos
3. EL título y las etiquetas de datos son importantes para darle un contexto a la 
visualización
4. No utilizar formato en 3D
5. Ordenar los valores del gráfico, ayuda a transmitir información adicional
    680/742
    Consistencia
1. Mantener el tamaño uniforme en los diferentes elementos que componen el gráfico
2. Utilizar colores, para agrupar categorías y asociar ítems a través de las distintas 
visualizaciones.
    681/742
    Legibilidad
1. No utilizar Fondos de Relleno
2. El tipo de letra, color, tamaño y orientación deben facilitar la lectura por parte del 
usuario final
    682/742
    Balance 
1. La representación visual de los puntos debe ser fácil de leer
2. No sobrecargar el gráfico con elementos innecesarios
    683/742
    Transmitir el Mensaje Apropiado
1. Elegir el tipo de gráfico que mejor represente los datos y que transmita el mensaje 
apropiadamente.
2. En la mayoría de los casos, es recomendable qué el eje inicie desde 0, de esta forma 
evitamos que se mal interpreten los datos
    684/742
    Simplificar el Color
1. Es recomendable utilizar una escala de grises para el color de las visualizaciones, ya que 
facilita la lectura y dado el caso, es posible resaltar un valor de interés.
    685/742
    Inteligencia de Negocios con Excel y Power BI - Page 686
    686/742
    CAPÍTULO 29 
Al finalizar la lectura de este capítulo tú aprenderás:
▪ Cómo configurar la página del reporte 
▪ Para que sirve el Panel de Filtros
▪ Que son las interacciones Visuales
Para analizar un conjunto de datos desde diferentes perspectivas y encontrar información 
adicional, puedes utilizar en equipo, las distintas visualizaciones con las que contamos en Power 
BI Desktop, aunque debes tener en cuenta ciertos aspectos de configuración para sacarle el 
máximo provecho a esta herramienta. 
Formato de Página
En el capítulo 10 exploramos los distintos elementos de la Interfaz de Power BI Desktop, como 
podrás recordar, el Lienzo es el lugar donde agregamos las diferentes visualizaciones para 
representar los datos, y así como los objetos visuales, también podemos personalizarlo. Si das 
clic sobre el Lienzo, en la pestaña Formato aparecerán las opciones de configuración donde 
podrás editarlo.
    687/742
    ▪ Tamaño de Página: En este grupo modificamos las dimensiones del Lienzo
▪ Información de Página: Aquí establecemos el nombre de la página 
▪ Fondo de Página: es posible cambiar el relleno de la Página
    688/742
    Para empezar con la construcción de nuestro reporte, dejamos la configuración de la página 
por defecto.
Opciones de una Visualización
Después, agregamos un Gráfico de Columnas Agrupadas, llevando el campo Categoría de 
Descuento al Eje y las medidas Ingresos Totales y Costos Totales a Valor.
Modo de 
Enfoque
Más 
Opciones
    689/742
    Al seleccionar una visualización, aparecen en la parte superior derecha dos botones que nos 
permiten interactuar con los gráficos.
▪ Modo de Enfoque: Expande la visualización hasta ocupar todo el tamaño del lienzo
▪ Más Opciones: Tiene una lista de acciones que podemos realizar con los gráficos
    690/742
    Exportar Datos: Consiste en exportar los valores numéricos que componen la 
visualización, en un Archivo CSV. 
Mostrar Datos: Muestra en la parte inferior del Lienzo, los valores numéricos que 
componen la visualización, es decir, que nos ayuda a ver el detalle del gráfico
Quitar: Elimina la visualización.
Destacados: Resalta la visualización en el Lienzo.
    691/742
    Ordenar Por: Ordena los puntos del gráfico de acuerdo con la variable elegida y las 
opciones dependen de los campos y medidas agregadas.
    692/742
    Después, vas a agregar las siguientes visualizaciones con la configuración establecida:
▪ Gráfico de Barras Agrupadas: Campo País al Eje, las medidas Ingresos Totales y Costos 
Totales a Valor
▪ Tarjeta: Vas a crear dos tarjetas, una para la medida Ingresos Totales y otra para la medida 
Costos Totales
▪ Gráfico de Columnas Agrupadas: el Campo Tipo de Compra al Eje, las medidas Ingresos 
Totales y Costos Totales a Valor
    693/742
    ▪ Gráfico de Líneas: La columna Año de la Tabla de Calendario al Eje y las medidas Ingresos 
Totales y Costos Totales a Valor 
▪ Segmentación de Datos: en este caso, vamos a crear dos Filtros, uno para el campo Año
de la Tabla de Calendario y otro para el País
    694/742
    Para finalizar, vamos a conformar un reporte con las visualizaciones recién creadas y su 
estructura es la siguiente:
Interacciones Visuales
Lo interesante de agregar varias visualizaciones al Lienzo es que todas están conectadas entre 
sí, por esta razón, si elegimos un punto de una visualización, en las demás, resalta la información
    695/742
    relacionada a ese ítem. Por ejemplo, en el Gráfico de Barras Agrupadas, vas a dar clic sobre el 
punto correspondiente a los ingresos para Argentina.
Como puedes ver, se muestra en todas las visualizaciones el porcentaje de Ingresos que 
corresponden a Argentina, si das clic sobre el mismo punto, el reporte vuelve a su estado 
original. 
Este comportamiento aplica para todas las visualizaciones, por esta razón, si eliges un punto 
de otro gráfico también resaltara los valores correspondientes.
Nota Puedes hacer selección múltiple manteniendo la tecla Ctrl presionada.
    696/742
    Para cambiar el tipo de interacción de un gráfico con respecto a los demás, primero debes 
elegirlo, como consecuencia, aparece la pestaña contextual Formato, y allí se encuentra el botón 
Editar Interacción.
 
Al elegir este comando, aparecerán iconos sobre todas las visualizaciones excepto la que hemos 
elegido, dichos iconos, son el tipo de interacción que podemos configurar.
    697/742
    ▪ Filtro: Como su nombre lo indica filtra los valores, quiere decir que quita del gráfico, los 
datos que no corresponden con el ítem elegido
▪ Resaltar: Muestra el Porcentaje, realzando el color para los valores correspondientes y 
es la configuración por defecto
▪ Ninguno: Elimina todo tipo de interacción con respecto a la visualización
Filtro
Resaltar
Ninguno
    698/742
    Muestra los 
Ingresos 
únicamente para 
Argentina
Resalta los 
ingresos para 
Argentina
    699/742
    Panel de Filtros
Otro método para quitar valores en las diferentes visualizaciones es utilizar los Niveles de Filtro 
del reporte, en la parte inferior del Panel de Visualizaciones se encuentra esta sección que nos 
permite configurar que elementos queremos ver en los distintos objetos visuales. 
No tiene
interacción 
alguna
Niveles de 
Filtro
    700/742
    Al elegir una visualización, cambian las opciones del Panel de Filtros. 
Aquí, podemos configurar el nivel para el cual el filtro tomara acción sin necesidad de agregar 
una Segmentación de Datos.
▪ Filtros de Nivel Visual: Filtra los valores de una visualización en particular, sin afectar 
los demás elementos.
Al acercar el cursor sobre alguno de los campos o medidas que aparecen en los filtros de nivel 
visual surge una flecha, al dar clic sobre ella, desplegamos las opciones de filtro para ese campo.
Campos y Medias 
del Gráfico
    701/742
    Aquí, podemos optar por Filtro Avanzado, Filtro Básico o Top N, en nuestro escenario definimos 
Filtro Básico.
Para ver cómo trabaja, habilitamos del año 2000 a 2004.
    702/742
    Como consecuencia, la visualización muestra únicamente los ingresos y costos para los años 
establecidos.
Si quisieras filtrar un ítem de un campo que no se encuentra en la visualización, lo puedes hacer 
arrastrando la columna directamente al nivel de filtro visual sin necesidad de ubicarlo 
previamente en las áreas de colocación del gráfico.
    703/742
    Después, repetimos el procedimiento y filtramos la visualización por el código SKU: CB01
▪ Filtros de Nivel de Página: Filtra todas las visualizaciones que están en la página, 
respetando el Filtro de Nivel Visual, es decir que, si hay un ítem seleccionado en este 
primer nivel, no afectara a dicho gráfico
Con esto en mente, vamos a llevar el campo SKU de la tabla Pedidos a Filtros de Nivel de Página.
Ingresos vs Costos, del año 2000 
al 2004 para el producto CB01
Borrar 
Filtros
    704/742
    Posteriormente, elegimos un ítem, por ejemplo, B03, al hacer esta acción todas las 
visualizaciones de la página muestran la información asociada a ese código de producto, 
excepto la que ya tenía un filtro a nivel de visualización aplicado.
▪ Filtro de Obtención de Detalle: Aquí podemos configurar otra hoja para que al dar clic 
sobre un punto, nos envié allí con los datos ya filtrados. 
Para configurar el Filtro de Obtención de detalle, vamos a agregar una nueva página, 
independiente al reporte que hemos venido trabajando, para ello, en la pestaña Inicio, grupo 
Insertar, damos clic sobre el comando Nueva Página.
    705/742
    Aquí vamos a crear una sola visualización de tipo Tabla, con los campos Tipo de Compra, País, 
SKU de la tabla Pedidos, y las medidas Ingresos Totales y Costos Totales.
En esta nueva página, con la tabla ya creada, nos dirigimos al Panel de Filtros y agregamos el 
campo País a Filtros de Obtención de Detalle.
    706/742
    Posteriormente, volvemos a la página donde estamos trabajando nuestro reporte de Ingresos 
Vs Costos, si damos clic derecho sobre algún punto del Gráfico de Barras Agrupadas que contiene 
el campo País, se despliegan una lista de opciones. Para este caso realizamos la acción sobre el 
punto Venezuela.
En la figura anterior, puedes ver que existe una opción denominada Obtención de Detalles y 
muestra la Página 1, al seleccionarla nos redirige a la página con la Tabla que recién creamos.
    707/742
    Aunque cabe resaltar que la tabla se encuentra filtrada por Venezuela, el mismo país donde 
dimos clic derecho. Adicionalmente, contamos con un botón que se creó automáticamente y
que nos permite volver al Reporte, en ese caso, mantenemos presionada la tecla CTRL y damos 
clic sobre él para regresar. 
▪ Filtro de Nivel de Informe: Permite filtrar todas las páginas de un reporte de acuerdo 
con un valor establecido, siempre respetando los niveles anteriores.
    708/742
    Marcadores
Los Marcadores de Power BI, nos permiten guardar “estados” del reporte para que podamos 
mostrar una vista del informe con tan solo un clic. Para configurarlos, vamos a ir a la pestaña 
Formato y habilitamos la opción Panel Marcadores.
Automáticamente, aparece el Panel de Marcadores en la interfaz de Power BI.
    709/742
    Después, nos dirigimos al reporte y establecemos la vista que deseamos compartir, por ejemplo, 
filtramos el País Argentina y el Año 2015, utilizando las segmentaciones de datos que se 
encuentran en el informe.
Con el estado definido, vamos al Panel de Marcadores y damos clic en el botón Agregar, 
automáticamente, crea el Marcador 1, asociado al estado que definimos previamente.
Para cambiar el nombre del Marcador hacemos doble clic sobre él, y reescribimos su 
denominación.
    710/742
    Para crear otro marcador, cambiamos los filtros del reporte definidos en ambas 
segmentaciones, en ese caso, seleccionamos el año 2014 y Brasil.
Nuevamente, volvemos al Panel de Marcadores y damos clic en Agregar, no olvides renombrarlo.
    711/742
    Por último, creamos un marcador para Colombia en el año 2013.
Con los marcadores creados, puedes navegar entre ellos dando clic sobre su nombre, y así ver 
las vistas sin necesidad de utilizar las segmentaciones de datos. 
Para mostrar los estados de un modo similar a una presentación de Power Point, damos clic 
sobre la opción Vista en el Panel de Marcadores.
Como consecuencia, aparece en la parte inferior de la página, una cinta que nos permite 
navegar entre los Marcadores del reporte.
    712/742
    Inteligencia de Negocios con Excel y Power BI - Page 713
    713/742
    Preguntas y Respuestas
Otra manera de analizar los datos es hablando con ellos, si, aunque parezca una locura, existe 
una opción en Power BI que nos permite utilizar lenguaje natural para hacer preguntas al 
informe y que nos responda a modo de visualización. 
Para activar esta característica, vamos a la pestaña Archivo, Opciones y Configuración, y damos 
clic sobre Opciones.
En la ventana Opciones, nos dirigimos la pestaña Característica de Versión Preliminar y allí, 
habilitamos Preguntas y Respuestas, clic en Aceptar y reiniciamos Power BI de escritorio.
    714/742
    Al abrir de nuevo Power BI, aparece en la pestaña Inicio, grupo Insertar, el botón Hacer una 
pregunta.
Si damos clic sobre dicho comando, aparece en el lienzo un objeto visual con un cuadro de 
dialogo que nos invita a hacer una pregunta.
    715/742
    En el cuadro de dialogo, vamos a preguntar cuáles fueron los ingresos discriminados por Tipo 
de Compra: Sum of Ingresos by tipo compra.
¡Advertencia! Hacer una pregunta, solo funciona con palabras en Ingles
    716/742
    Como respuesta, obtenemos un Gráfico de Barras Agrupadas que nos muestra la información 
correspondiente. Si quieres profundizar en las palabras y otras características de la 
funcionalidad de Preguntas y Respuestas, te invitamos a que explores el Apendice C: Lista de 
Palabras para el Lenguaje Natural.
Botones
Para facilitar el manejo de nuestro reporte existe un conjunto de elementos que podemos 
agregar y que permiten al usuario interactuar con los objetos que lo componen. En la pestaña 
Inicio, grupo Insertar, se encuentra el conjunto de botones que podemos utilizar.
    717/742
    Para nuestro informe, agregamos el botón Preguntas y Respuestas.
Manteniendo la selección sobre el botón, vamos a ir al Panel de Visualizaciones y allí activamos 
el grupo Acción, por último, verificamos que el Tipo sea: Preguntas y Respuestas.
Con la configuración establecida, el botón ya está listo para funcionar, si quieres activarlo debes 
mantener Ctrl presionado y dar clic sobre él. Automáticamente, aparece la acción 
correspondiente, un cuadro que nos permite agregar y guardar Preguntas y Respuestas 
predefinidas.
Preguntas y 
Respuestas
    718/742
    Después, vamos a agregar un botón de tipo Guardar como Marcador.
    719/742
    Con el botón seleccionado, volvemos al Panel de Visualizaciones, desplegamos el grupo Acción, 
y allí establecemos el marcador a mostrar, por ejemplo, Argentina – 2015.
Con la configuración del botón establecida, solo queda probarlo, para ello, mantenemos la tecla 
Ctrl presionada y damos clic sobre él.
    720/742
    Para añadir un título a nuestro informe, vamos a ir a la Pestaña Inicio, grupo insertar , y damos 
clic sobre el Comando Cuadro de Texto.
En el cuadro de texto escribimos Ingresos Vs Costos.
Como paso final en la creación del reporte, cambiamos la paleta de color de la mayoría de las 
visualizaciones utilizando el color gris para los ingresos y para los costos, el color rojo.
    721/742
    Si quieres compartir el reporte, puedes “subirlo” a Power BI Services dando clic sobre el botón 
Publicar que se encuentra en la parte superior derecha de la pestaña Inicio en la interfaz, con la 
sesión ya iniciada.
Nota Puedes Activar el Panel de Selección, para ocultar elementos del reporte sin 
necesidad de eliminarlos
    722/742
    Para configurar la vista del reporte en dispositivos móviles, puedes ir a la pestaña Vista, grupo 
Vista y damos clic sobre Diseño de Teléfono.
Como consecuencia, cambia la interfaz para que podamos diseñar la vista en dispositivos 
móviles.
    723/742
    Inteligencia de Negocios con Excel y Power BI - Page 724
    724/742
    Esta parte contiene tres apéndices 
bastantes útiles, el primero toda las 
referencias y bibliografía para 
complementar y apoyar el aprendizaje, el 
segundo una utilidad gratuita en la web 
para las fórmulas DAX y el tercero un 
resumen de las palabras que podemos 
implementar en Q&A.
EN ESTA PARTE
Apéndice A
Referencias y Bibliografía
Apéndice B
DAX Formatter
Apéndice C
Palabras Claves para Lenguaje Natural
    725/742
    Inteligencia de Negocios con Excel y Power BI - Page 726
    726/742
    Anexo 
Existen libros que recomendamos para que tengas en tu biblioteca y así fortalecer tu 
conocimiento en inteligencia de negocios, los títulos a continuación no sólo sirvieron de gran 
apoyo y referencia a los autores, sino que también te ayudarán a ti a profundizar y seguir 
indagando sobre este mundo.
M is for (Data) Monkey
Ken Plus & Miguel Escobar
Un libro obligado en la bibliografía para la preparación de datos, este libro es una guía para el 
manejo y trucos de limpieza de datos con Power Query para Excel.
The Definitive Guide To DAX
Marco Russo & Alberto Ferrari
Es uno de lo mejore libros para el aprendizaje del lenguaje DAX en su totalidad a nivel mundial, 
enfocado con inteligencia de negocios, modelamiento de datos y análisis.
Power Pivot and Power BI
Rob Collue & Avichal Singhi
Gran libro para aprender Power Pivot, su sencillez y forma amena de abordar la temática lo 
hacen fácil de comprender, un libro que va desde cero hasta aspectos avanzados.
    727/742
    Information Dashboard Design
Stephen Few
Un libro que enseña las habilidades para el diseño visual que se necesita para crear cuadros de 
mandos que comuniquen de forma clara y rápida la información que se desea transmitir.
Aprendizaje Guiado de Power BI
Microsoft
La página oficial de Power BI brinda una serie de lecciones de forma escrita y vídeo para aprender 
los fundamentos de Power BI.
El ADN de Power Pivot
Miguel Caballero & Fabian Torres 
Libro sobre la interfaz de Power Pivot en Excel y una guía paso a paso sobre el lenguaje DAX y 
aplicaciones BI
Tablas Dinámicas La Quinta Dimensión
Miguel Caballero & Fabian Torres 
Este libro tiene como objetivo brindar un conjunto de trucos y macros enfocados a tablas 
dinámicas
    728/742
    Anexo 
El DAX Formatter es una herramienta gratuita creada por el equipo de SQLBI que transforma 
una expresión DAX en un formato limpio y organizado para su lectura ágil, ampliamente 
recomendada para los usuarios constantes del lenguaje para el análisis de datos (DAX).
Para acceder a ella debemos ir la siguiente página web: https://www.daxformatter.com/
– Interfaz de la Web DAX Formatter
Aquí podemos seleccionar el separador de lista Oscuro o claro 
la interfaz
Para ayudar a mejorar este 
recurso gratuito podemos enviar 
errores que detectemos cuando 
lo estemos utilizando
Dar formato a 
código DAX
Interfaz simple 
de web
Cuerpo del DAX Formatter, 
donde se pega la expresión DAX 
raw
    729/742
    – Caso de Uso
Pegamos una expresión DAX
Clic en FORMAT
Las reglas de formato creadas por el equipo de SQL BI pueden ser consultadas aquí: 
https://www.sqlbi.com/articles/rules-for-dax-code-formatting/
    730/742
    Anexo 
Las siguientes tablas son una recopilación de palabras que reconoce la funcionalidad Q&A de 
Power BI, clasificadas por categoría.
Valores Acumulados o Agregados
Acumulados Aggregates
Total Total
Sum Suma
Amount Cantidad - Monto
 Number Número
 Quantity Cantidad - Unidades
 Count Enumerar
 Average Promedio
 Most Más - Máximo
 Least Menos
 Fewest Algunos
 Largest Mayor - Grande
 Smallest Pequeño
 Highest Superior - Mas Alto
 Biggest Más Grande
 Maximum Máximo
 Max Max
 Greatest Mayor - Gran
 Lowest Más Bajo
 Littlest El Más Pequeño
 Minimum Mínimo
 Min Min
    731/742
    Comparaciones entre Categorías
Conjunciones Lógicas 
Rangos - Igualdad
Comparaciones Comparisions
Vs Vs
Versus Versus
En Comparación con Compared to/Compare with
Conjunciones Conjunctions
Y And
O Or
Cada uno de Each of
Con With
Versus Versus
& &
Pero But
Ni Nor
Junto con Along With
Además de In addition to
Igualdad Equality
En In
Igual A Equal To 
 = = 
Después After
Es Más que Is More ThaN 
Entre Between
Antes Before
    732/742
    Rangos – Diferencias
Rangos Range
Mayor Greater
Más More
Más Grande Larger
Encima Above 
Por Encima Over
Menos Less
Menor Smaller
Fewer Menos
Abajo Below
Debajo Under
Al menos At Least
No Menos que No Less Than
Como Máximo At Most
No Más Que No More Than
En I n
Entre Between
En el Intervalo de In The range of
Desde From
Posterior Later
Más Temprana Earlier
Cuant Antes Sooner
Después After
A A t
Más Tarde Que Later Than
Desde Since
Empezando con Starting With
Empezando desde Starting From
Terminando Con Ending With
    733/742
    Rangos – Símbolos
Consultas
Símbolos
>
<
>=
<=
    734/742
    Top 
Comandos de Consulta Query Comands
Ordenar Sorted 
Ordenar Por Sort by
Dirección Direction
Grupo Group 
Agrupar Por Group by
Por By
Mostrar Show
Lista de Visualización List Display 
Dame Give Me
Nmbre Name
Sólo Just
Solamente Only
Organizar Arrange
Rango Rank
Comparar Compare
A To 
Con With
En Contra Against
Alfabéticamente Alphabetically
Ascendente Ascending
Descendente Descending 
Orden Order
    735/742
    Fechas
Fechas Relativas
Top N Top N
Superior Top
Más Abajo Bottom
Elevado Highest
Más Bajo - Deficiente Lowest
Primero First
Último Last
Siguiente Next
Más Temprano Earliest
Más Reciente Newest
Más Antiguo Oldest
Último Latest
Más Reciente Most Recent
Fechas Dates
Decada Decade
Año Year
Trimestre Quarter
Mes Mont
Semana Week
Día Day
    736/742
    Relación y Frecuencia
Fechas Relátivas Relatives Dates
Hoy Today
Ahora Mismo Right Now
Hora Actual Current Time
Ayer Yesterday
Mañana Tomorrow
El Presente The current
Siguiente Next
Próximo The Coming
Último Last
Anterior Previous
Hace Ago
Antes de Ahora Before Now
Mas Pronto Que Sooner Than
Después After
Más Tarde Que Later Than
Desde/De From
A A t
En On
Desde Ahora From Now 
Después de Ahora After Now 
En el Futuro In The Future
Pasado Past 
Dentro Within
En I n
Encima Over
N Días Atrás N Days Ago
N Días a Partir de Ahora N Days From Now
Una Vez Once
Dos Veces Twice
    737/742
    Pronombres
Artículos
Relación - Frecuencia Relation / Frequency
Cuando When
Dónde Where
Cual Which
Quien Who
Quíen Whom
Cuántos How Many
Cuanto Cuesta How Much
Cuantas Veces How Many Times
Cuan A menudo How Often
Con que Frecuencia How Frequently
La Cantidad Amount
Número Number
Cantidad/Cifra Quantify
Cuánto Tiempo How Long
Qué What
Pronombres Pronouns
Él He
de Él / a El Him 
El mismo Himself 
Su His
Ella She
Sí misma Herself
Su Her 
Suyo Hers
Eso It 
Sí Mismo Itself
Sus Its
Ellos They
Su/sus Their
Ellos Them
    738/742
    Otras Reglas a Tener en Cuenta
• Para definir el tipo de gráfico, solo basta con agregar la palabra AS + (El tipo de 
Gráfico, al final de la oración: 
Sum of precio de venta by país As bar chart 
 
 
• Si damos clic sobre el cuadro de preguntas y respuestas, en la parte superior de la 
interfaz aparecen preguntas determinadas y los campos de las tablas, al elegir 
alguna, se crea una visualización lista para ser Anclada en los diferentes paneles.
• Si al escribir una palabra en el Cuadro de preguntas, toma un color gris claro significa 
que Power BI no la reconoce.
Artículos Articles
A Un/Una
A n Un/ Una
The Los/La/Las/El/Lo
    739/742
    Inteligencia de Negocios con Excel y Power BI - Page 740
    740/742
    Inteligencia de Negocios con Excel y Power BI - Page 741
    741/742
    Inteligencia de Negocios con Excel y Power BI - Page 742
    742/742

    Inteligencia de Negocios con Excel y Power BI

    • 1.
    • 4. www.excelfreeblog.com www.biisoluciones.com
    • 5. Inteligencia de Negocios con Excel y Power BI Un Guía Exhaustiva para: Preparación, Análisis y Modelamiento de Datos Power Query, Power Pivot y DAX Copyright © 2018 por Didier Atehortúa, Fabian Torres y Miguel Caballero Todos los Derechos Reservados. Publicado por: Bii Soluciones & Excel Free Blog Medellín y Bogotá, Colombia: Publicación Simultánea │ Publicado: 14/6/2018 www.biisoluciones.com www.excelfreeblog.com ISBN: 978-958-48-3993-0 Manufacturado en Medellín, Colombia. Ninguna parte de este producto puede ser reproducida, almacenada, por ningún sistema de obtención de información o transmitido en ninguna forma: electrónica, mecánica, fotocopia, fotoquímica, grabación, escaneo o ninguna relacionada sin el permiso previo de los autores o autorización mediante el pago previo de impuestos y adjudicación de derechos de autor. DECLARACIÓN DE GARATÍA: LOS AUTORES, EDITORES DISTRIBUIDORES NO INCLUYE NINGUNA GARANTÍA O CONVENIENCIA RESPECTO A LA PRECISIÓN O INTEGRIDAD DEL CONTENIDO DE ESTE TRABAJO Y ESPECIFICAMENTE RENUNCIAN A TODA GARANTÍA, INCLUIDAS LAS GARNATÍAS DE LIMITACIÓN DE ADECUACIÓN PARA UN PROPOSITO PARTICULAR. NINGUNA GARANTÍA PUEDE SER CREADA O AMPLIADA POR VENTTAS O MATRIALES PROMOCIOANALES. LOS CONSEJOS Y ESTRATEGIAS AQUÍ CONTENIDO PUEDEN NO SER CONFORMES PARA CADA SITUACIÓN. ESTE TRABAJO SE VENDE CON EL ENTENIDMIENT DE QUE LOS AUTORES, EDITORES Y DISTRIBUIDORES NO ESTAN INVOLUCRADOS EN LA PRESTACIÓN DE SERVIOOS LEGALES, CONTABLEES U OTROS SERVICIOS PROFESIONALES. SI UN SERVICIO PROFESIONAL ES REQUERIDO, EL SERVICIO DE UNA PERSONA PROFESIONAL DEBERÍA SER BUSCADO. NI LOS EDITORES NI LOS AUTORES SERÁN RESPONSABLES DE LOS DAÑOS Y PERJUICIOS QUE DEREIVEN DE ELLO. El HECHO DE QUE UNA ORGANIZACIÓN O SITIO WEB SEA REFEREIDA EN ESTE TRABAJO COMO CITA O POTENCIAL FUENTE DE INFORMACIÓN NO SIGNIFICA QUE LOS AUTORES O EDITORES RESPALDEN LA INFORMACIÓN QUE LA ORGANIZACIÓN O SITIO WEB PUEDAN PROPRCIONAR O RECOMENDAR. ADEMÁS, LOS LECTORES DEBEN TENER EN CUENTA QUE LOS SITIOS EN INTERNET LISTADOS EN ESTE TRABAJO PUEDEN CAMBIAR O DESPARECER EN EL INTERVALO DE TIEMPO EN QUE ESTE TRABAJO ES REALIZADO Y CUANDO ES LEEIDO. Para información general o de nuestros otros productos por favor contactar a: didier.morales87@gmail.com o excelfreebymcs@gmail.com o fabian.torres.h@outlook.com ISBN: 978-958-48-3993-0 │ Edición 1, Distribución 1: 14/06/2018.
    • 6. A Vanessa Quintero, la esposa de Didier Atehortúa, sin ella este proyecto que palpaba lo quijotesco hubiera sido cuando menos utópico. Su apoyo semana a semana, día tras día fue la catapulta para que los autores produjeran a un ritmo de película con calidad exquisita. Su amabilidad y generosidad fue el catalizador para que elector tengas en sus manos la presente obra. A Don Carlos Álvarez; por facilitar el espacio, entorno y condiciones más que necesarias para que lo autores pudieran trabajar hombro a hombro y de manera sinérgica bajo el mismo techo. Pero, sobre todo, por creer en este proyecto. A la familia de Fabian Torres, por su confianza y apoyo de proporciones infinitas, pues fueron los ladrillos para construir este castillo. A la familia de Miguel Caballero: María Sierra y Luis Fernando Caballero, por su apoyo y constante inyección de motivación para culminar este desafío. A ti lector; por apostar por ti y dejar la piel cuando vayas página a página aprendiendo y utilizando esta joya. A todos, gigantes, mil gracias prestarnos sus robustos hombros para llegar más alto.
    • 8. PARTE I: PREPARACIÓN Y LIMPIEZA DE DATOS (POWER QUERY)..................... 39 Introducción a Power Query (Proceso ETL) .............................................................................. 41 Paseo por la interfaz de Power Query ....................................................................................... 46 Extrayendo datos de múltiples orígenes................................................................................... 53 Integración de datos.................................................................................................................. 121 Reordenación avanzada de datos ............................................................................................ 145 Manejo de consultas.................................................................................................................. 174 Inteligencia de Negocios con fechas ....................................................................................... 189 Introducción al Lenguaje M....................................................................................................... 213 Casos prácticos con Power Query ........................................................................................... 254 PARTE II: ANÁLISIS Y MODELAMIENTO DE DATOS (POWER PIVOT)................273 Introducción al Modelo Tabular................................................................................................ 275 Topología, Relación entre Tablas y sus Tipos.......................................................................... 287 Los 3 Sabores de Cálculos DAX más un Aroma ...................................................................... 301 Recetas DAX (Medidas Rápidas)............................................................................................... 335 La Llave para Dominar DAX: Síntesis de Contextos ............................................................... 351 Funciones Doradas: FILTER, Iteración y ALLxxxx..................................................................... 365 Propagación de Filtros al Desnudo .......................................................................................... 393 La Crema y Nata de las Funciones: CALCULATE...................................................................... 415 Indicadores y Métricas de Razones y Proporciones ............................................................... 449 Indicadores y Métricas de Inteligencia de Tiempo ................................................................. 459 PARTE III: VISUALIZACIÓN DE DATOS Y OBJETOS VISUALES (POWER BI)......513 Introducción a Objetos Visuales de Power BI ......................................................................... 515 Gráficos de Comparación.......................................................................................................... 523
    • 9. Gráficos de Tendencia ............................................................................................................... 573 Gráficos de Seguimiento........................................................................................................... 595 Gráficos Geográficos................................................................................................................. 611 Gráficos de Segmentación........................................................................................................ 633 Matriz y Tabla ............................................................................................................................. 645 Gráficos Personalizados............................................................................................................ 659 Diseño Apropiado de Gráficos .................................................................................................. 679 Configuración de Reporte......................................................................................................... 687 PARTE IV: APÉNDICES...........................................................................................725 Apéndice A: Referencias y Bibliografía .................................................................................... 727 Apéndice B: DAX Formatter...................................................................................................... 729 Apéndice C: Palabras Claves para Lenguaje Natural............................................................... 731
    • 10. Agradecimientos.............................................................................................................................................. vi Contenido Resumido .....................................................................................................................................viii Contenido Especifico....................................................................................................................................... x Acerca de los Autores ....................................................................................................................................xix Dedicatorias ....................................................................................................................................................xxi Introducción..................................................................................................................................................xxiii Acerca de Este Libro.....................................................................................................................................xxiv PARTE I: PREPARACIÓN Y LIMPIEZA DE DATOS (POWER QUERY)..................... 39 Capítulo 1: ntroducción a Power Query (Proceso ETL)................................................ 41 Extracción:.......................................................................................................................................................42 Transformación:..............................................................................................................................................43 Carga:...............................................................................................................................................................43 Tabla:............................................................................................................................................................44 Informe de tabla dinámica: .......................................................................................................................44 Gráfico dinámico: .......................................................................................................................................44 Crear solo conexión: ..................................................................................................................................44 Agregar estos datos al modelo de datos: ...............................................................................................44 Versiones de Power Query ............................................................................................................................45 Capítulo 2: Paseo por la interfaz de Power Query........................................................ 46 Conceptos Básicos.........................................................................................................................................46 ¿Qué es una consulta?...............................................................................................................................46 Formato Tabular.........................................................................................................................................46 Ingreso a Power Query desde Excel .............................................................................................................47 Ingresar a Power Query en Power BI............................................................................................................49 Capítulo 3: Extrayendo datos de múltiples orígenes ................................................... 53 Extraer datos de un archivo de texto o formato CSV................................................................................53 Extraer Datos de un archivo txt................................................................................................................54 Extraer Datos de un archivo CSV .............................................................................................................64 Extraer datos desde una tabla o rango........................................................................................................65 Aspectos por resaltar.................................................................................................................................68 Extraer datos de varias tablas o rangos de un mismo libro ......................................................................70 Conectando datos de un libro de Excel a otro ...........................................................................................84
    • 11. Tratar errores en Power Query .................................................................................................................95 Error en cambio de nombre o ruta del archivo.......................................................................................97 Consolidar datos de una carpeta .................................................................................................................99 Consolidar varios archivos con una sola hoja.........................................................................................99 Consolidar varios archivos con varias hojas ........................................................................................ 104 Conectar datos de la Web.......................................................................................................................... 109 Vinculación a Bases de Datos .................................................................................................................... 110 Extracción de datos del correo .................................................................................................................. 114 Capítulo 4: Integración de datos..................................................................................121 Anexar consultas ......................................................................................................................................... 121 Definir encabezado................................................................................................................................. 122 Extraer datos de la carpeta .................................................................................................................... 123 Extraer datos de txt................................................................................................................................ 125 Extraer datos de archivo de Excel xlsx.................................................................................................. 125 Consolidar consultas .............................................................................................................................. 126 Combinar consultas .................................................................................................................................... 128 Relación uno a uno ................................................................................................................................. 128 Relación muchos a muchos ................................................................................................................... 138 Relación uno a muchos .......................................................................................................................... 141 Capítulo 5: Reordenación avanzada de datos............................................................. 145 Transponer tablas........................................................................................................................................ 145 Anulación de dinamización de columnas (Unpivot) ............................................................................... 147 Anulación de dinamización con dos niveles de encabezado ................................................................. 152 Anulación de dinamización con tres niveles de encabezado................................................................. 157 Columna dinámica....................................................................................................................................... 162 Ejercicio Práctico..................................................................................................................................... 164 Agrupación de datos ................................................................................................................................... 168 Agrupación básica................................................................................................................................... 169 Agrupación Avanzada............................................................................................................................. 171 Capítulo 6: Manejo de consultas ..................................................................................174 Propiedades de las consultas..................................................................................................................... 174 Actualizar cada “X” tiempo ................................................................................................................... 177 Actualizar consultas con macros VBA.................................................................................................. 179 Crear consulta desde una columna........................................................................................................... 182 Organizar consultas .................................................................................................................................... 185 Capítulo 7: Inteligencia de Negocios con fechas........................................................ 189 Crear tabla calendario................................................................................................................................. 189 Año............................................................................................................................................................ 192
    • 12. Mes............................................................................................................................................................ 193 Trimestre .................................................................................................................................................. 194 Semana..................................................................................................................................................... 195 Día ............................................................................................................................................................. 196 Cálculo entre columnas fechas.................................................................................................................. 198 Cálculo de días en la misma columna ....................................................................................................... 204 Formatos fecha............................................................................................................................................ 209 Capítulo 8: Introducción al Lenguaje M.......................................................................213 Listas, Registros y Tablas en Power Query ............................................................................................... 213 Listas......................................................................................................................................................... 215 Registros (Record) .................................................................................................................................. 217 Tablas........................................................................................................................................................ 220 Editor Avanzado........................................................................................................................................... 221 Let ............................................................................................................................................................. 222 in................................................................................................................................................................ 222 Creación de Bloques ............................................................................................................................... 224 Declaración de variables......................................................................................................................... 228 Nombres de variables ............................................................................................................................. 228 Caracteres en el editor avanzado.......................................................................................................... 229 Funciones básicas ................................................................................................................................... 229 Funciones de texto. ................................................................................................................................ 233 Funciones Lógicas................................................................................................................................... 243 Funciones Lógicas Anidadas. ................................................................................................................. 247 Tratar errores en fórmulas. .................................................................................................................... 250 Descargar listado de funciones de Power Query................................................................................ 253 Capítulo 9: asos prácticos con Power Query .............................................................. 254 Análisis de inventario y pedidos ................................................................................................................ 254 Análisis de Ventas........................................................................................................................................ 260 Consolidar información contable .............................................................................................................. 266 PARTE II: ANÁLISIS Y MODELAMIENTO DE DATOS (POWER PIVOT)................... 273 Capítulo 10: Introducción al Modelo Tabular.............................................................. 275 El modelo multidimensional y tabular....................................................................................................... 275 ¿Por qué el modelo tabular?................................................................................................................... 276 Modelo Tabular Vs Modelo Multidimensional ......................................................................................... 278 Futuro del Modelo Multidimensional ................................................................................................... 278 ¿Qué es Power Pivot y el Lenguaje DAX?.................................................................................................. 278 Por qué deberías tomártelo enserio...................................................................................................... 279
    • 13. Qué es el Lenguaje DAX......................................................................................................................... 280 Introducción a Power BI.............................................................................................................................. 280 La Suite de Power BI ............................................................................................................................... 281 Instalar Power BI de Escritorio............................................................................................................... 283 Interfaz de Power BI de Escritorio......................................................................................................... 286 Capítulo 11: Topología, Relación entre Tablas y sus Tipos........................................287 Tipos de Tablas en Bases de Datos ........................................................................................................... 287 Tablas de Hechos (Fact Tables)............................................................................................................. 288 Tablas de Dimensión o Tablas de Búsqueda (Dimensión Table)....................................................... 288 Tipos de Columnas en Tablas de Bases de Datos.................................................................................... 289 Clave Primaria o Primary Key ................................................................................................................. 289 Clave Externa o Foreign Key .................................................................................................................. 289 Entretejido de Tablas .................................................................................................................................. 290 Relaciones Automáticas en Power BI.................................................................................................... 290 Relacionar Tablas Manualmente ........................................................................................................... 293 Tipos de Relaciones ..................................................................................................................................... 295 Relación Uno a Muchos.......................................................................................................................... 296 Relación Uno a Uno ................................................................................................................................ 296 Relación Muchos a Muchos ................................................................................................................... 297 Miniinforme de Múltiples Tablas Relacionadas ................................................................................... 297 Capítulo 12: Los 3 Sabores de Cálculos DAX más un Aroma ....................................301 ¿Qué es el Lenguaje DAX?.......................................................................................................................... 301 Los 3 tipos de cálculos (3 sabores)....................................................................................................... 302 Introducción a Medidas .............................................................................................................................. 304 ¿Qué es una Medida?.............................................................................................................................. 304 Medidas en Power BI .............................................................................................................................. 305 Tipos de Medidas en Power BI............................................................................................................... 306 Medidas implícitas .................................................................................................................................. 308 Medidas explícitas manuales ................................................................................................................. 312 Medidas explícitas automáticas ............................................................................................................ 317 Introducción a Columnas Calculadas ....................................................................................................... 317 Tablas de Población de la Web.............................................................................................................. 317 Crear Columna Calculada....................................................................................................................... 322 Funciones DAX en Columnas Calculadas............................................................................................. 324 Variables en el Lenguaje DAX..................................................................................................................... 325 Acerca de Variables ................................................................................................................................. 325 Ejemplo Básico: Descuentos.................................................................................................................. 326 Elementos Para Medidas ............................................................................................................................ 327 Tablas para Alojar Medidas .................................................................................................................... 327 Descripción de Medidas ......................................................................................................................... 332
    • 14. Capítulo 13: Recetas DAX (Medidas Rápidas)............................................................. 335 Medidas Rápidas.......................................................................................................................................... 335 Agregados por Categorías ..................................................................................................................... 337 Filtros ........................................................................................................................................................ 342 Inteligencia de Tiempo ........................................................................................................................... 345 Capítulo 14: La Llave para Dominar DAX: Síntesis de Contextos ...................351 Los 3 Pilares de Todo Crack en DAX ......................................................................................................... 352 Analogía para Propagación, Contexto y VertiPaq............................................................................... 352 Acerca del Ecosistema DAX Engine........................................................................................................... 353 Contextos en DAX................................................................................................................................... 354 Tres Pasos (Internos) Primordiales en DAX.............................................................................................. 357 Identificar Filtros ..................................................................................................................................... 358 Aplicar Filtros ........................................................................................................................................... 358 Ejecutar Expresión DAX.......................................................................................................................... 360 Contextos en DAX....................................................................................................................................... 361 Contexto de Filtro................................................................................................................................... 362 Contexto de Fila ...................................................................................................................................... 362 Capítulo 15: Funciones Doradas: FILTER, Iteración y ALLxxxx...................................365 Funciones Tabulares y Escalares................................................................................................................ 366 Funciones Escalares ................................................................................................................................ 366 Funciones Tabulares ............................................................................................................................... 367 Función FILTER............................................................................................................................................. 368 Sintaxis de la Función FILTER................................................................................................................. 368 Argumentos Tabulares en Funciones Escalares .................................................................................. 372 Funciones de Iteración................................................................................................................................ 375 Funciones con Sufijo X........................................................................................................................... 376 Funcionamiento Interno de las Funciones con Sufijo X..................................................................... 377 Otras Funciones de Iteración................................................................................................................. 383 Lista de Funciones de NO Sufijo X........................................................................................................ 384 Funciones ALLxxxx....................................................................................................................................... 384 Función ALL.............................................................................................................................................. 384 Las Dos Caras de ALL .............................................................................................................................. 386 Función ALLEXCEPT ................................................................................................................................ 391 Lista de Otras Funciones ALLxxxx ......................................................................................................... 392 Capítulo 16: ropagación de Filtros al Desnudo........................................................... 393 La Importancia de los Contextos............................................................................................................... 394 Propagación de Filtros ................................................................................................................................ 395 Configuración de la Matriz .................................................................................................................... 397
    • 15. Tres Pasos Primordiales en DAX............................................................................................................ 398 Filtros Indirectos o Cruzados................................................................................................................. 406 Mecanismo de Propagación de Filtros...................................................................................................... 407 Propagación en Acción........................................................................................................................... 408 Tres Pasos (Internos) Primordiales en DAX con Propagación ........................................................... 413 Recomendaciones para trabajo con múltiples tablas y Propagación............................................... 413 Capítulo 17: La Crema y Nata de las Funciones: CALCULATE ....................................415 Anomalías en Medidas de Participación con SUMX y ALL ..................................................................... 416 Variación Discreta de Contexto ............................................................................................................ 418 Primera Profundización en el Contexto de Filtro .................................................................................... 423 Listas (Filtros) en el Ambiente de Contextos ...................................................................................... 423 Significado de Modificar el Contexto de Filtro.................................................................................... 426 Contexto de Filtro una Definición más Aproximada........................................................................... 427 El ABC de la Función CALCULATE.............................................................................................................. 427 Sintaxis de la Función CALCULATE ....................................................................................................... 428 Procedimiento Interno de la Función CALCULATE.............................................................................. 429 La Máscara para Condición Booleana................................................................................................... 430 El Operador IN ......................................................................................................................................... 439 Condiciones Booleanas con Disyunción Lógica.................................................................................. 441 Casos de Condiciones Booleanas para CALCULATE........................................................................... 444 Las 3 Posibles Condiciones de CALCULATE ............................................................................................. 444 Condición en Forma de Tabla ................................................................................................................ 445 Solución % Participación............................................................................................................................ 447 Capítulo 18: Indicadores y Métricas de Razones y Proporciones ............................. 449 % Participación Dinámica........................................................................................................................... 450 Función ALLSELECTED............................................................................................................................ 452 Total de Fila o Columnas ........................................................................................................................ 455 Capítulo 19: ndicadores y Métricas de Inteligencia de Tiempo ................................ 459 Tablas de Calendario................................................................................................................................... 459 Qué es una Tabla de Calendario............................................................................................................ 460 ¿Cuáles son las columnas que debe tener una tabla de calendario?................................................ 463 Características y Propiedades de una Tabla de Calendario ............................................................... 464 Métodos de Construcción de Tablas de Calendario........................................................................... 466 Construcción de Tabla de Calendario con CALENDAR y CALENDARAUTO ..................................... 467 Marcar como Tabla de Calendario ........................................................................................................ 474 Construcción de Tabla de Calendario con GENERATE y ROW .......................................................... 476 Interacción de Tabla de Calendario con las demás Tablas................................................................. 478 Orden Cronológico para Meses ............................................................................................................ 479 Extensión de Tablas de Calendario ....................................................................................................... 481
    • 16. Días No Laborales con Tablas de Calendario (Sábados, Domingos y Festivos).............................. 484 Funciones de Inteligencia de Tiempo (Time Intelligence) ...................................................................... 487 Acumulados: Total a la fecha (YTD, MTD y QTD)................................................................................ 487 Acumulados con: TOTALYTD, TOTALQTD y TOTALMTD .................................................................... 497 Acumulado: Histórico a la Fecha (HTD)................................................................................................ 498 Comparación de Períodos (PY, PQ y PM)............................................................................................. 500 Total del Año Pasado .............................................................................................................................. 505 Mismo Acumulado del Año Pasado: PY YTD........................................................................................ 507 Diferencias en Periodos.......................................................................................................................... 509 Cálculo del Total Anual Móvil ................................................................................................................ 510 PARTE III: VISUALIZACIÓN DE DATOS Y OBJETOS VISUALES (POWER BI)......513 Capítulo 20: Introducción a Objetos Visuales de Power BI .......................................515 Cómo Crear un Objeto Visual en Power BI .............................................................................................. 515 ¿Qué es un Gráfico?................................................................................................................................ 516 Panel de Visualizaciones ........................................................................................................................ 516 Creando Objetos Visuales en Power BI ................................................................................................ 517 Evolución Matriz a Gráfico ......................................................................................................................... 519 Cambiar el Tipo de Visualización........................................................................................................... 519 Evolución Matriz a Gráfico..................................................................................................................... 520 Tipos de Objetos Visuales en Power BI ................................................................................................ 522 Capítulo 21: Gráficos de Comparación........................................................................523 Objetivo de los Gráficos de Comparación................................................................................................ 523 ¿Cuáles son los gráficos de Comparación?.............................................................................................. 524 Subcategoría I: Columnas y Barras............................................................................................................ 525 Gráfico de Barras Apiladas ..................................................................................................................... 525 Gráfico de Columnas Apiladas............................................................................................................... 536 Gráfico de Barras Agrupadas ................................................................................................................. 539 Gráfico de Columnas Agrupadas........................................................................................................... 544 Gráfico de Columnas Apiladas y de Líneas........................................................................................... 546 Gráfico de Columnas Agrupadas y de Líneas....................................................................................... 548 Subcategoría II: Distribución...................................................................................................................... 550 Gráfico de Barras 100% Apiladas y Gráfico de Columnas 100% Apiladas....................................... 550 Gráfico Circular........................................................................................................................................ 554 Gráfico de Anillos .................................................................................................................................... 557 Treemap.................................................................................................................................................... 559 Subcategoría III: Flujo de Datos................................................................................................................. 561 Gráfico de la Barra de Herramientas ..................................................................................................... 561
    • 17. Embudo .................................................................................................................................................... 570 Capítulo 22: Gráficos de Tendencia .............................................................................573 Objetivo de los Gráficos de Tendencia ..................................................................................................... 573 ¿Cuáles son los Gráficos de Tendencia? ................................................................................................... 574 Gráficos de Tendencia................................................................................................................................. 574 Gráfico de Líneas ..................................................................................................................................... 574 Gráfico de Áreas ...................................................................................................................................... 580 Gráfico de Áreas Apiladas....................................................................................................................... 583 Gráfico de Dispersión.............................................................................................................................. 585 Capítulo 23: Gráficos de Seguimiento.........................................................................595 Objetivo de los Gráficos de Seguimiento................................................................................................. 595 ¿Cuáles son los Gráficos de Seguimiento?............................................................................................... 596 Gráficos de Seguimiento ............................................................................................................................ 596 Medidor .................................................................................................................................................... 596 Tarjeta....................................................................................................................................................... 601 Tarjeta de Varias Filas ............................................................................................................................. 603 KPI ............................................................................................................................................................. 605 Capítulo 24: Gráficos Geográficos ...............................................................................611 Objetivo de los Gráficos Geográficos ....................................................................................................... 611 ¿Cuáles son los Gráficos Geográficos?...................................................................................................... 612 Gráficos Geográficos................................................................................................................................... 612 Mapa......................................................................................................................................................... 612 Mapa Coroplético.................................................................................................................................... 616 Mapas ArcGIS para Power BI.................................................................................................................. 619 Capítulo 25: Gráficos de Segmentación......................................................................633 Objetivo de los Gráficos de Segmentación.............................................................................................. 633 ¿Cuáles son los Gráficos de Segmentación?............................................................................................ 633 Segmentación de Datos ............................................................................................................................. 634 Capítulo 26: Matriz y Tabla ........................................................................................... 645 Matriz............................................................................................................................................................ 645 Tabla.............................................................................................................................................................. 656 Capítulo 27: gráficos Personalizados ..........................................................................659 ¿Qué son los Gráficos Personalizados?..................................................................................................... 659 ¿Como Agregar un Gráfico Personalizado?.......................................................................................... 660 Importar desde el Market Place............................................................................................................. 664 Bullet Chart by OKViz ................................................................................................................................. 666 Thermometer by MAQ Software ............................................................................................................... 670
    • 18. Tachometer .................................................................................................................................................. 672 Otros Gráficos Personalizados................................................................................................................... 678 Capítulo 28: Diseño Apropiado de Gráficos ................................................................ 679 Lineamientos de Diseño para Visualización de Datos ............................................................................ 679 Claridad .................................................................................................................................................... 680 Consistencia ............................................................................................................................................ 681 Legibilidad ................................................................................................................................................ 682 Balance ..................................................................................................................................................... 683 Transmitir el Mensaje Apropiado........................................................................................................... 684 Simplificar el Color.................................................................................................................................. 685 Capítulo 29: Configuración de Reporte.......................................................................687 Configuración .............................................................................................................................................. 687 Formato de Página.................................................................................................................................. 687 Opciones de una Visualización.............................................................................................................. 689 Interacciones Visuales ............................................................................................................................ 695 Panel de Filtros ........................................................................................................................................ 700 Marcadores .............................................................................................................................................. 709 Preguntas y Respuestas ......................................................................................................................... 714 Botones .................................................................................................................................................... 717 PARTE IV: APÉNDICES .....................................................................................725 Apéndice A: Referencias y Bibliografía ........................................................................727 Apéndice B: DAX Formatter .......................................................................................... 729 Apéndice C: Palabras Claves para Lenguaje Natural...................................................731
    • 19. Empresario y fundador de la empresa Bii Soluciones (Business Intelligence Information Soluciones) una compañía dedicada a la consultoría y desarrollo de soluciones en análisis financiero y de costos, inteligencia de negocios y análisis de información. Didier es ingeniero financiero certificado por Microsoft como especialista en Excel, con un amplio recorrido en el sector empresarial. Además de su labor como asesor y consultor, es también docente en Excel y las herramientas inteligencia de negocios, entrenando anualmente más de mil personas en esta extraordinaria herramienta. Convencido de que la información es la columna vertebral de toda compañía o negocio, por ende, Excel y Power BI son las herramientas más poderosas para analizar datos y resumir gerencialmente la información. Es creador de contenido, autor y consultor en análisis de datos utilizando Excel y la suite de herramientas de Microsoft BI. Miembro del equipo en EFB y Coautor de los libros: Tablas Dinámicas La Quinta Dimensión y El ADN de Power Pivot. Ingeniero Industrial por formación, desarrollador de Cuadros de Mando, reportes Inteligentes e informes interactivos. Él ha ejecutado variedad de entrenamientos con empresas privadas y de grupos independientes, gracias al trabajo continuo en Excel Free Blog con un enfoque en visualización de datos. Fabian es entusiasta en visualización de datos y se especializa en la optimización a través de la comunicación mediante gráficos, objetos visuales y herramientas de diseño.
    • 20. Es formador y consultor en análisis de datos e inteligencia de negocios utilizando las tecnologías de Microsoft BI. Ha entrenado a centenares de personas en Medellín y Bogotá Colombia, ello gracias a la vinculación con empresas privadas y su gestión mediante su blog y canal de YouTube: Excel Free Blog. Miguel, También se ha ido erigiendo como un autor prolífico gracias a tu coautoría en los libros Tablas Dinámicas La Quinta Dimensión y El ADN de Power Pivot, este último posicionado como uno de los mejores títulos en habla hispana en la bibliografía para aprender y dominar Power Pivot y DAX para Excel. El también escribió Funciones Primordiales en Excel, un minilibro en versión beta que enfatiza en las funciones claves de Excel para generar un diferencial ágilmente. Ingeniero industrial por formación y profesional Excel developer por entrenamiento, ha desarrollado proyectos en el sector textil, financiero y comercial, así mismo ha trabajado en el área de retribución salarial creando y validando modelos de compensación fija y variable apoyadas en hojas de caculos sofisticadas.
    • 21. – Didier Atehortúa A Dios en primer lugar, por darme la capacidad y dones que tengo, por conocer amigos como Miguel y Fabian y hacer sinergia y crear este gran proyecto. A mi esposa Vanessa Quintero, porque es de esas personas que hace todo detrás de cámaras, por ello terminan con un papel de más peso que el mismo protagonista, gracias por todo su apoyo en esta aventura. A mis hijos: Sofía, Miguel y Simón, son un motivo más para segur avanzado. – Fabian Torres Para Enith y Pablo, por enseñarme el valor de la disciplina y el amor hacia el trabajo. – Miguel Caballero A la memoria de mi padre: Miguel Antonio Caballero Arrieta.
    • 23. Power BI no es un programa para analizar datos, tampoco es un conjunto de tecnologías para el análisis de negocios, Power BI es en realidad y esencia: un estilo de vida. ¿Una premisa excesiva?, ni de cerca, es en su lugar la definición más fiel a la realidad, la que mejor encaja cuando nos volcamos en el aprendizaje de la que es hoy por hoy el software líder en BI o Business Intelligence. Te lo vamos a dibujar con detalle: Qué sucede cuando depende de tu voluntad las horas que trabajas, cuando tienes la potestad absoluta de decidir si le dedicas mayor o menor tiempo a un proyecto o tarea laboral, en filtrar y seleccionar entre un trabajo u otro; en que escalar sea una constante del día a día, parte de tu ser ¿No es eso un estilo de vida? Power BI va a poner a tu disposición todo eso gracias a que te dará más de lo necesario para preparar datos como solo la élite de la élite puede lograrlo, analizarlos como un genio adelantado a su época, visualizarlos como cual Leonardo Da Vinci y su Mona Lisa más un horizonte tupido de posibilidades para compartir, manejar niveles de privacidad, generar roles de administración, manejo de biga data y muchísimo más. Y, ¿Dónde ha quedado Excel? Excel está ahí, asechando, siempre a la vanguardia y despuntando como la herramienta número uno para manipular datos, y, para que no quede el mínimo vestigio de duda, hay que conocer y resaltar con tinta indeleble que Power BI es la yuxtaposición de Power Query, Power Pivot, Power View y Power Map; todos ellos complementos y características nativas de Excel, así que como mínimo cuando aprendes Power BI aprendas las herramientas de inteligencia de negocios de Excel y viceversa. Quieres un super estilo vida, haz tu mantra: Excel y Power BI. ¿Preparado para saborear y devorar cada hoja, página, párrafo y letra de este libro?, excelente: «Bon appétit».
    • 24. Para entender la estructuración y hoja de ruta de este libro es imperativo clarificar desde el minuto cero que: la inteligencia de negocios con las tecnologías de Microsoft BI esta pavimentado sobre el proceso BI, es decir, por cuatro etapas secuenciales e íntimamente relacionadas: ▪ Preparación de Datos ▪ Análisis de Datos ▪ Visualización de Datos ▪ Compartir información Adicionalmente existen diversas tecnologías de Microsoft para BI, pero aquí nos centraremos en dos: Excel y Power BI, para captar como coinciden esos dos programas con las etapas del proceso BI desglosemos cada uno: Excel ▪ Power Query → Preparación de Datos ▪ Power Pivot (DAX Engine) → Análisis de Datos ▪ Power View y Power Map → Visualización de Datos Power BI de escritorio ▪ Power Query → Preparación de Datos ▪ DAX Engine → Análisis de Datos ▪ Objetos Visuales → Visualización de Datos Se puede apreciar que independientemente del programa nos encontraremos con las funcionalidades de preparación, análisis y visualización de datos, quiere decir que el conocimiento será intercambiable entre un programa y otro, podrá ser aplicado en ambas direcciones.
    • 25. Este no es un libro de Excel, tampoco es un libro de la suite de Power BI, es un libro sobre los 3 primeros ejes para inteligencia de negocios con Excel y Power BI. Excel es la herramienta por excelencia para el tratamiento y manipulación de datos, esto quiere decir que no solo no sirve para las etapas del proceso de inteligencia de negocios, sino también para capitación y registro de datos, validación y corrección, creación de aplicaciones con la interfaz, programación con VBA entre muchas otras cosas. Otro aspecto por destacar es que Power BI no es un programa, es en realidad una familia (suite) de programas constituida principalmente por: Power BI de escritorio (Power BI Desktop), el servicio de Power BI en la nube (Power BI Services) y Power BI para dispositivos móviles (Power BI Mobile) Este libro está basado en los “complementos” de Excel para inteligencia de negocios y Power BI de escritorio, abordando la espina dorsal para el análisis de datos. Power BI Services y Power BI Mobile no será tratados en este libro, ni tampoco otras funcionalidades diferentes de Excel, pues si nos diéramos a una tarea de semejantes proporciones sin duda terminaríamos con un compendio de más de 5000 páginas. Excel: Es necesario contar con Excel 2016 o 2013. Power BI Desktop: Descargar la actualización del mes en curso, por lo menos corroborar que tenemos la versión de abril del 2018.
    • 26. Este libro esta divido en tres grandes partes, cada uno agrupa una serie de capítulos de acuerdo con la etapa del proceso BI, cada parte hará el desarrollo de su respectiva temática en un programa en particular, con esto lo que se busca es ver la intercambiabilidad de conocimiento entre un software y otro. ▪ Parte I: Preparación y Limpieza de Datos (Capítulo 1 a 9): Esta parte está compuesta por nueve capítulos donde encontrarás una multitud de trucos, herramientas y utilidades para: limpiar, depurar, integrar, enriquecer e incluso resumir datos; por si fuera poco, esta aderezado con los fundamentos del lenguaje M. ▪ Parte II: Análisis y Modelamiento de Datos (Capítulo 10 a 19): Esta parte formada por 10 capítulos cubre los puntos necesarios y determinantes para convertirte en usuario competente del lenguaje para el análisis de datos (DAX) y así crear tus propias métricas e indicadores de análisis de negocio. ▪ Parte III: Visualización de Datos y Objetos Visuales (Capítulo 20 a 29): La variedad de gráficos y objetos visuales de Power BI es el foco de esta parte, su configuración, diseño, herramientas analíticas individuales, casos de uso y buenas prácticas te acompañaran a lo largo de cada capítulo. ▪ Parte IV: Apéndices (A,B y C): Este libro tiene tres apéndices que cubren la bibliografía, el DAX Formatter y las palabras claves del lenguaje natural. La Parte I se desarrollará en su totalidad en Excel mientras que las Partes II y III se desarrollarán en Power BI de escritorio.
    • 27. Cada parte del presente texto es una parte integral de los tres primeros ejes del proceso de inteligencia de negocios, todos los capítulos de este libro se catalizan unos a otros como los ingredientes de un complejo multivitamínico, te dejamos la tabla nutricional capítulo a capítulo. PARTE I: Preparación y Limpieza de Datos Capítulo 1: Introducción a Power Query y Proceso ETL El primer capítulo trata sobre los fundamentos teóricos para la preparación y administración de datos, en concreto el Proceso ETL. Además se trata los múltiples destinos de carga que se pueden manejar en Power Query para Excel. Capítulo 2: Pase por la Interfaz de Power Query Para trabajar con Power Query es necesario conocer su interfaz a la perfección, en definitiva, nos permitirá navegar y empezar con el temario aplicado. Capítulo 3: Extrayendo Datos de Múltiples Orígenes Una de las maravillas de Power Query es la gran variedad de orígenes a las que se puede conectar, de hecho, está en constante aumento. En este capítulo se verán todas las opciones para conectarse a un archivo de Excel: con una hoja, con múltiples hojas; a archivos con múltiples hojas, a múltiples archivos múltiples hojas, etc. Capítulo 4: Integración de Datos La capacidad de tomar varias consultas o tablas y consolidarlas de acuerdo con nuestra necesidad específica y lógica de los datos es el tema en el que ahondará el capítulo de integración de datos, estudiando como anexar y combinar datos.
    • 28. Capítulo 5: Reordenación Avanzada de Datos Cuantas veces no te has encontrado con formatos de tablas completamente diferentes al estándar, es decir, con organización variada y estructuración que en algunos casos pareciera nos seguir ningún orden lógico, las técnicas de reordenación avanzada de datos: Anulación de dinamización, Columna Dinámica y Agrupación te brindaran un arsenal fuerte de trucos avanzados para la preparación de datos. Capítulo 6: Manejo de Consultas Las consultas son el bloque de trabajo que internamente siguen el proceso ETL para la preparación de datos, en este capítulo se verá cómo organizarlos correctamente y programar su actualización de forma manual y con VBA. Capítulo 7: Inteligencia de Negocios con Fechas Power Query cuenta con opciones para manejo de fechas desde su interfaz, en otras palabras, nada de código o funciones enrevesadas, en su lugar permite realizar cálculos y manipulación sobre fechas con clics. Capítulo 8: Introducción al Lenguaje M Todo el funcionamiento interno de Power Query, desde la extracción de datos hasta las acciones sobre la interfaz y su carga se traducen al final en unas funciones llamadas lenguaje M, en este capítulo se verán los fundamentos de este lenguaje. Capítulo 9: Casos Prácticos con Power Query Aunque todo hasta aquí ha sido practico para ser implementado en nuestro trabajo y sacarle el jugo en áreas laborales específicas: una serie de escenarios concretos de carácter contable, inventarios y ventas se verán en esta parte del libro para cerrar con broche de oro la parte de preparación y limpieza de datos.
    • 29. PARTE II: Análisis y Modelamiento de Datos Capítulo 10: Introducción al Modelo Tabular A partir de aquí se emprende el vuelo por la etapa de análisis de datos, el itinerario de inicio se basa en entender qué es el modelo tabular y por qué nos interesa, qué es el modelo multidimensional y los fundamentos de iniciación en Power BI de escritorio. Capítulo 11: Topología, Relación entre Tablas y sus Tipos Un modelo de datos puede tener una o varias tablas, en el segundo caso debemos entender los conceptos básicos en modelamiento de datos y la relación entre tablas, esta temática es el eje de giro del capítulo. Capítulo 12: Los 3 Sabores de Cálculos DAX más un Aroma DAX es lenguaje de funciones utilizado en Power BI, Power Pivot para Excel y SSAS en su modelo tabular para extraer información del conjunto de tablas del modelo. DAX puede llegar a ser bastante complejo de dominar en su pensum más avanzado, a pesar de ello, todo orbita en 3 cálculos. La introducción y fundamentos a los 3 cálculos DAX es el recorrido del capítulo. Capítulo 14: Recetas DAX (Medidas Rápidas) A diferencia de Power Query para Excel o Power BI, DAX no cuenta con una generosa y bondadosa interfaz para crear pasos y solucionar tareas con sólo clics, eso sí, las medidas rápidas (un sabor cálculo DAX) son las primeras aproximaciones. Capítulo 15: La Llave para Dominar DAX: Síntesis de Contextos Este capítulo tiene como foco lo que hemos denominado como: el peldaño para domina DAX, el carburador para el análisis de datos en Microsoft BI, el destino donde debes pasar más tiempo, etc. En conclusión, son los fundamentos teóricos obligados que tienes que leer con detalle.
    • 30. Capítulo 16: Funciones Doradas FILTER, Iteración y ALLxxxx El leguaje DAX puede ser abrumador por la cantidad impresionante y en constante crecimiento de funciones que nos brinda, en este capítulo, extraemos las imprescindible, las funciones doradas que te permitirán ejecutar un amplio abanico de tareas. Capítulo 17: Propagación de Filtros al Desnudo Será tema de este capítulo comprender como funciona las relaciones declarativas que existen en las tablas del modelo de datos: cómo se comunican, cómo se afectan y las reglas que debes acatar para nos mostrar valores anómalos. Capítulo 18: La Crema y Nata de las Funciones CALCULATE Este capítulo empieza así; “Una función para gobernarlas a todas. Una función para encontrar todas las respuestas, una función para utilizarlas en un mismo lugar y atarlos en un mismo ambiente. La función única, CALCULATE, no es siniestra sino más bien todo lo contrario: el verdadero poder” tal vez, el capítulo más importante de la parte 2. Capítulo 19: Indicadores y Métricas de Razones y Proporciones En el catálogo de cálculos que se encuentra una analista en el día a día está el % de participación y todas sus variantes, es decir, porcentaje del total general, porcentaje del total de columna y porcentaje de total de fila. Este capítulo recorre las expresiones DAX para cada una y la manera más flexible de crearlas. Capítulo 20: Indicadores y Métricas de Inteligencia de Tiempo Un capítulo, cómo lo ponemos: “gordo”, está cargado con todo lo necesario para añadir en nuestro modelo de datos las tablas necesarias para segmentar por fechas y prácticamente cualquier sistema de tiempo, a ello súmesele un tour por las funciones para crear indicadores de tipo: YTD, PY, PY Total, MAT, entre otros.
    • 31. PARTE III: Visualización de Datos y Objetos Visuales (Power BI) Capítulo 21: Introducción a Objetos Visuales en Power BI No podemos ser ciegos a la realidad, los gráficos e interactividad de las visualizaciones en Excel se quedan cortos, por esto en este capítulo te invitamos a que conozcas los fundamentos de los objetos visuales en Power BI puesto que en este sentido te dará lo necesario para descrestar con tus presentaciones. Capítulo 22: Gráficos de Comparación Una de las tareas más comunes en el análisis y visualización de datos es: la comparación entre categorías, periodos de tiempo e incluso variables, ya que nos permite contrastar resultados para entender lo que está sucediendo en un escenario en particular, este capítulo trata uno y cada uno de ellos. Capítulo 23: Gráficos de Tendencia Los gráficos para ver datos a través del tiempo y hacer comparaciones con esta variable como centro de atención principal es el objetivo de este capítulo. Capítulo 24: Gráficos Geográficos En este capítulo se ven aquellas visualizaciones para geolocalizar, pero sobre todo y ante todo te invitamos a abrazar los Mapas ArcGIS, puesto que es posible agregar capas de referencia, modificar el tema por un catálogo más extenso, ver tiempos de recorrido e incluso tomar datos públicos para verlos junto con nuestro modelo. Capítulo 25: Gráficos de Segmentación Algo que no se puede negar de Power BI es que es dinámico e interactivo hasta la médula, de hecho, las segmentaciones de datos ofrecen la posibilidad de cambiar la perspectiva del reporte con un objeto visual de fácil configuración, en este capítulo se detalla.
    • 32. Capítulo 26: Matriz y Tablas Este capítulo explica dos objetos visuales nativos de Power BI para mostrar datos detallados, es decir, en tablas y matrices. La matriz es el hermano gemelo de una tabla dinámica de Excel por lo que este capítulo te ayudará sentirte más cómodo si eres un usuario de tablas dinámicas intermedio y estas sembrando tus primeros pinitos en Power BI. Capítulo 27: Gráficos Personalizados Si hay algo que hace que Power BI despunte como líder en inteligencia de negocios en contraste con otras tecnologías a parte de su capacidad de preparación de datos y proceso ETL, es la creación de gráficos personalizados y utilización de un catálogo creciente a paso galopante y firme. Capítulo 28: Diseño Apropiado de Gráficos Las buenas prácticas de diseño para presentación de gráficos que trasmitan de la mejor manera la información de los datos es el tema de este capítulo. Capítulo 29: Configuración de Reporte Este libro esta divido en tres grandes partes, cada una agrupa una serie de capítulos de acuerdo con la etapa del proceso BI, cada parte hará el desarrollo de su respectiva temática en un programa en particular. Sin importar si tienes un conocimiento básico de Excel, si eres un programador de VBA avanzado o si más bien no tienes idea de Power BI o has hecho ya un recorrido por él; el presente texto te aportará las herramientas básicas y avanzado para extraer información valiosa de los datos.
    • 33. Tomate un minuto para escanear esta sección para conocer los recuadros que le dan vida a las explicaciones, y otros elementos visuales que buscan que el viaje sea lo más enriquecedor posible. ▪ Nota: Este recuadro invita a tomar nota, es decir, a tener en plena consideración lo que allí se describe, pues son puntos claves para el manejo y sentirse cómodo con el tema y sus aplicaciones por parte del lector en el futuro. ▪ Definición o Aclaración: Este recuadro resalta un concepto o definición de vital importancia para compresión plena de la temática, también, los encontraras para clarificar puntos críticos. ▪ ¡Advertencia!: Señalan posibles obstáculos que puedes encontrar. Presta atención, te alertan de problemas que de otra manera te podría tomar horas . Nota. Los pasos aplicados en la consulta se ordenan a medida que se va realizando la limpieza, puedes ir dando clic de principio a fin a cada uno de los pasos y los datos va mostrando los cambios que ya se ha realizado, debes tener muy en cuenta si vas a crear un paso nuevo estar ubicado en el último paso, a no ser que quieras crear un paso intermedio. Cálculos DAX Los Cálculos DAX componen la Escalera Real en nuestra mano de póquer BI para doblegar los datos para que nos entreguen la información necesaria en el momento oportuno. ¡Advertencia! Debes estar conectado a Internet para que los Mapas funcionen correctamente, de otra manera, no se visualizan los datos.
    • 34. Aunque este libro está concebido como un todo y cada capítulo es parte de un objetivo global: Tomar los datos de ayer y hoy para tomar mejores decisiones mañana. Está más que claro que este libro esta divido en tres partes. ▪ Preparación de Datos ▪ Análisis de Datos ▪ Visualización de Datos Si el lector le urge aprender a crear métricas e indicadores para analizar datos, puede arrancar con la Parte II sin ningún problema, no obstante, si tu rutina diaria te demanda arreglara y prepara tablas, recorre cada capítulo de la Parte I: de preparación de datos es perfectamente válido, del mismo modo, si desea conocer en primera instancia sobre visualización de datos la Parte III es tu punto de partida. Los archivos que se trabajan en este libro vienen en dos categorías, al adquirir una copia de este libro también tendrás a tu disposición un zip que al descomprimirlo te proporcionará dos carpetas: ▪ Disproductos: Esta carpeta tiene las tablas: Pedidos, CategoriaDeProductos, SKUProductos y Descuentos. ▪ Capítulo a Capítulo: Una carpeta con subcarpetas capítulo a capítulo donde tendrás el material para el desarrollo de cada uno de ellos.
    • 35. El presente libro lo hemos creado con mucho cariño, dedicación y, sobre todo: dejando la piel en la cancha, para así brindarte lo mejor. No obstante, minimizar a cero errores e inconvenientes de un libro de esta envergadura es una tarea compleja y de aproximaciones sucesivas. – Programa de Actualización de Contenido: Por lo anterior este libro cuenta con algo llamado: Programa de Actualización de Contenido, es decir, que haremos correcciones y mejoras a este texto a lo largo del tiempo para así mejorarlo y perfeccionarlo constantemente como un compromiso de los autores para dotarte con la mejor referencia de inteligencia de negocios utilizando Excel y Power BI en habla hispana. Al adquirir este libro quedas registrado automáticamente en nuestra base de datos, por lo que al momento de ocurrir una actualización te llegará un correo con todas las instrucciones sin ningún costo adicional – Distribuciones: Estas actualizaciones o versiones mejoradas del libro digital las llamaos Distribuciones y puedes identificar a cuál corresponde en la página cinco del PDF en la parte inferior.
    • 36. – Feedback: Tu como el lector de este libro eres uno de los críticos más valioso, por esto es muy importante para nosotros escuchar de su parte cualquier opinión, critica, corrección, sugerencia, mejoras, ilustraciones, consejos, complementos, anomalías etc. En cuyo caso puede escribirnos al cualquiera al siguiente correo electrónico: ▪ E-mail 1: excelfreebymcs@gmail.com ▪ E-mail 2: didier.morales87@gmail.com ▪ E-mail 3: fabian.torrres.h@outlook.com También te invitamos a que te unas al grupo abierto en Facebook Enciclopedia Power BI: ▪ Grupo en Facebook: https://www.facebook.com/groups/149226925872805/ Allí podremos compartir y ayudarnos entre todos.
    • 39. EN ESTA PARTE Capítulo 1 Introducción a Power Query (Proceso ETL) Capítulo 2 Paseo por la interfaz de Power Query Capítulo 3 Extrayendo datos de múltiples orígenes Capítulo 4 Integración de datos Capítulo 5 Reordenación avanzada de datos Capítulo 6 Manejo de Consultas Capítulo 7 Inteligencia de negocios con fechas Capítulo 8 Introducción al lenguaje M Capítulo 9 Casos prácticos con Power Query En esta primera parte aprenderás todo lo necesario para la extracción, transformación y carga de datos, ya que es el proceso inicial para la inteligencia de negocios, todo lo relacionado con la higiene y limpieza de datos, listos para ser procesados, analizados y visualizados
    • 40.
    • 41. CAPÍTULO 1 Después de este capítulo tú sabrás: ▪ ¿Qué es Power Query? ▪ El proceso ETL ▪ Versiones de Power Query Una de las grandes herramientas para la inteligencia de negocios es Power Query que su definición en español es consulta de poder, es decir, es el inicio del proceso Bi (Business Intelligence) el origen de todo parte en esta herramienta. Power Query es la revolución para la limpieza de datos, si alguna vez has usado Excel para realizar un cálculo, una gráfica o un informe en especial sabemos que te has encontrado con dificultades porque los datos no están como tú quieres o como deberían estar, pues bien, te queremos contar y asegurar que nunca habíamos encontrado una herramienta con tanto poder para la solución a tus problemas a la hora de trabajar con datos, es como hoy en día tener oro en tu casa pero que no sabes en que parte esta, lo mismo pasa con Power Query muchos aún saben que existe pero no saben dónde está o tal vez ni has escuchado de él. Es imposible para nosotros quedarnos con tanto potencial en nuestras mentes, por eso queremos compartir contigo todo el conocimiento, habilidades y experiencias que durante muchos años hemos desarrollado para este momento, ya que esta herramienta como este libro te va a dar un gran impulso al futuro y competencia única en tu vida profesional y empresarial, si eres un usuario de Excel básico o avanzado ten la certeza de lo mucho que vas a aprender, aún si has manejado otras herramientas ofimáticas y de estadística.
    • 42. Para entrar en contexto sobre Power Query y el eje central de la herramienta es la manera en que muele u organiza los datos, ya sean estructurados o no estructurados, si eres de los que te has encontrado con varios archivos de Excel y necesitas realizar un informe consolidado y esto te toma demasiado tiempo y lo peor aún es una tarea repetitiva y periódica y cada semana o cada mes es el mismo proceso, esta es la buena noticia, Power Query llegó para salvarte la vida, o si necesitas hacer un cruce de información en la cual tienes varias tablas o hacer relaciones entre ellas y te tocó aprender la funciones de búsqueda como BUSCARV o aún no las dominas, te tengo otra súper noticia, estas apunto de encontrar oro en tu casa y en los casos más comunes que siempre te toca realizar el mismo proceso con tus datos, hacer limpiezas, ordenarlos, eliminar y añadir filas y columnas y cuanto truco y manejo estas acostumbrado y esto te quita horas de trabajo y en casos hasta semanas, llegó tu libertad !!!. Nuestra filosofía es que tengas más tiempo para analizar y menos para procesar. Todo esto es lo que se denomina proceso ETL (Extract, Transform, Load). Extracción, Transformación y Carga. En esta parte se extrae toda la información requerida para nuestro proceso, se pueden extraer datos de diferentes orígenes, ya sean desde: ▪ Archivos txt o CSV ▪ Libros de Excel ▪ Bases de datos ▪ Páginas Web ▪ Redes sociales ▪ Servicios en la nube ▪ Correos electrónicos
    • 43. Es la parte que le corresponde limpiar los datos, toda la higiene y transformación para que tus datos estén de la forma adecuada y rápida para ser analizados y visualizados se encuentra en este proceso, si trabajas con archivos de Excel o extrae datos de otro tipo de fuentes, te has dado cuenta de que por lo general no llegan como debería estar o siempre falta anexar o eliminar columnas, filas o en ciertos casos hacer cruces con otro tipo de información, realizando cálculos u ordenando fechas o demás tipos de datos para el buen manejo de la información. Pues bien, este ítem es uno de los más relevantes en el proceso ETL, acá interactuamos con toda la interfaz de Power Query, pestañas, comandos, funcionalidades y sobre todo lo más importante el Lenguaje M el motor de Power Query el cual explicaremos en el capítulo 8. Luego de haber transformado los datos y tenerlos listos para nuestro objetivo final que es la presentación de informes y la meta del proceso ETL es tener los datos en formato tabulado lo cual explicaremos en capitulo posteriores procedemos a la carga de datos lo cual tiene varios tipos de carga en: ▪ Tabla ▪ Informe de tabla dinámica ▪ Gráfico dinámico ▪ Crear solo conexión ▪ Agregar estos datos al modelo de datos
    • 44. Tabla: Es la carga más común de todas la cual nos tira los datos en un formato tabla, en Excel es lo que se conoce como insertar tabla (no tabla dinámica) y los datos quedan anclados a una estructura de filas y columnas. Informe de tabla dinámica: Si se cargan los datos en esta opción de una vez se abre la herramienta de tablas dinámicas para ser manipulada y pivotear los datos según nuestro tipo de informe deseado. Gráfico dinámico: Ya los datos se muestran de forma gráfica, es decir, ya la visualización no es de números y textos sino de barras, columnas, círculos y líneas según el tipo de gráfico que se escoja, solo es cuestión de arrastrar los campos necesarios para el gráfico. Crear solo conexión: Esta es una de las grandes bondades con las que contamos en Power Query, el tipo de cargas anteriores necesariamente necesitas tener los datos o los campos para poder mostrar el informe final, con esta opción los datos quedan colgados en una especie de nube interna o como consulta para ser usados en cualquier momento sin necesidad de estar visible, y lo mejor te consume menos peso en tus archivos. Agregar estos datos al modelo de datos: Esta opción es única y exclusivamente si se está trabajando con Power Pivot o se va iniciar un modelo de datos pero reiterando que las tablas o los datos que se agregan a la herramienta Power Pivot. Nota. Este tipo de opciones de carga de datos son únicos y exclusivos para Excel, ya que para Power BI no hay esta posibilidad de escoger como queremos cargar los datos
    • 45. Power Query viene funcionando desde el año 2010, por ende, no funciona en versiones anteriores, aunque cabe recalcar que todo lo que se está enseñando está escrito en office 2016, para las versiones 2010 y 2013 sus funcionalidades son casi todas iguales. Power Query es una herramienta extra de Excel, que bien dicho es la revolución para la limpieza de datos, según la versión que tú tengas de Excel viene incorporada o no, para las versiones 2010 y 2013 se debe ir a Google y digitar: Descargar Power Query para Excel 2010 o 2013 según sea el caso y queda como una pestaña más: Para la versión 2016 ya viene en la pestaña Datos en el grupo Obtener y transformar Para Power BI también viene incorporado en Inicio en el grupo Datos externos
    • 46. CAPÍTULO 2 Después de este capítulo tú sabrás: ▪ Conceptos básicos ▪ Ingresar a Power Query desde Excel y Power BI ▪ Identificar cada uno de los elementos, funciones y objetos de la herramienta Power Query como cualquier otra herramienta tiene su propia interfaz en la cual exploraremos en este capítulo, es muy intuitiva lo que nos permite identificar rápidamente la posición y ubicación de sus iconos, componentes y demás, también es importante entender los conceptos básicos que se manejaran durante todo el aprendizaje ¿Qué es una consulta? Una consulta (Query) es un bloque de datos listos para ser transformados y llevados a formato tabular Formato Tabular Son los datos convertidos en filas y columnas de manera organizada, es decir, una tabla de datos fácil de identificar, sin campos con errores, ni filas y columnas en blanco, sin subtotales ni totales, son datos listos para ser transformados y visualizados, toda una materia prima lista para el horno
    • 47. Para ingresar a Power Query solo es abrir un libro nuevo de Excel, ir a la pestaña Datos, al grupo Obtener y transformar datos y luego clic en obtener datos. Al dar clic en obtener datos vemos un menú desplegable el cual nos da la posibilidad de conectarnos a múltiples fuentes de datos, para este capítulo vamos a entrar a una consulta en blanco ya que solo nos compete dar un paseo por la interfaz, en el siguiente capítulo profundizaremos en los diferentes orígenes de datos para cargar en la interfaz de Power Query. En obtener datos nos deslizamos Desde otras fuentes y damos clic al final en Consulta en blanco, tal como se muestra en la siguiente figura:
    • 48. Estando en el editor de Power Query procedemos a dar un paseo por cada uno de sus comandos, la cual tiene funcionalidades como Excel u otra plataforma, pero a diferencia de esta, es que no tiene celdas, es decir, no se hacen referencias a celdas sino a columnas y filas y tablas como tal, veamos: 1 3 2 4 5
    • 49. Esta es la ventana de Power Query en Excel, a continuación, vamos a explicar su interfaz: 1. La cinta de opciones: Son las pestañas donde se encuentran todas las funcionalidades para la limpieza y transformación de datos, también podemos agregar columnas personalizadas, es donde el Lenguaje M juega un papel importante, adicional podemos ver el editor avanzado (vista) y la configuración de la consulta, orígenes y demás. 2. Listado de consultas: En esta parte encontramos las consultas que hemos realizado en el mismo libro de Excel 3. Barra de Fórmulas: Igual que Excel, Power Query tiene la barra fórmulas y en esta podemos ver la programación que arroja cada paso, es decir, lo que venimos llamando Lenguaje M 4. Configuración de Consulta: Las propiedades y los pasos aplicados se encuentran en esta parte, es muy relevante entenderla ya que en las propiedades podemos cambiar el nombre de la consulta y en los pasos aplicados es el paso a paso que se va generando cada vez que hacemos cambios, limpiezas o modificaciones a los datos, es una especie de grabadora muy similar a la grabadora de macros de Excel, va creando un código cada que encuentra cambios en la manipulación de los datos. 5. Área de resultados: Los resultados de cada consulta se van viendo reflejados en esta área, tanto la consulta inicial como la consulta transformada Para ingresar a Power Query desde la interfaz de Power BI, debemos abrir Power Bi Desktop, como vimos en la figura 1.3, en Inicio en el grupo Datos externos damos clic en Obtener datos, Consulta en blanco. Power BI Desktop es una de las herramientas de inteligencia de negocios, que se descarga totalmente gratis, en el capítulo 11 veremos el paso para descargar y sus bondades.
    • 50. Lo mismo que Power Query en Excel tiene múltiples opciones para realizar consultas de diversas fuentes de datos, para este caso vamos a realizar una consulta en blanco para entrar directamente al editor de consulta de Power Query en Power BI Como se puede observar la interfaz es muy idéntica a la interfaz en Excel, uno de los pequeños cambios está en la parte de Inicio Cerrar y Cargar para Excel y Cerrar y aplicar para Power BI, explicados en el capítulo 1 en los diferentes tipos de carga
    • 51. Nota. La diferencia entre Power Query en Excel y Power Query en Power BI solo está en la manera de cerrar y cargar los datos, todo lo demás tiene las mismas características y funcionalidades, por ende, todo el proceso ETL que vamos a explicar se realizará en Excel ya que la manera de cerrar y cargar los datos nos va a permitir ver diferentes escenarios, pero recuerde tienen la misma funcionalidad
    • 52.
    • 53. CAPÍTULO 3 Después de este capítulo tú sabrás: ▪ Traer datos desde un archivo de texto o formato CSV ▪ Conectarse con los datos de un libro de Excel, tabla o rango ▪ Consolidar varias hojas de un mismo libro ▪ Crear una base de datos de varios libros, con anexo automáticos ▪ Extraer datos de la web ▪ Realizar consultas a bases de datos ▪ Extraer datos del correo A diario nos vemos en la tarea de extraer datos de diferentes fuentes de información, pero no es desconocido que dichos datos no están en el formato adecuado o de forma tal que puedan ser usados para la presentación o informe final, o si eres de los que periódicamente trabajas con muchos datos al mismo tiempo de múltiples tablas, libros o bases de datos y aún no tienes este proceso automatizado, porque siempre te toca hacer la misma consolidación, agrupación, cálculos o limpiezas, en este capítulo encontraras el oro que tanto has deseado. Los archivos de texto o CSV son muy conocidos ya que por muchos datos que contengan dichos archivos su peso es mínimo, por ende, empresas o páginas web los usan para que su manipulación sea mucho mejor, pero estos tipos de archivos necesitan ser llevados a una hoja de cálculo como Excel o a herramientas de inteligencia de negocios como Power BI para ser procesados, analizados y graficados.
    • 54. Extraer Datos de un archivo txt Procedamos; abrimos un libro de Excel nuevo y vamos a la pestaña Datos, al grupo Obtener y transformar datos (recuerda que estamos trabajando en la versión 2016 de Excel), y damos clic Desde el texto/CSV tal como se muestra en la siguiente figura: Al dar clic en la en la pestaña indicada nos abre una ventana de cuadro de dialogo la cual nos está indicando en que ruta está el archivo que se quiere cargar, busca la carpeta del Capítulo 3 y selecciona el archivo de texto nombrado Producción_1999.txt y clic en importar. Cuando encontramos la carpeta del Capítulo 3 se muestran solo los archivos con extensión txt o CSV, seleccionamos el archivo Producción_1999.txt y damos clic en importar.
    • 55. La figura 3.3 es el cuadro de dialogo preliminar a la carga de datos y la entrada hacia la interfaz de Power Query, siempre que deseemos extraer datos desde cualquier fuente externa este cuadro nos va salir, así que durante el libro siempre le vamos a dar Editar, ya que todo el proceso ETL se realiza dentro de la interfaz de Power Query, este cuadro preliminar es más un aviso solo si los datos ya están ordenados o de la manera que deseamos, si esto sucede aunque no es muy común solo le damos en Cargar, de lo contrario vamos a dar clic en Editar.
    • 56. Como vimos anteriormente la interfaz de Power Query en la figura 2.3, en este caso ya tenemos cargados los datos de una forma tabulada, es decir, separado por filas y columnas y cada columna tiene su respectivo encabezado y el formato adecuado, si es número, texto o fecha. ¿Pero cómo Power Query de manera automática me identifico los tipos de datos y me los organizo de la manera correcta?, pues bien esta es una de las grandes bondades que posee esta herramienta, la identificación de datos y el ordenamiento de ellos, sé que te estas preguntando pero no siempre es así, ya lo habíamos mencionado al inicio del libro, en capítulos posteriores estudiaremos casos puntuales que Power Query no puede identificar, pero no hay lío todo tiene solución con esta potente herramienta. En la parte derecha de la figura 3.4 vemos que hay unos pasos aplicados por defecto, aún no hemos entrado a realizar ningún cambio y Power Query ya de entrada organizo los datos, entremos un poco en detalle.
    • 57. Estos son los pasos aplicados que por defecto realizó Power Query para organizar los datos, si hacemos clic en cada uno de ellos va mostrando la evolución del proceso que realizó Power Query después de haber cargado los datos, veamos: La figura 3.6 muestra el origen de cómo se encontraban los datos, los nombres de las columnas tienen un consecutivo de Columna 1, Columna 2……, aún no tienen sus encabezados correctos ni el tipo de dato (número, texto o fecha). Debemos dar clic en el siguiente paso “Encabezados promovidos”.
    • 58. Ya en este paso los encabezados tienen el nombre correcto, pero bien todas las columnas están como formato texto (ABC), lo que se necesita darle el formato adecuado según el tipo de dato, Power Query de manera automática crea el tercer paso “Tipo cambiado” y le da el formato que el cree adecuado para cada columna. ¡En este tercer paso ya los encabezados y el tipo de dato están correctamente! La pregunta del millón: Si Power Query no realiza este promovido de encabezado y por aún motivado no identifica los tipos de datos, ¿Cómo hacemos esto? En la figura 3.8 en cada paso aplicado excepto el de origen cada que nos ubicamos en ellos tienen una x al inicio, lo que indica que dichos pasos los podemos eliminar en caso tal que Power Query no realizó bien la limpieza. Eliminemos los dos últimos pasos (Encabezados promovidos y Tipo cambiado) y la consulta queda como se muestra en la figura 3.6. Ahora vamos a realizar cada uno de estos pasos para que veas como funciona: ▪ Cinta de opciones Transformar ▪ En el grupo Tabla ▪ Clic en Usar la primera fila como encabezado
    • 59. Con ese par de clic realizamos los pasos que por defecto al inicio Power Query ya había ejecutado, pero no termina todo, los pasos aplicados ya habíamos hecho énfasis en el Capítulo 2 que funciona como un tipo de grabadora, va guardando cada una de las acciones realizadas por el usuario, es decir, si queremos cambiar un tipo de dato, por otro formato, o eliminar o añadir columnas, todos estos pasos se van aplicando. ▪ Seleccionemos la columna Bodega ▪ Clic derecho encima del encabezado Quitar
    • 60. Al adicionar este paso la columna Bodega ya no está y en el panel de Pasos aplicados no se agrega un nuevo ítem llamado Columnas quitadas. Ya la columna Bodega no se encuentra y hay un paso nuevo, Power Query agrega los pasos con nombres que tiene en su diccionario de pasos o según lo que se ejecute, estos pasos los podemos personalizar, ya que en este archivo no tenemos inconveniente ya que hemos acabado la tarea de limpiar y transformar los datos para luego llevarlos al Excel o a Power BI, pero en ocasiones vas a tener que realizar un proceso ETL mayor y el panel de pasos aplicados cada vez se te va ir llenando, es bueno que te acostumbres a cambiar el nombre de los pasos aplicado, o al menos a los pasos que hiciste en el proceso más relevante.
    • 61. ▪ Selecciona el paso Columnas quitadas ▪ Clic derecho encima de la selección ▪ Cambiar nombre ▪ Editamos el nombre Bodega eliminada Ya tenemos nuestros datos listos para ser cargados a Excel o Power BI, vamos a Inicio Cerrar y Cargar:
    • 62. Si escogemos la primera opción, inmediatamente nos arroja los datos a formato tabla de Excel, la segunda nos permite escoger si queremos cargar los datos en diferentes escenarios, tal como se explicó en la introducción de esta primera parte del libro: El escenario más común es el modo de carga Tabla ya que nos arroja los datos para revisar, filtrar y auditar de manera más rápida.
    • 63. Ya tienes todo un conjunto de datos listo para ser usados en cualquier informe. En la parte derecha de Excel puedes ver la consulta que se creó con el número de filas y el nombre de la consulta, el cual adopta el nombre del archivo inicial txt, en caso de que desees cambiar el nombre solo es dar clic derecha encima de la consulta y cambiar nombre. Espero que hasta este momento todo valla de maravilla, como ves no es para nada difícil empezar a interactuar con Power Query, o si ya eres un usuario de Excel avanzado sé que estás pensando, pues esto mismo lo realizaba, pero con otro método y de manera más rápida, si tienes razón, ¡pero aún no te he contado el boom! de todo esto. Este proceso que acabamos de realizar es lo que llamamos ETL, pues extraemos los datos, los transformamos y luego los cargamos, pero lo mejor de todo es que cuando te llegue el nuevo archivo txt de Producción 1999 solo es guardar como, reemplazar el anterior archivo por el nuevo y vas al Excel y clic derecho en la tabla Actualizar y cada paso que aplicamos en Power Query va a ejecutarse uno a uno hasta llegar a esta tabla de datos en solo un par de segundos.
    • 64. Este es uno de los métodos para actualizar las consultas, la otra opción es ir a la consulta como se muestra en la figura 3.16 seleccionarla y dar clic derecho actualizar, o directamente en la cinta de opciones de Excel, Datos, y Actualizar todo. Extraer Datos de un archivo CSV CSV (Comma, Separated, Value), valores separados por comas, son archivos que usan para disminuir el peso, ya que no guarda fórmulas, es un archivo plano. Vamos a repetir los mismos pasos que realizamos para extraer datos de un txt: abrimos un libro de Excel nuevo y vamos a la pestaña Datos, al grupo Obtener y transformar datos y damos clic Desde el texto/CSV. Buscamos en la carpeta el Capítulo 3, seleccionamos el archivo llamado “Producción_2015” y clic en importar, el cuadro de dialogo que se abre como habíamos reiterado le vamos a dar Editar, ahora si estamos en la interfaz de Power Query: ¡Advertencia! Como es un proceso automatizado, por múltiples razones que serán explicadas en capítulos posteriores no se puede cambiar el nombre del archivo “Producción_1999” ni cambiarle la ruta, es decir, moverlo de carpeta o cambiar el nombre de la carpeta, ya que cuando se realizó la consulta inicialmente Power Query toma esto como un enlace y cada que se actualice la consulta, va y busca en dicha dirección, carpeta y nombre de archivo para aplicar los pasos ya explicados.
    • 65. A diferencia de la consulta anterior, ya los datos no están en el formato tabular, es el objetivo de Power Query, tener datos limpios listos para ser analizados. Ya las columnas no tienen el nombre adecuado, adicional vemos que los datos deben ser transpuestos, es decir, cambiar filas a columnas y viceversa y por ende Power Query no identifica el tipo de dato y todas las columnas las deja en formato texto, esta transformación la veremos en capítulo 5, donde veremos una reordenación avanzada de datos. Por el momento vamos a cerrar y cargar los datos, y vemos que de la misma manera que se cargan los datos como archivo txt se extrae los datos de un archivo CSV. Si necesitamos realizar una consulta en Power Query y los datos los tenemos en una tabla o simplemente un rango de datos en el mismo libro de Excel, simplemente es abrir el archivo con dicha información, ubicarnos en cualquier celda dentro de los datos y seguimos los siguientes pasos: ▪ Abrir el archivo “Ventas Por País 1” descargado en la carpeta Capítulo 3 ▪ Pestaña Datos en el grupo Obtener y transformar datos ▪ Clic desde una tabla o rango
    • 66. Sin importar si los datos están en formato tabla, al crear la consulta automáticamente los datos los convierte a dicho formato, nos muestra un cuadro de diálogo preguntando si el rango de datos esta correcto y si la tabla posee encabezados, es el mismo proceso que pregunta si nos vamos por la pestaña Insertar tabla.
    • 67. Damos clic en Aceptar y de inmediato nos abre el editor de consultas de Power Query, listo para realizar el proceso ETL a los datos. Los datos se ven que no presentan algún problema, ya que Power Query pudo identificar de manera correcta los datos con sus respectivos encabezados. Antes de cerrar y cargar en la configuración de consultas cambiemos el nombre de Tabla 1, por Ventas Colombia. Ahora si damos clic en Cerrar y cargar ¡Advertencia! Cuando se esté trabajando en el editor o interfaz de Power Query NO se puede abrir o desplazarse a ningún otro libro de Excel, incluso ni el mismo libro en que se está realizando la consulta, se puede mostrar hasta que no hallamos cerrado Power Query
    • 68. Aspectos por resaltar Power Query creo otra hoja llamada “Hoja 1”, es decir, que los datos quedaron duplicados, la base original que estaba en la Hoja “Colombia” y los datos que arroja Power Query como resultado de la nueva consulta. ¿Tiene esto sentido?, te digo la verdad, en el momento no, ya que no hicimos ninguna transformación a los datos, pero más adelante, este tipo de consultas desde una tabla o rango nos va a servir a la hora de anexar, combinar y trabajar con otras consultas en conjunto. Verificamos que el nombre de la consulta si se cambió por “Ventas Colombia” y si notamos en la fila número 20 tenemos celdas en blanco, ¿Qué sucede con esto? Al realizar una tabla dinámica o realizar operaciones entre fecha nos puede traer error ya que una celda en blanco no la reconoce como fecha o cantidad, recuerda es diferente una celda en blanco a tener valor cero. Vamos a quitar estas celdas o filas en blanco para no tener errores o dolores de cabeza a futuro, volvamos al editor de Power Query y eliminemos estas filas en blanco. ▪ Seleccionamos la consulta que se encuentra en la parte derecha de Excel ▪ Clic derecho editar
    • 69. Otra forma de editar las consultas o volver al editor de Power Query es si estoy ubicado dentro de la tabla nos vamos a la pestaña Consulta y Editar. Estando en el editor de consultas, nos dirigimos a la columna Fecha y tal cual como funciona en Excel hacemos el despliegue del filtro y deseleccionamos el valor que dice null Nota Los campos o filas en blanco, Power Query los identifica y los renombra como null, nunca vas a encontrar campos en blanco
    • 70. Al dar clic en aceptar en el cuadro de pasos aplicados se agrega Filas filtradas, lo estudiado en pasos anteriores, siempre que haya una celda o dato en blanco no lo va a tomar dicha columna por el filtrado ya indicado. Vamos a Inicio Cerrar y cargar y observamos que dichas filas en blanco no se encuentran en nuestra tabla de datos. Este caso sé qué te parece más familiar, en ocasiones te has encontrado que en un mismo libro de Excel contiene varias hojas con información cada una de ellas, Periódicamente te toca unificar dichas hojas para realizar un informe consolidado por país, año, mes y cuanto detalle contenga la información. Este proceso puede tomarte algún tiempo y cuanto truco y habilidad tienes realizas el informe, pero este no es peor escenario, imagínate ya haber terminado tu informe, y debes anexar una hoja nueva o varias hojas de más, ¡en esta escena es donde entra la revolución de los datos con
    • 71. Power Query y boom! Nunca pensaste hacer consolidación de hojas de la manera tan sencilla y automática, aún si programas macros en Excel o sabes mucho de fórmulas esto va a cambiar tu rutina de ahora en adelante. De nuevo vallamos a la carpeta Capitulo 3 y tomemos el libro llamado “Ventas Por País 2”, este libro tiene 4 hojas de los países Colombia, Argentina, Perú y Chile, cada uno de ellos tiene la información en formato tabla, lo que ya habíamos hablado anteriormente, pero Chile no tiene formato tabla, pero tiene algo en particular, el rango de datos esta definido por un nombre personalizado, veamos. En la pestaña Fórmulas, Administrador de nombres, el cuadro de diálogo enseña que todos los países están en formato tabla excepto Chile, lo más recomendado es que todas las hojas se
    • 72. encuentren en formato tabla para no tener problemas con nuestra consolidación. Entremos en materia: ▪ Nos ubicamos en cualquier hoja de Excel ▪ Vamos a la pestaña Datos -> Obtener y transformar datos -> Obtener datos y hacemos el despliegue ▪ Seleccionamos desde otras fuentes consulta en blanco, tal como se describió el proceso en la figura 2.4 del Capítulo 2 ▪ Ya estamos en el editor de Power Query En la barra de fórmulas vamos a aplicar la siguiente función: =Excel.CurrentWorkbook() Damos enter, y al ejecutar la función nos trae todo las tablas y rangos que encuentre dentro del libro de Excel ¡Advertencia! Power Query es muy sensible al definir las funciones, es decir, a diferencia de Excel que permite minúsculas y mayúsculas, en Power Query hasta el momento no funciona así, se debe escribir tal cual se indicó, la palabra Excel debe la primera letra en mayúscula y la palabra Current y Work de la misma forma, todo lo demás en minúscula
    • 73. La figura 3.29 claramente muestra las tablas y rangos que hay dentro del archivo de Excel, las dos columnas que vemos son Content y Name, la primera en vez de tener un filtro tiene dos fechas en sentido contrario lo que significa que se puede realizar una expansión y sus filas tiene la palabra Table, no es un dato normal, sino que hace referencia a una cantidad de datos, que va ser el resultado si expandimos dicho campo, el campo Name tiene el nombre de las tabla o rangos como está en la figura 3.27. También vemos que hay un error en la fila 4, tiene que ver con el rango Chile, mencionado anteriormente, este tipo de definiciones de rango nos puede traer problemas. Vamos a comprobarlo: ▪ Damos clic en el campo Content en expansión de flechas
    • 74. El cuadro de diálogo muestra las columnas o campos que contiene cada tabla, se debe deshabilitar el cuadro Usar el nombre de columna original como prefijo, para que los encabezados de las columnas queden con el nombre original y no con un prefijo, ejemplo: Content VENDEDOR, Content FECHA…. Damos aceptar y vemos en la siguiente figura la apertura de los datos.
    • 75. Vemos que no se registró ningún error, pero si vamos a la pestaña Inicio->Cerrar y cargar Y sucede lo inesperado Un error que no deja cargar los datos informa que no se encontró una tabla de Excel denominada ‘Chile’, y tiene razón, ya que Chile no está en formato tabla. Damos clic en Aceptar y luego vamos a editar la consulta, seleccionamos la consulta -> clic derecho editar Estando en el editor de Power Query vamos al panel de Pasos aplicados y eliminamos el último paso llamado “Se expandió Content” y volvemos al origen de los datos.
    • 76. ▪ Vamos al campo Name ▪ Clic en la pestaña de filtro ▪ ¡Deshabilitamos Chile y Chile! FilterDatabase
    • 77. Con este simple par de clic ya hemos organizado el error. Ahora volvemos al campo Content y expandimos la información, no olvidar deshabilitar el cuadro Usar el nombre de columna original como prefijo. La tarea ya es organizar los tipos de datos en los encabezados: ▪ Clic en la esquina derecha del campo VENDEDOR (ABC/123) y cambiamos a texto ▪ Campo FECHA, le damos un formato Fecha ▪ Campo CANTIDAD Número entero ▪ Campo Name se deja como campo texto Es importante tener los campos o encabezados en el formato adecuado, ya que a medida que vamos avanzado en este proceso vamos a entender su relevancia cuando estemos inteligencia de fechas, cruces de información o cálculos en el Lenguaje M. Ahora si tenemos nuestra consulta lista para ser arrojada en Excel, vamos a Inicio-> Cerrar y cargar. La figura siguiente muestra el número de filas que se han cargado, y si realizamos un filtro en la columna Name para verificar que se hallan cargado las 3 tablas, vemos los siguiente:
    • 78. Al realizar el filtro en el campo Name, nos encontramos con esta sorpresa: No solo hay las 3 tablas que debería cargar, adicional tenemos una llamada Hoja1!DatosExternos_1, pues bien Excel a cargado 2.066 filas según la consulta, y si sumamos las filas de Colombia, Argentina y Perú, exactamente nos da este número de registro. ¿Pero qué es entonces esta nueva hoja? Por algún motivado Power Query duplica los datos de las 3 tablas, probemos y actualicemos la consulta. Clic derecho encima de la tabla-> Actualizar
    • 79. El nombre de Hoja1!DatosExternos_1 ha cambiado por Consulta1, y el número de filas se ha duplicado, es decir, los datos se han multiplicado, pero aun así Power Query tiene una solución para esto, no hay problema, como dice un conocido narrador de Football: “Tú tranquilo”. Ingresemos al editor de consulta de Power Query y solo con un par de clic daremos la solución.
    • 80. Cuando realizamos un filtro por lo general en la visualización de los datos, no están todos, solo le damos clic en parte inferior derecha Cargar más y deseleccionamos Consulta1.
    • 81. Inicio-> Cerrar y cargar. Quedo solucionado el problema, los datos vuelven a su normalidad con las tablas necesarias. Tenemos una consulta limpia y lista para trabajar, aún falta un pequeño detalle, las 3 tablas corresponden a las 3 primeras hojas del libro, pero si queremos realizar un informe que se muestren los datos a que país corresponden, debemos cambiar el nombre de las tablas en cada una de las hojas: ▪ Vamos a cada tabla de la hoja ▪ Cinta de opciones diseño ▪ Grupo propiedades y cambiamos el nombre de la tabla
    • 82. Realizamos estos mismos pasos para para la tabla de Argentina y Perú. Nos ubicamos en la consulta que está en la Hoja 1->clic derecho-> Actualizar.
    • 83. Hasta el momento solo hemos realizado algunos pasos y clic para llegar a nuestro objetivo, unificar los datos de los 3 países y si en cada hoja se ingresa más filas o columnas, al actualizar la consulta los datos de manera automática se ingresan a la hoja consolidada. Pero te debes estar preguntando ¿Qué pasa con Chile?, pues bien, como lo estudiamos al inicio de esta sección, debemos convertir los datos de la hoja Chile en formato tabla. ▪ Nos ubicamos en una celda de los datos de Chile ▪ Pestaña Insertar->Tabla ->Aceptar ▪ Como el nombre Chile ya existe en un rango definido, debemos nombrarlo con un carácter diferente al que ya existe en la consulta, puede ser un punto al final o un guion bajo ▪ Cambiamos el nombre de la tabla en la Pestaña Diseño->Grupo Propiedades->Chile. Actualizamos de nuevo la consulta, y esto es lo ¡sorprendente de Power Query! De nuevo encontramos oro en este gran truco, todas las hojas que se agreguen en formato tabla automáticamente se anexan los datos al consolidado final, datos listos para tu reporte final y lo mejor todo a un solo clic.
    • 84. El proceso anterior aprendimos como integrar dentro de un libro de Excel varias hojas con formato tabla y lo mejor, su automatización para cada vez que las tablas crezcan o hallan más hojas se integran de manera dinámica. En esta parte nos conectaremos de un libro de Excel a otro. Antes de empezar, vamos a abrir el libro del Capítulo 3 “Ventas_Pedidos”, para ver el estado de los datos.
    • 85. Notablemente los datos no están organizados, hay mucho que depurar (errores, filas en blanco, celdas concatenadas, texto, etc.), imagínate cuanto tiempo toma ordenar y dejar la tabla lista para ser usada, Power Query es la solución ideal para este problema. Manos a la obra: Cerramos el libro, y vamos a abrir un nuevo libro de Excel y desde ahí nos vamos a conectar a “Ventas_Pedidos”. ▪ Ir a la pestaña Datos->Obtener datos ▪ Desde un archivo ->Desde un libro Seleccionamos nuestro archivo “Ventas_Pedidos” y damos clic en importar, hay un nuevo cuadro de diálogo.
    • 86. Esta nueva ventana preliminar a la entrada de Power Query, enseña las hojas o tablas que el libro de Excel contiene, en este caso la tabla Pedidos 1 es la misma información que la hoja Pedidos, podemos elegir cualquiera de ellas, como venimos trabajando con tablas, seleccionemos Pedidos 1 y clic en editar. Ahora si estamos en el editor de consulta y tenemos trabajo que realizar
    • 87. Si realizamos una lista de los pasos que debemos realizar, es decir, es hora de aplicar el proceso ETL a dicha información, vemos que: ▪ Los encabezados están en la fila 4 ▪ Quitar filas en blanco y con errores ▪ Adecuar tipo de dato a cada columna ▪ Dividir columnas, es decir, separar números de texto o columnas que estén combinadas ▪ Y cuanta filas y columnas que no sirvan para dejar depurada la información Inicialmente solo hay 3 pasos aplicados, son los que hicimos mención al inicio de este Capítulo, cuando terminemos la limpieza este panel va estar full. Vamos a eliminar las filas con errores ▪ Pestaña Inicio->Quitar filas->Quitar errores En esta misma pestaña vamos a eliminar las 3 primeras filas y dejar los encabezados correctos: ▪ Pestaña Inicio->Quitar filas->Quitar filas superiores->3->Aceptar ▪ Pestaña Transformar->Usar la primera fila como encabezado xx
    • 88. En la pestaña Inicio->Quitar filas->Filas en blanco. Ya poco a poco se va limpiando el archivo. En la primera columna Número de Pedido -Tip de Compra, aún quedan filas por eliminar, por ejemplo, totales y filas que no siguen un comportamiento normal de esta columna. Desplegamos el filtro->Parte inferior derecha->Cargar más->Deshabilitamos los datos como totales, “xxxx” o “****” que no hacen parte del tipo de compra->Aceptar Cada vez se ve mejor, creemos que las filas ya se han limpiado si encontramos algo raro en el camino lo ajustamos, ahora vamos a dar un paseo por cada columna y hacer el proceso de higiene debido y tener listo los datos para procesar. Nota. Para Power Query es indiferente el comienzo de la limpieza, si empiezas por ordenar filas o columnas, o los tipos de datos no hay inconvenientes ya que por eso la herramienta aplica a paso como grabadora para ejecutar de la misma forma que vas realizando tú proceso.
    • 89. Dividamos el Número de Pedido del Tipo de Compra: ▪ Seleccionamos la columna->Clic derecho->Dividir Columna: Nos da dos opciones, por delimitador o número de caracteres, antes de seleccionar uno de ellos, debemos entender cómo funcionan. Con la columna seleccionada, y listos para dividir, reiteramos que se debe dar clic derecho encima del encabezado, de lo contrario no se muestra la opción de dividir columna. Número de Caracteres: Si los datos a dividir tienen un mismo tamaño, es decir, en este caso vemos que la columna tiene números y texto, y los números tienen todos un mismo largo, hablando de caracteres, se compone de 8 números. Delimitador: Si los datos a dividir tienen un carácter en común que los divide, ya sea una coma, guion o un punto y coma. La columna SKU tiene un carácter en común y es el guion, en este caso lo puedo aplicar
    • 90. Con clic derecho en cada encabezado hay una serie de opciones de acceso rápido para la limpieza de datos. Escogemos Por número de caracteres y completamos el cuadro de dialogo siguiente: Si contamos los números, cada código se compone de 8 caracteres, y debemos seleccionar. *Una vez, lo más a la izquierda posible, ya que los números se encuentran en la parte izquierda, si en vez de los números, el texto sería el objetivo, la segunda opción es la adecuada o en caso tal que se desee separar en varias columnas, cada 8 caracteres, la última opción nos hace esto. Al dar Aceptar, se divide la columna tal como la necesitamos. ▪ Clic derecho en la primera columna ->Cambiar nombre a “Número de Pedido”->Enter ▪ Clic derecho en la segunda columna->Cambiar nombre a “Tipo de Compra”->Enter La columna SKU la debemos dividir, en este caso aplicamos la separación por delimitador ▪ Clic derecho en SKU ->Dividir columna->Por delimitador. En lo posible, Power Query identifica el tipo de carácter que está delimitando la división de la columna, en este caso, lo identifico como guion. Pero puedes escoger las diferentes opciones x
    • 91. que brinda y como el paso anterior nos da las 3 opciones: Izquierda, derecha o cada que este el delimitador. Aceptar y ya tenemos de nuevo dos columnas. ▪ Clic derecho en la columna SKU.1 -> Cambiar nombre -> “SKU” ▪ Eliminamos la Columna siguiente -> Clic derecho -> Quitar Demos un pequeño vistazo a nuestros datos, cada vez va cogiendo forma. x X
    • 92. Si has hecho todo el paso a paso tal como te hemos indicado debes tener las primeras columnas como muestra la figura 3.55. La columna Precio de venta está en formato texto, Power Query no reconoció los datos como números ya que están separados por puntos, es decir, mi sistema está configurado para que los puntos sean separadores de miles y las comas de decimales, en este caso, debemos reemplazar los puntos por comas y convertir el encabezado en formato número decimal. ▪ Clic derecho en columna Precio de Venta -> Reemplazar los valores ▪ Valor que buscar “.” -> Reemplazar con “,”, tal como se muestra en la siguiente figura ▪ Al final cambiamos el formato de encabezado por Número decimal Aceptamos los reemplazos y al cambiar el formato de la columna a número decimal, inmediatamente los números cambian de posición y se alinean en la parte derecha, tal como en Excel, informando que ya son números x
    • 93. Ya vamos culminando nuestro proceso, espero hasta el momento te hallas sentido cómodo con la herramienta, si bien has notado hasta este punto, los comando y funcionalidades de Power Query son relativamente fácil de usar y aplicar solo es dar un par de clic y tus datos toman vida. Seguimos en nuestro tour por las demás columnas, vemos que, desde Unidades hasta Fecha de Llegada, los datos están relativamente bien, solo es dar clic en cada encabezado y cambiar al tipo de datos que a cada uno le corresponde: ▪ Unidades a número entero ▪ Costo del Producto, Costo de Envío y Costo Empaque a número decimal ▪ Fecha de Envío y Fecha de Llegada a formato fecha Y como muestra la figura siguiente, los datos están en el formato adecuado: La columna País, tiene mezclado letras mayúsculas con minúsculas, con un par de cli solucionamos este pequeño inconveniente ▪ Clic derecho en Campo País -> Transformar -> y nos abre un panel de opciones el cuál para este caso nos es útil -> Poner en Mayúscula Cada Palabra. Si has usado la función NOMPROPIO en Excel, esta tiene la misma funcionalidad, pero solo a un clic, lo mismo si se quiere convertir a minúscula o solo mayúscula. Por último, seleccionamos las últimas 3 columnas con CTRL sostenido y clic derecho -> Quitar
    • 94. ¡Misión cumplida! Fue todo un éxito tu limpieza, y como te informamos al principio de esta sección, si te desplazas al panel de PASOS APLICADOS, está cada vez más lleno x u
    • 95. Inicio -> Cerrar y cargar, los datos son arrojados a Excel. Revisemos Vemos que todos los datos están relativamente bien, pero la consulta nos dice que hay 4 errores, como muestra la figura 3.60. Tratar errores en Power Query Damos clic en 4 errores. Se abre el editor de consultas y nos muestra el tipo en que filas exactamente se encuentran los errores. x Nota. Los pasos aplicados en la consulta se ordenan a medida que se va realizando la limpieza, puedes ir dando clic de principio a fin a cada uno de los pasos y los datos va mostrando los cambios que ya se ha realizado, debes tener muy en cuenta si vas a crear un paso nuevo estar ubicado en el último paso, a no ser que quieras crear un paso intermedio.
    • 96. Power Query nos indica en que número de fila se encuentran los errores. Inicio -> Cerrar y Cargar El primer error está en la fila 24.892, Power Query no cuenta el encabezado, en Excel el encabezado corresponde al número 1, por ende, si el error en Power Query está en la fila 24.892, en Excel debemos revisar la fila 24.893 y así sucesivamente. Efectivamente hay unas filas en blanco y datos que no tienen nada que ver con la información. Volvamos al editor de consultas de Power Query, hay varias formas de enmendar este error, podemos filtrar por Tipo de Compra y deshabilitar los datos que nos muestra el Excel o le damos quitar las últimas 5 filas. Yo opte por realizar un filtro en la columna Tipo de Compra, y dejar habilitado, solo Normal y Devolución. Veamos. x x
    • 97. Inicio -> Cerrar y cargar, ya los errores han desaparecido, tenemos materia prima lista para ser procesada. Error en cambio de nombre o ruta del archivo Si descargas el archivo con la solución y actualizas la consulta te va a salir este error: Debemos entrar al editor de consulta de Power Query. Clic en Configuración de origen de datos –> Cambiar origen x x
    • 98. Cuando damos clic en Cambiar origen, nos abre un nuevo panel para editar la ruta o simplemente damos clic en examinar y buscamos el archivo en la ruta indicada, y todo vuelve a su normalidad. Ya puedes usar el archivo con su consulta. Lo mismo sucede si le cambias el nombre al archivo al cual te conectaste, aún si le falta un caracter, coma o espacio, debes realizar el mismo proceso de configuración de Origen de datos x
    • 99. Uno de los grandes retos como usuario de Excel o de herramientas de análisis de datos, es que no siempre los datos se encuentran todos en un mismo lugar, puede que estén en la misma carpeta, pero en diferentes archivos, en este escenario es donde cada vez más Power Query va cogiendo poder y solución a tus problemas. Si tienes 2, 3, 10 o más archivos de Excel y necesitas consolidar dicha información en una sola base de datos y que adicional cada que se elimine o agregue un archivo nuevo automáticamente los cambios se reflejen en la base consolidada. Consolidar varios archivos con una sola hoja Deseamos realizar un análisis de 16 archivos, los cuales cada uno de ellos contiene una hoja con su inventario. Abrimos un libro de Excel nuevo -> Pestaña Datos ->Obtener y transformar datos -> Obtener datos -> Desde un archivo -> Desde una carpeta -> Capítulo 3 ->Inventarios Tal como se explico en la figura 3.47 y en el cuadro de dialogo buscamos la carpeta donde se encuentran los archivos o simplemente copiamos y pegamos el enlace de la ruta de los archivos. ¡Advertencia! Para consolidar archivos desde una carpeta solo es permitido las siguientes extensiones, hasta la versión 2016: ▪ Archivos CSV ▪ Archivos xlsx, xlsm Si se quiere consolidar archivos de versiones igual o menor a 2003 NO es posible, nos trae error
    • 100. En el siguiente cuadro diálogo damos clic en Editar y tenemos el siguiente pantallazo: La primera columna es la del contenido de los datos de todos los archivos, la siguientes columnas son datos sobre los archivos: fechas de edición, fechas de creación, rutas y extensiones, por eso vemos que la columna Content no tiene filtro sino un par de flechas lo
    • 101. que representa una expansión de los datos, pero antes de dar clic allí, asegúrate de filtrar en la columna Extensión, solo los archivos que sean .xlsx, por seguridad, ya que si por error ingresan otro tipo de archivo no lo cargue a la consulta y lo omita. Luego editamos que sea igual a .xlsx y con esto evitamos posibles errores. Procedemos a expandir la columna Content, nos abre el cuadro de diálogo de combinar archivos y por defecto nos muestra el primer archivo de la carpeta. Seleccionamos ya sea la tabla o la Hoja 1 para continuar con el proceso
    • 102. Aceptamos y listo, ahora tenemos todos los 16 archivos consolidado en una sola base de datos. Hagamos algunos ajustes: ▪ En la columna Source.Name -> clic derecho -> Reemplazar los valores ->.xlsx -> Reemplazar con: dejamos el cuadro vacío. Esta columna es útil en caso de que el nombre del archivo necesitamos que valla en una columna de la base de datos ▪ Clic derecho en la misma columna -> Cambiar nombre ->” Nombre” ▪ En la columna Fecha cambiamos el formato del encabezado a Fecha Listo nuestros datos para ser exportados a Excel o recuerda también, que pueden ser procesado para Power BI (Es el mismo procedimiento).
    • 103. Inicio -> Cerrar y cargar y verifica que efectivamente todos nuestros archivos fueron cargados a Excel, también puedes hacer pruebas ingresando otro archivo de inventario 2016 o eliminar unos de ellos, actualizas y puedes observar los cambios, ¡oro verdad! Todo a unos cuantos clics. x
    • 104. Consolidar varios archivos con varias hojas El caso anterior fue todo un éxito, solo que cada libro solo contenía una hoja, ¿Qué sucede si algunos o todos de los libros contienen varias hojas? De nuevo Power Query entra en acción. Abrimos un libro de Excel nuevo -> Pestaña Datos ->Obtener y transformar datos -> Obtener datos -> Desde un archivo -> Desde una carpeta Según lo explicado en la figura 3.67, ingresamos la ruta o buscamos la carpeta donde se encuentran los archivos, en este caso, la carpeta está en el Capítulo 3 -> Ventas Damos clic en Editar y ya estamos en la interfaz de Power Query De nuevo Power Query carga el detalle de los archivos, realizamos de nuevo el filtro en la columna Extensión, según lo visto en la figura 3.69, para que solo cargue archivo .xlsx. A diferencia del anterior proceso, en este debemos aplicar unos pasos demás para obtener no solo la información de los archivos, sino los datos que se encuentran en todas las hojas. ▪ Señalamos la columna Content y Name -> Clic derecho -> Quitar otras columnas x
    • 105. El siguiente paso, es crear una columna personalizada, para extraer todo lo que haya dentro de cada libro de Excel, este es el truco: ▪ Pestaña Agregar columna -> Columna personalizada ▪ En el cuadro de diálogo escribimos la siguiente función: ▪ Excel.Workbook([Content]) ▪ Clic en aceptar, la función deber ser exacta tal como lo vimos al inicio de este capítulo Este tipo de funciones, entraremos en detalle cuando estemos explicando Lenguaje M, en el capítulo 8 Ya contamos con una columna adicional, la columna personalizada, es la que usaremos para extraer todo el contenido de cada libro de Excel, así seleccionamos la columna Content -> Clic derecho -> Quitar x
    • 106. Procedemos a expandir la columna Personalizada y deshabilitamos Usar nombre de columna original como prefijo Power Query nos carga 5 columnas: Name: Son los nombres de los libros que están en la carpeta Name.1 : Son los nombres de las hojas que existen en cada libro Data: Son los datos que están dentro de las hojas, es decir, los que necesitamos extraer Item: Repite el nombre de cada hoja Kind: Informa en que formato o tipo están los datos, si en las hojas o en tablas ¡Advertencia! Se recomienda realizar un filtro en este campo y decirle que solo queremos trabajar con Sheet=Hojas, ya que no podemos dejar todas las opciones, corremos el riesgo de duplicar la información, los datos obligatoriamente están arrojados en hojas, pero no necesariamente en tablas, por ende, seleccionamos Sheet.
    • 107. Hidden: Es un resultado binario, de falso o verdadero, con respecto si hay datos ocultos Ya hemos entendido cada uno de los campos, ahora realizamos el filtro en el campo Kind -> Seleccionamos Sheet -> Aceptar ▪ Seleccionamos las columnas Name, Name.1 y Data ->Clic derecho -> Quitar otras columnas ▪ Expandimos la columna Data ->Deshabilitamos Usar el nombre de columna original como prefijo -> Aceptar Y ¡boom!, tenemos todos nuestros datos de libros y hojas consolidados Echemos un vistazo: Solo nos queda dar un poco de retoque a cada columna: ▪ Cambiemos el nombre de los encabezados por la primera fila -> Pestaña Transformar -> Usar la primera fila como encabezado ▪ Las columnas VENTA y COSTO ->Clic encabezado -> Formato Número entero
    • 108. Solo queda un pequeño detalle, como se consolido todas las hojas, los encabezados de cada hoja los repite como fila, filtremos la columna ciudad, y carguemos todos los datos El campo CIUDAD está siendo parte de una fila, lo des chuleamos, cambiamos el nombre del campo Enero por Mes. La Columna 2016.xlsx -> Cambiar nombre “Año” ->Seleccionamos la columna -> Clic derecho - > Reemplazar los valores ->.xlsx y el campo siguiente lo dejamos en blanco Y efectivamente se han cargado todos los datos tanto de los dos libros como de todas las hojas. x
    • 109. Puedes probar ingresando más libros o eliminando hojas de los archivos, actualizas y notas los cambios Traer datos de la Web nunca había sido tan fácil con Power Query, y lo mejor si los datos en la Web cambian, dinámicamente los datos se actualizan. Abrir un nuevo libro de Excel -> Datos -> Obtener y transformar datos -> Desde la Web Ingresamos la dirección URL o la copiamos y pegamos -> Aceptar -> Editar ¡Advertencia! Si vas a ingresar más archivos a la carpeta o más hojas a los libros, debes asegurarte de que contenga el mismo formato, es decir, los mismos campos de columnas, tal cual están en esta consulta, en capítulos posteriores te enseñaremos como consolidar información, aunque no tengan el mismo formato. x u
    • 110. Tenemos la tabla que nos arroja el link, depuramos un poco: Transformar -> Usar la primera fila como encabezado Inicio -> Cerrar y cargar, ya tenemos nuestros datos en Excel listo para procesar Como son datos provenientes de la Web, para actualizar es importante reiterar tener internet y luego actualizar para ver los cambios. Esta conexión es útil cuando se trabaja con indicadores de páginas Web que constantemente están en cambio. Vamos a conectarnos a bases datos, pare este ejemplo usaremos Access
    • 111. El proceso de vinculación a Access es el mismo proceso de conexión a cualquier otra fuente de información, tal como hemos venido trabajando. Abrimos un archivo de Excel nuevo -> Datos -> Grupo obtener y transformar datos -> Desplegamos Obtener datos ->Desde una base de datos Para el ejemplo, buscamos la carpeta con el Capítulo 3, el archivo de Access se llama “Ventas_Detalle Transacción” e importamos. El cuadro de diálogo nos muestra las tablas que contiene Access, seleccionamos las 3 tablas o las tablas que deseemos cargar a la consulta. x
    • 112. Estando en el editor de Power Query, vemos que efectivamente se cargaron las 3 consultas, damos un recorrido por cada una de ellas para empezar su limpieza x x
    • 113. Si ya hiciste el recorrido dando clic en cada consulta, la única tabla que se debe ajustar, es Categorías de Productos, ya que la columna Precio de venta esta como texto, como lo explicamos en la figura 3.55 y 3.56, debemos cambiar los puntos por comas y dejarlo en formato Número decimal. Clic derecho en columna Precio de Venta -> Reemplazar los valores ->Puntos por comas Inicio -> Cerrar y cargar, ya las 3 tablas se encuentran arrojadas en Excel, listas para ser procesadas.
    • 114. De la misma forma nos podemos conectar a cualquier base de datos ya se a SQL, MySQL, ORACLE o una conexión ODBC y traer las tablas con las que vamos a trabajar. Cada correo que recibimos, enviamos, guardamos o eliminamos, en alguna parte debe quedar todos estos registros, incluso en el mismo panel del correo podemos buscar cada registro, ¿Será que podemos tener una base de datos detallada de cada correo? La respuesta es SI, si tenemos un correo con cuenta Microsoft Office 365. x ¡Advertencia! Si te vas a conectar a una base de datos, debes tener instalado en tu computadora el programa de dicha base o los permisos y versiones para dicha extracción. También puedes conectarte a bases de datos en la nube.
    • 115. Abrimos un libro de Excel nuevo -> Datos ->Obtener y transformar datos ->Obtener datos -> Desde los servicios en línea. Ingresamos el correo con cuenta Microsoft y damos Aceptar Esta la opción de ingresar con una cuenta Exchange o con una cuenta Microsoft Seleccionamos Cuenta de Microsoft, de nuevo ingresamos el correo y la contraseña ->Iniciar sesión y Conectar x
    • 116. Nos pregunta si estamos desde una cuenta Personal o empresarial, en este caso es personal. El cuadro de diálogo preliminar a la entrada de Power Query, nos muestra las tablas que contiene el correo, seleccionamos la tabla Mail. x x
    • 117. Damos clic en Editar, ya nos encontramos en la pantalla de Power Query, son todas las columnas que contiene cada correo, en algunos campos vemos que hay flechas de expansión, es decir, son tablas dentro de la misma columna. Cuando en Power Query no encontramos con demasiadas columnas y es tedioso ir a través de la barra desplazadora seleccionando y quitando columnas, veamos esta opción. Inicio-> Elegir columnas -> Elegir columnas Seleccionamos las columnas: ▪ Folder Path: Ruta de la carpeta ▪ Subject: Tema o asunto del correo ▪ Sender: Enviado por y el correo del envío ▪ Date Time Sent: Fecha de enviado ▪ Date TimeReceived: Fecha de recibido ▪ Body: Cuerpo o detalle del correo xuu
    • 118. Con estas columnas podemos tener un buen análisis o una búsqueda fácil de cualquier tipo de correo, asunto o nombre de la persona quien envía el correo. Realizamos 3 pasos adicionales: ▪ Filtramos la columna Folder Path -> Seleccionamos la carpeta ->Matemáticas Financiera ▪ Expandimos la columna Sender y Body, recuerda deshabilitar Usar el nombre de la columna original como prefijo. ▪ Cerrar y cargar
    • 119. Este es el objetivo principal que fijamos desde el comienzo, llevar todos nuestros datos a formato tabular, aún los correos los llevamos a esta meta. x
    • 121. CAPÍTULO 4 Después de este capítulo tú sabrás: ▪ Trabajar con diferentes consultas a la vez ▪ Anexar consultas ▪ Combinación de consultas: Uno a uno, uno a muchos y muchos a muchos ▪ Reemplazo de BUSCARV Como consultores y docentes en Inteligencia de Negocios nos encontramos con muchos usuarios de Excel y Power BI, con múltiples problemas para manejar cantidades de información y aún más, si la información se encuentran en diferentes fuentes o tablas, y una de las primeras funciones que aprenden para cruzar o traer información de dichas fuentes, es la función BUSCARV, según encuestas de Microsoft ha sido la función más usada y ganadora de todas, que tal si te dijera que con Power Query es aún más fácil de lo que crees: Cruzar información, anexar tablas a otras, es toda una revolución de datos esta herramienta. Cuando tenemos información de diferentes fuentes o tablas y debemos consolidar todos los datos en una sola base, Power Query tiene la ventaja de trabajar con diferentes consultas a la vez e ir anexando una o varias tablas debajo de cada una sin importar el tipo de extensión del
    • 122. archivo o fuente de datos, es decir, si tenemos 10 consultas con la misma estructura y solo queremos reunirlas todas en una sola. Empecemos. Tenemos el siguiente escenario: En una carpeta están los archivos con extensión CSV de la Producción 2010 a 2015, un archivo de texto con la producción 1999 el cual cargamos en el Capítulo 3, ver figura 3.2 a 3.4 y un archivo de Excel con extensión xlsx. Con este escenario en la mesa, tenemos en mente que se deben realizar ya varias consultas: ▪ Primero debemos definir los encabezados que va a tener cada consulta ▪ Extraer archivos desde una carpeta ▪ Extraer los datos del archivo de texto ▪ Extraer datos de archivo de Excel xlsx ▪ Consolidar todas las consultas Debemos seguir este paso a paso para lograr nuestro objetivo Definir encabezado Abrimos alguno de los archivos CSV, de texto o xlsx para definir los encabezados de columnas x
    • 123. Extraer datos de la carpeta En el capítulo anterior en la figura 3.67 y 3.68 aprendimos a conectarnos desde una carpeta repetimos los pasos hasta llegar al editor de Power Query Abrimos un libro de Excel nuevo -> Pestaña Datos ->Obtener y transformar datos -> Obtener datos -> Desde un archivo -> Desde una carpeta -> Capítulo 4 ->Producción 2010_2014 Buscamos la carpeta o pegamos la dirección de la carpeta y editar. Expandimos los datos y damos aceptar, tenemos todos los datos de cada archivo, pero al tener todas las columnas de la carpeta, vemos que hay una nueva, debemos eliminarla ya que en la figura 4.1 hemos definido la estructura de datos. x x
    • 124. Con la estructura lista, vamos a Inicio -> Hacemos despliegue en Cerrar y Cargar -> Cerrar y cargar en… -> Seleccionamos solo Conexión Este tipo de carga, como la estudiamos en la introducción de Power Query, la usamos cuando no necesitamos arrojar o ver los datos en Excel. La figura 4.5 muestra varias consultas, Power Query, cuando realiza extracción de datos desde una carpeta, crea unos pasos y consultas internas, para que no halla confusión entre las xx
    • 125. consultas que vamos a adicionar, contraemos la carpeta llamada “Transformar archivo de Producción 2010_2014”. Extraer datos de txt Si has leído el paso a paso de este libro, ya tienes más habilidad con la herramienta, si no habías tenido ninguna relación con Power Query, ahora usamos los pasos para extraer datos de un archivo de texto. Ver figura 3.1 a 3.4 hasta llegar a la interfaz. El archivo de texto se encuentra en la carpeta Capítulo 4, Producción_1999 En el mismo libro donde está la consulta anterior, vamos a Datos -> Desde el txt/CSV e ir a hasta el interfaz. Verificamos que los encabezados están como definimos en la estructura inicial, solo nos queda Cerrar y cargar en… -> Crear solo conexión. Extraer datos de archivo de Excel xlsx. Este cuarto paso, es el repaso de la figura 3.47 y 3.48, en el mismo libro que estamos arrojando las consultas nos conectamos al libro de Excel ubicado en el capítulo 4, Producción_2015. Datos -> Obtener datos -> Desde un archivo -> Desde un libro -> Seleccionamos Hoja 1 -> Editar Ahora vemos el estado de los datos: x
    • 126. Revisando los datos, la tabla trajo dos columnas adicionales, Ventas y Días Entrega, para poder consolidar todas las consultas es recomendable eliminar estas dos últimas columnas y así conservaremos la estructura inicial para no tener confusiones en su unificación. Cerrar y cargar en… -> Crear solo conexión Cambiamos el nombre de la consulta ->Seleccionamos la consulta -> Clic derecho -> Cambiar nombre -> “Producción_2015” Consolidar consultas Estamos cada vez más cerca de consolidar nuestros datos, un par de clics más y terminamos. Ingresemos de nuevo al editor de Power Query, clic derecho en alguna de las consultas -> Editar Estando en la interfaz, vamos a la pestaña Inicio -> Grupo Combinar -> Se despliega Combinar Consulta. En este caso seleccionamos Anexar consultas para crear una nueva, si seleccionamos Anexar consultas, las demás tablas se van a anexar debajo de la que estamos editando.
    • 127. Como estamos ubicados en la Consulta Producción 2010_2014, si no seleccionamos la opción Anexar consulta para crear una nueva, las 2 tablas se ingresan debajo de esta consulta. Seleccionamos Tres o más tablas -> CTRL sostenido seleccionamos Producción_1999 y Producción_2015 -> Agregar -> Aceptar. Cambiamos el nombre de la consulta por -> Producción Total ->Cerrar y cargar x x
    • 128. Funcionó perfectamente, ahora tenemos todos nuestros datos en una sola tabla, listos para preparar un gran reporte. Combinar consultas es una las nuevas sorpresas que nos trae Power Query, en el día a día se que nos ha tocado traer información de otras tablas, cruzar informes y comparar datos, BUSCARV ha sido la ayuda de muchos para estos casos, pero hay casos que se nos ha complicado ese relacionamiento de informes, terminando este capítulo te aseguro que no imaginabas lo fácil que ya es con Power Query Antes de empezar vamos a nombrar los 3 tipos de combinaciones que hay: ▪ Relación uno a uno ▪ Relación muchos a muchos ▪ Relación uno a muchos Relación uno a uno Si tenemos 3 tablas, en una de ellas tenemos los movimientos diarios de las ventas, en la segunda los detalles de los clientes, y en la última la información de los productos. Los movimientos diarios de ventas me traen el ID CLIENTE y el ID PRODUCTO, pero no trae los nombres tanto de clientes como de productos e información adicional de los clientes como País, Ciudad, lo mismo con los Productos, no trae el nombre ni el precio del Producto. Veamos. x
    • 129. ¡ Ya estás pensando lo que hay que hacer! Debemos relacionar las tablas de tal forma que los datos de las tablas maestras me alimenten la información de Ventas, ya que es muy difícil realizar un informe solo con los ID, necesitamos presentar nuestros gráficos y reportes al mejor detalle posible. Iniciemos. Descargamos el archivo Combinación uno a uno de la carpeta Capítulo 4. Vamos a realizar 3 conexiones del mismo libro: Hoja Ventas -> Datos -> Obtener y transformar datos -> Desde una tabla o rango ->Aceptar Afortunadamente los datos están nítidos, en caso de que no, ya tenemos la experiencia para aplicar una buena limpieza. Cerrar y cargar en… Las Ventas vamos a cargarlas en formato tabla. Cambiamos el nombre de la consulta por: Ventas Ahora tenemos una nueva hoja “Hoja 1” y la primera consulta descargada a Excel. Veamos la figura 4.13 x Nota. La tabla de Ventas la vamos a llamar tabla transaccional, y las tablas Clientes y Productos la vamos a llamar tablas maestras, esto lo veremos más a fondo en el capítulo 11.
    • 130. La Hoja 1, es la que vamos a usar para realizar el cruce de las otras hojas (Clientes y Productos). Ahora vamos a realizar el mismo proceso de consulta que concebimos en la hoja Ventas. Hoja Clientes -> Datos -> Obtener y transformar datos -> Desde una tabla o rango ->Aceptar Estando en la interfaz de Power Query y con los datos listos para Cargar, ante cambiamos el nombre de la consulta a: Clientes Inicio -> Cerrar y Cargar en… -> Crear Solo conexión Ver figura 4.4 -> Aceptar Repetimos estos pasos nuevamente en la hoja Productos Hoja Productos -> Datos -> Obtener y transformar datos -> Desde una tabla o rango ->Aceptar Cambiamos el nombre de la consulta: Productos Inicio -> Cerrar y Cargar en… -> Crear Solo conexión Ver figura 4.4 -> Aceptar x x
    • 131. Verificamos que las 3 consultas se hallan realizado correctamente y solo y únicamente la consulta Ventas los datos estén en Excel, las otras dos están solo como conexión. Seleccionamos la consulta Ventas -> Clic derecho -> Combinar. Iniciamos la intersección de datos, seleccionamos la consulta Clientes. Para realizar la combinación de consultas es necesario que las dos tablas tengan un campo en común, es decir, cada tabla debe contener una columna con datos que están tanto en hoja Ventas como en hoja Clientes. Para este caso sería el campo ID CLIENTE, es la columna que se encuentra en cada una de las hojas, damos clic en cada encabezado ID CLIENTE de cada consulta x ¡Advertencia! Si en las dos tablas no hay un campo en común es imposible realizar combinación de consultas, si has usado la función BUSCARV en Excel, es lo más probable que has encontrado tablas que no se pueden relacionar porque no cumplen esta regla
    • 132. Es indiferente la posición de las tablas, arriba o abajo a la hora de combinar consultas, te recomendamos que la tabla transaccional valla en la parte superior y la tabla maestra o de búsqueda en la parte inferior. Explorando la figura 4.16, al seleccionar cada campo en común de las consultas, Power Query alerta un mensaje de coincidencia de los datos, es decir, verifica que efectivamente todos los campos de la tabla Ventas se encuentran en la tabla Clientes. Procedemos a dar Aceptar y ya estamos en el editor de consultas, se ha creado una nueva consulta llamada Merge1 (Combinación) y se ha agregado una nueva columna llamada Cliente, con flechas de expansión, lo que significa que los campos de la consulta Clientes se han convertido en Tabla donde se encuentran los datos a extraer. Si damos clic en uno de estos campos, muestra todos los encabezados de dicha tabla. Veamos. x
    • 133. Solo nos queda expandir la columna Clientes, para agregar los campos de la tabla clientes a la tabla Ventas. Expandimos Columna Clientes -> Deshabilitamos Usar el nombre de la columna original como prefijo -> y seleccionamos los campos que vamos a agregar: ▪ Nombre cliente ▪ País ▪ Ciudad No seleccionamos ID Cliente, ya que este campo se encuentra en la tabla Ventas, no hay necesidad de duplicarlo. Aceptar -> Cambiamos el nombre de la consulta -> Consultas Combinadas
    • 134. La consulta ahora arroja 3 columnas adicionales, que corresponden a los campos que seleccionamos al expandir la tabla ventas. Sin salir del editor de Power Query, en esta nueva consulta vamos a añadir los campos de tabla Productos y así tendremos todos los datos consolidados. Inicio -> Grupo Combinar -> Combinar Consultas ->Combinar consultas En la figura 4.8 explicamos cuando seleccionamos Combinar o Anexar consultas o Combinar consultas para crear una nueva, para este escenario la primera opción es la adecuada, no vamos a crear más consultas porque nos podemos saturar y entrar en confusión, con una sola es necesario. Escogemos la consulta Productos y seleccionamos el campo en común entre las dos tablas, ID Productos. Ver figura 4.16 x x
    • 135. Auditamos que todo este correcto -> Aceptar y repetimos el mismo proceso de la figura 4.18 Expandimos el campo Productos -> Deshabilitamos Usar el nombre de la columna original como prefijo -> y seleccionamos los campos que vamos a agregar: ▪ Nombre Producto ▪ Precio ($ USD) Correctamente las columnas Nombre Producto y Precio ($USD) están consolidadas con los demás campos. Inicio Cerrar y cargar. x X
    • 136. Con nuestros datos en Excel y las columnas anexadas correctamente de las tablas Clientes y Productos es la muestra más clara de lo fácil e intuitivo que es cruzar información de tablas o reemplazar ese famoso BUSCARV por algo más simple y rápido, ¿Por qué rápido? En este caso se cargaron 25.344 filas, es decir que, si realizas un BUSCARV para cada columna, multiplica las 5 columnas por 25.344, tú archivo cada vez va a aumentar más de tamaño. ¡Creo que hemo cometido un error!, ¿notas algo extraño? En el panel de consultas se agregó una conexión nueva, es decir, que han quedado 4 consultas, la consulta Ventas y Consultas Combinadas tienen datos arrojados en el Excel, y en verdad solo necesitamos una tabla consolidada, el resto de las consultas deben quedar como solo conexión. Es muy fácil reparar esto, damos clic derecho encima de la consulta Ventas -> Cargar en… -> Crear solo conexión: x
    • 137. Aceptar y Excel no advierte que al realizar esta acción puede haber una posible perdida de datos, es decir, la tabla de ventas que estaba arrojada en Excel desaparece, y la consulta queda cargada como solo conexión. Aceptamos y listo, todo un nuevo aprendizaje para relacionar, cruzar, y combinar información de uno a uno. ¿Por qué se llama relación de uno a uno? Tiene ese nombre porque de cada campo de la tabla ventas hemos relacionado con un campo de la tabla Clientes o Productos. x x Nota. Aunque se agregaron 5 columnas más, 3 de la tabla Clientes y 2 de la tabla Productos, no significa que se relacionaron varios campos, este fue el resultado, la relación solo se hizo con un Campo de Ventas y un solo campo de la tabla Clientes y uno de la tabla Producto (Uno a uno) ¡Advertencia! Los campos en común con los que se combinan las consultas deben estar en el mismo formato, es decir, si el ID Producto de la tabla ventas está en formato número entero, lo mismos debe estar el ID Producto de la tabla Productos. Se cambian desde el editor de Power Query, no en Excel
    • 138. Relación muchos a muchos Si llevamos este punto a una definición: Es BUSCARV avanzado o con trucos. Así es, la relación de uno a uno comprendimos su definición, es porque solo necesitamos un solo campo en cada tabla, esta nueva relación de muchos a muchos, necesitamos combinar información cuando en realidad hay varios campos en común que debemos usar para lograr nuestros resultados. Gráficamente lo comprenderemos mejor. Buscamos en la carpeta Capítulo 4 el libro “combinación muchos a muchos”. Para el ejemplo tomaremos estas dos tablas de un número muy pequeño de datos, con el objetivo que entiendas de la manera más amena el ejercicio, pero recuerda Power Query no tiene problema de realizar este truco con grandes cantidades de datos. La meta es que debes consolidar las dos tablas en una sola, y debes traer para cada CLIENTE y según el PUNTO VENTA sus respectivas CANTIDADES y VENTAS. Hagamos un diagrama de flujo para ver mejor el panorama y hacia donde debemos llegar. x
    • 139. Vamos a realizar rápidamente las conexiones de consulta desde cada tabla. Tabla Cantidades -> Datos -> Obtener y transformar datos -> Desde una tabla o rango ->Aceptar Estando en la interfaz de Power Query y con los datos listos para Cargar ->Inicio -> Cerrar y Cargar en… -> Crear Solo conexión Ver figura 4.4 -> Aceptar El mismo procedimiento para la tabla Ventas Con las conexiones listas, nos ubicamos en la consulta Cantidades: Clic derecho -> Combinar -> Escogemos la tabla Cantidad y Ventas. x x
    • 140. Solo debemos seleccionar los campos en común de cada tabla, con CTRL sostenido se selecciona los campos en simultaneo de cada consulta. Aceptamos y repetimos el proceso visto en la figura 4.17 y 4.18 Expandimos Columna Ventas -> Deshabilitamos Usar el nombre de la columna original como prefijo -> y seleccionamos los campos que vamos a agregar: ▪ VENTAS x X
    • 141. Solo seleccionamos el campo VENTAS ya que Cliente y Punto Venta lo tenemos en la tabla Cantidades. Cerrar y cargar ¡boom! Ha sido todo un éxito nuestro relacionamiento de muchos a muchos Cambiamos el nombre de la consulta -> “Combinar de muchos a muchos”. Si hacemos una comparación con la figura 4.28, se realizó de manera manual para entender el ejercicio, el cruce de información de los 3 datos tomados es exactamente igual. Relación uno a muchos Debemos tener cuidado con este tipo de relación, ya que no es muy recomendada, puede traer posibles errores en los datos. Veamos esto con un ejemplo de pocos datos para el rápido manejo
    • 142. Tenemos dos tablas, una de Ventas y otra tabla llamada Departamentos, podemos identificar rápidamente que el campo en Común de las dos tablas es DEPARTAMENTO, pero en la tabla 1 el Departamento aparece una sola vez y en la tabla 2, este mismo campo se repite varias veces, por ende, es una relación de uno a muchos. Ahora vamos a realizar la consulta de cada una de las tablas y cargarlas solo como conexión: Tabla Ventas -> Datos -> Obtener y transformar datos -> Desde una tabla o rango ->Aceptar Estando en la interfaz de Power Query y con los datos listos para Cargar ->Inicio -> Cerrar y Cargar en… -> Crear Solo conexión Ver figura 4.4 -> Aceptar El mismo procedimiento para la tabla Departamentos. Con las tablas cargadas como solo conexión, realizaremos la combinación de consultas. Clic derecho en consultas ventas -> Combinar -> Seleccionamos las tablas ->Clic en el campo DEPARTAMENTE de cada tabla. Verificamos que los datos hayan coincidido correctamente. x
    • 143. Aceptamos y en la pantalla de Power Query expandimos la columna Departamentos Solo seleccionamos campo Ciudad, cambiamos nombre de la consulta -> uno a muchos -> Cerrar y cargar. Miremos que sucedió con nuestros datos: x x
    • 144. Si observamos la figura inicial 4.33 de la tabla Ventas, solo tenía 3 filas (ANTOQUIA, ATLANTICO, VALLE DEL CAUCA), y nuestra nueva tabla que contiene 11 datos ¿Qué pasó?, evidentemente los datos se duplicaron, me trajo el campo CIUDAD, pero como en la tabla 2 cada Departamento se repetía 3 veces y en caso del VALLE DEL CAUCA esta 4 veces, al realizar este tipo de combinación la tabla transaccional creció tanto en filas como en columnas, grave error. x ¡Advertencia! Si realizamos combinaciones de tablas, transaccionales con tablas maestras o de búsqueda, el resultado de la consulta solo puede crecer en columnas, si aumentan las filas, es posible que no se pueda usar este tipo de relación, ya que los datos tienden a duplicarse
    • 145. CAPÍTULO 5 Después de este capítulo tú sabrás: ▪ Transponer tablas ▪ Anulación dinamización de columnas ▪ Columna dinámica ▪ Agrupación de datos Si has llegado hasta este capítulo y te has sorprendido, en los capítulos anteriores has encontrado trucos, procesos, funciones, maneras diferentes y rápidas de manejar tus datos, a lo que llamamos los gomosos del tema, esto es oro en polvo, o tal vez ya conocías todo lo anterior, es válido y aplaudimos tus conocimientos, seas cual sea el usuario, no te despegues que lo que viene te aseguro va ayudarte a reordenar tus datos cuando crees que no tienen solución o la única forma es la manera manual en que los organizas, veamos unos casos más. En el capítulo 3 cargamos un archivo en formato CSV, ver figura 3.17 y 3.18, habíamos dejado indicado que este archivo necesitaba ser organizado y limpiado, notábamos algo raro en los datos, primero no están en formato tabular, recuerda que es el objetivo primordial de toda limpieza de datos: llegar a esta meta, adicional los campos columnas están en las filas y las filas están ubicadas en las columnas, es decir, esta transpuesta la información. El archivo con el que vamos a trabajar es el mismo, “Producción_2015”.CSV, lo puedes tomar de la carpeta Capítulo 4 o 5. Abrir un libro de Excel nuevo -> Datos ->Pestaña Obtener y transformar datos -> Desde el texto/CSV -> Importar -> Editar
    • 146. Claramente la pantalla de Power Query muestra un orden inadecuado de la información. Debemos cambiar la posición de los datos, las filas a columnas y las columnas a filas, en Excel también podemos realizar este cambio de manera rápida y fácil, pero recuerda que con Power Query solo haces una vez y listo, tu proceso queda automatizado y cada que lo necesites realizar clic derecho actualizar, y es lo que cada usuario de estas herramientas debe buscar, más tiempo para analizar y menos para procesar. Iniciamos: Pestaña Transformar ->Transponer -> Usar la primera fila como encabezado Con estos cortos pasos ya tenemos la tabla en el formato correcto, listos para ser usados Inicio -> Cerrar y cargar. Los datos han tomado su posición natural x x
    • 147. El caso anterior fue relativamente sencillo, para este caso necesitamos entender algo primero, antes de entrar en materia. Cuando iniciamos en el mundo de la información, no tenemos varias reglas claras a la hora de trabajar con ella, una de ellas es que debemos siempre guardar los datos en formato tabular o base de dato, es decir, si estoy guardando el inventario o ventas de los productos por año solo debería tener 3 columnas: PRODUCTO – AÑO - VALOR Si no tenemos estas reglas claras, nos hemos encontrado con información ya Pivoteada, es decir, los usuarios almacenan la información no para ser procesada sino para ser presentada dentro de la misma base que se guarda, y en vez de tener solo 3 columnas como el caso anterior, tienen n columnas y así es bien difícil manipular dicha información. Veamos esto gráficamente. Pivotear Una definición simple: Mover o cambiar de un lugar a otro un campo, dato, encabezado o columna.
    • 148. La Tabla 1 es la forma incorrecta de almacenar la información, aunque sea la manera más fácil de visualizar los datos, es una tabla que ya está pivoteada, es decir, los campos años están en diversas columnas, y si pruebas creando una tabla dinámica a la hora de consolidar la información debes bajar 6 veces este campo. Creemos dos tablas dinámicas para ver su diferencia. En la carpeta Capítulo 5, buscamos el archivo “Anulación Columnas 1.xlsx”. Seleccionamos la Tabla 1 ->Pestaña Insertar ->Tabla Dinámica ->Aceptar Bajamos el campo SKUs a Filas y cada uno de los años a valores. x x
    • 149. Si apetecemos realizar un análisis de datos por años, debemos bajar cada campo año las veces que sea necesario, es decir, que si tenemos 10 años para analizar son estas veces los movimientos que hay que realizar, pero este no es lo más trágico, si notan la tabla dinámica tiene dos Totales Generales, uno pertenece a como se estaban guardando los datos en el origen y el otro al total que por defecto realiza la tabla dinámica. Esto y muchos errores más y dificultades nos vamos a encontrar si nuestros datos están Pivoteados. Ahora creemos una tabla dinámica, de la Tabla siguiente. Seleccionamos la Tabla 2 -> Pestaña Insertar ->Tabla Dinámica ->Aceptar Llevamos el campo SKUs -> Años a Columnas -> Valor a Valores Con tan solo 3 movimientos tenemos nuestros datos listos para su análisis, gráficos y presentación. (Si quieres aprender más sobre Tablas dinámicas, te recomendamos nuestro libro “Quinta dimensión de Tablas Dinámicas”. En la bibliografía encontrarás enlace). x
    • 150. Notoriamente vemos las dos grandes diferencias al trabajar con datos Pivoteados (Pivot) y datos no Pivoteados (UNPIVOT). La pregunta sería: ¿Si ya los datos los tengo almacenados de la manera incorrecta o las tablas que me envían de diferentes fuentes están Pivoteados, como los organizo? ¡De nuevo Power Query entra en acción! En el mismo libro que creamos las tablas dinámicas, seleccionamos la Tabla 1 (Datos Pivoteados) -> Datos -> Obtener y transformar datos -> Desde una tabla o rango. Dentro del editor de consultas, antes de realizar este maravilloso truco de anular columnas Pivoteadas, debemos: ▪ Eliminar la columna “Total general” ▪ Filtrar el campo “SKUs” y deshabilitar “Total general” Datos listos para aplicar anulación de columnas: Con la columna SKUs seleccionada damos clic derecho -> Anulación de dinamización de otras columnas. Existen 3 formas para aplicar este gran truco: x
    • 151. ▪ Anulación de dinamización de columnas: Debemos seleccionar las columnas que vamos a anular, ejemplo, si vamos a usar esta opción para nuestro caso, debemos escoger todas las columnas 2010 a 2015 y aplicamos. ▪ Anulación de dinamización de otras columnas: Siguiente nuestro ejemplo, esta opción es lo contrario de la anterior, ya que, si debemos anular el pivote de las columnas años, seleccionamos la o las columnas que no tiene este inconveniente y aplicamos. ▪ Anulación de dinamización de las columnas seleccionadas únicamente: Es un caso especial donde única y exclusivamente seleccionamos las columnas a anular, las demás quedan como en el origen. Comprendiendo estas 3 opciones, aplicamos el segundo caso: Clic derecho SKUs ->Anulación de dinamización de otras columnas x x
    • 152. Por último, Cambiamos el nombre del campo Atributo por “Año” -> Cerrar y Cargar ¿Qué tal? Fue más larga la explicación, que el mismo truco, pero necesaria para entender el trasfondo de todo. Te confieso, es una de las grandes herramientas que más me ha gustado, útil, sencilla y eficaz. Cada vez más, avanzamos en la reordenación de datos, el caso solo tenía un encabezado para anular su Pivote, es decir, solo los campos años teníamos que llevar a formato tabular, ahora entraremos a aguas un poco más a fondo, estudiaremos el caso cuando son dos encabezados. Sin salir de la carpeta Capítulo 5 ->Abrimos el archivo -> “Anulación de Columnas 2.xlsx” En la Hoja 1 vemos dos tipos de información, que en esencia es la misma, pero explicado anteriormente, la primera esta pivoteada y la segunda es la forma correcta de guardar la información. El reto es llevar la Tabla 1 al formato Tabular, según Tabla 2. Veamos. x
    • 153. La Tabla 1 está a dos niveles: ▪ Años ▪ Tipo de información (Ingresos Tot y Meta) Con este tipo de información es muy complicado trabajar para realizar informes, presentaciones, tablas dinámicas y modelos de información. Iniciemos. Seleccionamos la Información 1 -> Datos -> Obtener y transformar datos -> Desde una tabla o rango -> Deshabilitamos el cuadro: La tabla tiene encabezados -> Aceptar Los datos cargaron al editor, para lograr nuestro objetivo vamos a ver una serie de trucos, por ende, debes seguir el paso a paso: ▪ Eliminar las dos últimas columnas (Columna 14 y 15) ▪ Eliminar primer fila -> Inicio -> Quitar filas ->Quitar filas superiores -> Número de filas =1 -> Aceptar. x x
    • 154. Continuamos: ▪ Filtramos la Columna 1-> Des seleccionar Total general ▪ Transponemos la tabla -> Pestaña Transformar -> Transponer. Ver figura 5.2 Así va nuestro proceso: En la columna 1, hay unos campos null, es decir, están en blanco, necesitamos realizar un relleno, de tal forma que los años se repitan para llegar al formato tabular. ▪ Seleccionamos Columna 1 -> Clic derecho -> Rellenar -> Abajo x
    • 155. Con la Columna 1 rellena, vamos a realizar el truco que es el eje de esta sección: ▪ Seleccionamos la Columna 1 y la columna SKUs simultáneamente ▪ Pestaña Transformar -> Combinar columnas ▪ En el cuadro de diálogo elegimos Separador -> --Personalizado-- -> Escribimos un separador que nos identifique una columna de la otra. Aceptamos y con las columnas combinadas, aplicamos estos pasos: ▪ Transponemos de nuevo la tabla ▪ Usar la primera fila como encabezado ▪ Seleccionamos la columna -SKUs -> Clic derecho -> Anulación de dinamización de otras columnas. Ver figura 5.7. Ya estamos a punto de lograrlo:
    • 156. Dos pasos más: ▪ Clic derecho en la columna atributo -> Dividir columna -> Por delimitador -> Delimitador situado más a la izquierda -> Aceptar Cambiamos el nombre de la columna Atributo.1 - “Año” y Atributo.2 - “Información”. Cerrar y cargar. ¡Magia ¡El conejo ha salido del sombrero, datos limpios y listos para que sorprendas a tu jefe y toda tu empresa x
    • 157. Teniendo el proceso anterior claro, ahora nos atrevemos a realizar el mismo proceso para 3 niveles de encabezados. Veamos. x x
    • 158. Se ve un poco complejo, ¿Verdad? Pero no es así, vamos a repetir lo que realizamos para organizar los datos con niveles de encabezado. Abrimos el archivo “Anulación de Columnas 3.xlsx” y Seleccionamos los datos desde la celda A1:N18 -> Datos -> Obtener y transformar datos -> Desde una tabla o rango -> Deshabilitamos el cuadro: La tabla tiene encabezados -> Aceptar Estando en panel de Power Query, seleccionamos la columna 1 -> Filtrar -> Deshabilitamos los totales -> Aceptar. En la misma columna 1, realizamos el relleno -> Clic derecho -> Rellenar abajo De una vez realizamos la primera transposición de la tabla Transformar -> Transformar x
    • 159. Así se el proceso Continuamos el proceso: ▪ Clic derecho en Columna 1 -> Rellenar abajo. Ver figura 5.14 ▪ Clic derecho en Columna 2 -> Rellenar abajo ▪ Seleccionamos las Columnas 1, 2 y 3 -> Pestaña Transformar -> Combinar columnas -> En el separador puedes poner el caracter que desees, escojamos “;” -> Aceptar ▪ Por segunda vez transponemos la tablas -> Pestaña Transformar -> Transponer ▪ En la misma pestaña -> usar la primera fila como encabezado ▪ Seleccionamos las dos primeras columnas con nombres (;; y ;;_1) x
    • 160. A diferencia del anterior caso, ya en este punto debemos seleccionar las dos columnas para anular la dinamización de las otras, ya que el resto es ajustar datos con un nivel 3 de encabezados. ▪ Con las dos columnas seleccionadas -> Clic derecho -> Anulación de dinamización de otras columnas. Ver figura 5.14 ▪ Tenemos un panorama mucho más claro. ▪ La columna Atributo debemos dividirla por delimitador “;” -> Clic derecho dividir columna -> Por delimitador -> Seleccionamos cada aparición del delimitador. x x
    • 161. Solo cambiamos nombres de columnas: ▪ Columna 1 -> “Tipo Población” ▪ Columna 2 -> “País” ▪ Columna 3 -> “Años” ▪ Columna 4 -> “Mes” ▪ Columna 5 -> “Rubro” Inicio -> Cerrar y Cargar Y listo todo un éxito nuestra operación. x Nota. Si realizamos la limpieza para anulación de columnas para 2 y 3 niveles, quiere decir que no importa el número de encabezados o formato de tabla en que se encuentre los datos, siempre van a tener una solución con Power Query
    • 162. La columna dinámica es lo contrario a la anulación de dinamización de columnas, es decir, el objetivo es convertir datos de filas en campos de columnas con valores únicos. La Tabla 1 contiene Países en filas con valores repetidos, es decir, el País Colombia se repite 4 veces dentro de la tabla, la columna dinámica toma estas filas y las convierte a Columnas como valores únicos y suma, promedia, cuenta o hace el cálculo que le indiquemos de la columna Unidades. Tal como se ve en la Tabla 2. En la misma carpeta del Capítulo 5 generemos una consulta y veamos su aplicación. Tabla 1 -> Datos -> Obtener y transformar datos -> Desde una tabla o rango Dentro de la interfaz -> Seleccionamos la columna País -> Pestaña Transformar -> Columna Dinámica. x
    • 163. Para realizar una columna dinámica, es necesario como mínimo dos columnas en la tabla, ya que una es la que se convierte en campos columna con valores única, y la columna valor, es el resultado de cada campo. Son dos los parámetros de la columna dinámica: ▪ Columna de Valores: Se selecciona el campo en el cual se va a hacer el cálculo ▪ Opciones avanzadas: Es el tipo de cálculo que se va a aplicar x x
    • 164. Aceptamos y sin importar el número de veces que aparece cada País, Power Query solo deja un valor único por País y suma o realiza el cálculo indicado. Cerrar y cargar y comprobamos que los datos de cada País los sumo con su respectivo encabezado. Ejercicio Práctico Para una mejor comprensión sobre columna dinámica, un ejercicio práctico nos va a ayudar a ver mejor el panorama. La información de la Tabla 1, es un poco extraño su ordenado, recuerdas capítulos anteriores donde reiterábamos que toda nuestra información debe estar en formato tabulado, pues bien, este no es un caso excepcional los datos están arrojados de manera independiente, cada x x
    • 165. empleado o persona tiene su propia, para este escenario es donde la columna dinámica toma poder y se convierte en una gran herramienta para convertir los datos tal como esta en la Tabla 2. Procedamos con esta limpieza, una más para aprender. Abrimos el archivo “Columna Dinámica Ejercicio Práctico.xlsx” -> Seleccionamos las celdas A1:B28” -> Datos -> Obtener y transformar datos -> Desde una tabla o rango -> Aceptar Con los datos cargados al editor en la primera columna -> Deshabilitamos filas nulas y Totales. Aceptar. Para este caso en especial vamos a necesitar una columna adicional, ya que inicialmente indicamos que se necesita mínimo dos columnas para trabajar con columna dinámica (Una columna “x” y otra numérica), falta la columna numérica, aunque si no se tiene la numérica, Power Query nos permite realizar solo el cálculo de conteo. Nos dirigimos a la Pestaña Agregar Columna -> Columna de índice -> Desde 1 x
    • 166. Ahora procedemos con nuestra columna dinámica: ▪ Seleccionamos la columna “Nuevos Gerentes País” -> Transformar -> Columna dinámica. Ver figura 5.27 ▪ Columna de valores: Información ▪ Función de valor agregado: No agregar Como el campo Información es una columna de texto, todas las opciones de cálculo no están habilitadas, debemos seleccionar -> No agregar, es la opción que mostrará todos los datos. x x
    • 167. Aceptar. Los encabezados de filas de la columna “Nuevos Gerentes País” pasaron a ser encabezados de columnas. Seleccionamos desde la columna Apellido hasta fecha de ingreso -> Clic derecho ->Rellenar -> Hacia arriba. Veamos. Si damos un recorrido por la tabla a este momento, parece que se halla desajustado, el nombre no esta paralelo al apellido, ni a los demás datos, por esto aplicamos -> Rellenar -> Arriba Columna nombre -> Filtramos ->Quitamos los nulos y Aceptar. x x
    • 168. Aceptamos y solo decoramos nuestra consulta: ▪ Eliminamos la columna Índice ▪ Campo Nombre – Apellido – País -> Formato texto ▪ Campo Hora de Trabajo/Mes – Cobro Hora -> Formato Número entero ▪ Fecha de Ingreso -> Formato fecha Cerrar y cargar y listo, ¡todo un trucaso!, datos en la mesa para ser consumidos. Power Query o el proceso ETL es el primer paso que se debe realizar para la inteligencia de negocios, ya que limpia y deja los datos listos para realizar cálculos y luego presentar la información gráficamente, pero también como herramienta de BI (Business Intelligence), puede realizar múltiples análisis y entre ellos está el agrupamiento de datos y la creación de columnas personalizadas. Si en una tabla de datos transaccional, necesitamos resumir o consolidar datos de una o más columnas, fácilmente lo podemos lograr por la opción Agrupa Por. Abrir archivo -> Agrupación de datos.xlsx.
    • 169. La columna LINEA tiene varias transacciones que se repiten, lo mismo PRODUCTO, el objetivo es tener de esta base, una tabla con los datos agrupados, resumidos y sumados. Tabla 1 -> Datos -> Obtener y transformar datos -> Desde una tabla o rango Dentro de la consulta -> Pestaña Transformar -> Agrupar por. Agrupación básica Parametrizamos una agrupación básica para el campo LINEA: x
    • 170. Agrupo por: LINEA -> Nuevo nombre de columna: Suma LINEA -> Operación: Suma -> Columna: VALOR Uno decide que columna Agrupar, el nombre que se le quiera dar, la operación y la columna que va a sumar. Aceptamos y efectivamente todos nuestros datos se han reducido a 3 filas, veamos. ¡Advertencia! La última opción de elegir la columna depende del tipo de operación que escojas, es decir, si quieres operar una suma, la columna debe ser un campo numérico, de lo contrario va a salir error. Para seleccionar una columna de tipo texto la operación debe ser solo de recuento o mostrar todas las filas x
    • 171. Agrupación Avanzada Dentro de la misma consulta vamos a realizar una agrupación avanzada, solo es agregar algunos parámetros adicionales y listo. Editemos el paso que acabamos de realizar en Configuración de consultas Clic en el engranaje -> Seleccionamos la opción Avanzado ->Agregamos una nueva agrupación x x
    • 172. Aceptamos y tenemos un nuevo panorama, se han consolidado la LINEA y PRODUCTO. También podemos agregar un nuevo cálculo a los datos, otro nivel de análisis. Calculemos el número de ventas que tuvo cada producto: ▪ Clic en el cuadro de Pasos aplicados -> Engranaje filas agrupadas. Ver figura 5.41 ▪ Agregar agregación -> Recuento de filas -> Aceptar X x
    • 173. Tenemos una nueva columna con un dato importante: # Ventas por Item. Así podemos realizar diferentes cálculos para nuestra agrupación de datos. Cerrar y cargar. Datos agrupados para ser procesados. De 43 filas que tenía la tabla inicial, con la agrupación, solo quedan 10. A cualquier nivel se puede llevar la agrupación de datos x
    • 174. CAPÍTULO 6 Después de este capítulo tú sabrás: ▪ Identificar las diferentes propiedades de cada consulta ▪ Duplicar consultas ▪ Ordenar las consultas ▪ Actualizar consultas de manera automática El manejo adecuado de las consultas va a ser relevante cuando en nuestros archivos tengamos muchas a la vez, debemos tener un buen manejo de estas en su ordenación, actualización y modificación para aumentar nuestra productividad con los datos. Una de las grandes ventajas de Power Query, lo podemos programar para que se actualice cada n tiempo, o directamente desde la programación de macros en Excel. Las consultas tienen propiedades importantes que nos ayudaran a automatizar aún más nuestras labores diarias. Pero antes de dar un recorrido por ellas, vemos la diferencia entre una consulta y una conexión. Abrir archivo “Propiedades de la consulta.xlsx” de la carpeta Capítulo 6 El archivo muestra dos hojas, Hoja 1 datos en tabla, Hoja 2 es una consulta de Power Query. Consulta. Es la carga de datos que realizamos de diferentes fuentes de información dentro del archivo de Excel o en Power BI, todo lo visto en los capítulos anteriores son consultas Conexión. Es la vinculación directa que realizamos a una consulta .
    • 175. Cuando estamos en un archivo que contiene una consulta, en la parte derecha debe salir el listado de consultas y conexiones que se encuentran en dicho libro. En caso de que no esté visible este panel los podemos mostrar: Pestaña Datos -> Grupo consultas y conexiones -> Consultas y conexiones Con esta opción todas las consultas y conexiones existente en el libro salen a la vista. x x x
    • 176. Con las consultas visibles, y dando clic derecho sobre ella, vemos alguna de sus opciones ▪ Copiarla y pegarla ▪ Editarla ▪ Eliminar la consulta ▪ Cambiar nombre ▪ Actualizar datos ▪ Cambiarle el tipo de carga ▪ Duplicarla ▪ Crear grupos de consultas ▪ Parametrizar propiedades Probemos una de ellas, clic en Duplicar. Al dar clic, nos abre el editor de consultas, como una consulta nueva para aplicar el proceso ETL por el cual decidimos crear una copia. x
    • 177. Damos clic derecho en la consulta VENTAS (2) -> Cambiar nombre -> Consulta Duplicada Cerrar y cargar. Contamos con dos consultas exactamente iguales. En el capítulo 3, figura 3.16, explicamos la actualización de las consultas, esto es de una manera manual, ya que el usuario debe realizar esta acción. Power Query tiene la opción de automatizar dicho proceso: Actualizar cada “X” tiempo Dentro de las propiedades de la consulta, indicamos a Power Query un tiempo determinado para activar la actualización. Clic derecho en la consulta -> Propiedades -> Habilitamos Actualizar cada -> digitamos tiempo en minutos para que se ejecuta la actualización.
    • 178. Aceptamos. Podemos hacer la prueba programando que se actualice cada minuto, para ver dichos cambios. Así podemos programar cada una de las consultas. x Nota. Esta opción que nos brinda Power Query es muy útil en diferentes escenarios, en especial cuando tenemos consultas desde la Web, para una actualización constante, pero debemos tener en cuenta que solo funciona solo SI el archivo de Excel está abierto. Este parámetro no está habilitado en Power BI
    • 179. Actualizar consultas con macros VBA Si ya poseemos muchas consultas dentro de Excel y no deseamos optar por que se actualicen cada determinado tiempo, o el archivo lo compartimos con otros usuarios que no poseen mucho conocimiento en el tema, podemos crear un código en Visual Basic, es decir, una macro en Excel y anclarla a un botón y de allí generar la actualización. Volvamos al archivo donde estamos trabajando y vamos a entrar al editor de Visual Basic ALT + F11 -> Insertamos un módulo, ver figura siguiente Estando en el módulo vamos a ingresar el siguiente código: Sub Actualizar_Consultas() ActiveWorkbook. Connections("Consulta - VENTAS").Refresh ActiveWorkbook. Connections("Consulta - Consulta Duplicada").Refresh MsgBox "Consultas Actualizadas", vbInformation, "Inteligencia de negocios" End Sub x
    • 180. Expliquemos un poco el código: ▪ ActiveWorkbook: Activa el libro actual ▪ Connections: Detecta las conexiones que hallan dentro del libro ▪ ("Consulta - VENTAS"): Se define el tipo de conexión, es una consulta, separado de un guion como regla de la macro seguido del nombre de la consulta. El nombre de la consulta debe ser exactamente igual, tanto en mayúscula como en minúscula ▪ Refresh: Ejecutamos la acción de que se actualiza cada consulta La misma línea de código se repite para cada consulta y al final puedes poner un mensaje informativo para indicar el proceso ha finalizado. Por último, solo nos queda anclar dicho código a un botón o imagen para que se ejecute dentro de una hoja de Excel. Seleccionamos la Hoja 1, donde se encuentra la base inicial, insertamos una forma. La ubicamos en la hoja, clic derecho -> Asignar macro -> Seleccionamos la macro -> Aceptar x
    • 181. Editamos la figura -> Clic derecho editar texto -> “ACTUALIZAR CONSULTAS” Ubicándonos en cualquier otra celda, damos clic el botón Las consultas empiezan su estado de actualización, aceptamos y consultas cargadas Recuerda guardar el libro con extensión .xlsm, libro habilitado para macros. x x
    • 182. Hemos hablado acerca de tablas transaccionales y tablas maestras, podemos encontrar solo tablas transaccionales, si necesitamos una tabla maestra de otra tabla no tenemos ningún inconveniente, Power Query tiene la posibilidad de convertir una columna de una consulta en una nueva consulta. Con el mismo archivo en que venimos trabajando en este capítulo, vamos al editor de consulta. Clic derecho en consulta VENTAS -> Editar. Entrando en Power Query, vamos a crear los maestros como consultas independientes. Los maestros son: Vendedores – Ciudad - Producto - Línea Seleccionamos la columna NOMBRE VENDEDOR -> Clic derecho -> Agregar como consulta nueva x
    • 183. Nos lleva a una nueva pestaña -> Herramientas de lista -> Transformar -> Quitar duplicados. Ya tenemos los datos únicos, convertimos la lista en una tabla para que ya haga parte de una consulta más. A la tabla -> Seleccione o escriba el delimitador -> Ninguno -> Como controlar columnas adicionales -> Acumular en la última columna. Eliminamos la última columna -> Cambiar nombre de Columna 1 por -> “VENDEDORES” . x x x
    • 184. Cambiamos el nombre de la consulta -> Clic derecho sobre la consulta NOMBRE VENDEDOR -> Cambiar nombre -> “Vendedores” Cerrar y guardar, y hemos creado una tabla maestra de vendedores, con la ventaja si ingresa un nuevo vendedor a la tabla ventas, se actualiza y la tabla maestra de vendedores se alimenta automáticamente. x
    • 185. Con 3 consultas cargadas hasta el momento, vamos a repetir el mismo proceso anterior para generar los maestros: Ciudad - Producto - Línea Clic derecho en la consulta VENTAS -> Editar, repetimos los pasos de la figura 6.11 a 6.15 Tu panel de consultas y conexiones debe estar ahora así Cada vez que hagas una nueva consulta, se va acumulando en el panel Consultas y conexiones. A través del tiempo esto puede traer confusiones, lo mejor es organizarlas de tal forma que se puedan identificar fácilmente, vamos a ordenarlas por grupos: x
    • 186. ▪ Consultas Transaccionales ▪ Consultas maestras Procedamos. Primero vamos a agrupar las consultas Transaccionales. Seleccionamos la consulta VENTAS -> Clic derecho -> Mover a un grupo -> Nuevo grupo. Nombramos el grupo como -> Consultas Transaccionales. x
    • 187. Al aceptar nos genera un tipo de carpeta, una con la consulta VENTAS y por defecto las otras llamadas, Otras consultas. Movemos la consulta -> Consulta Duplicada para el grupo -> Consultas Transaccionales [1] Clic derecho sobre la consulta duplicada ->Mover a un grupo -> Seleccionamos -> Consultas Transaccionales. x x
    • 188. El mismo proceso lo realizamos para el resto de las consultas. Creamos un grupo nuevo, llamado Consultas Maestras y movemos todas las consultas hacia este grupo. Tú panel de consultas debe quedar de la siguiente manera: Con las consultas en grupos, de seguro vas a poder trabajar más cómodamente. x
    • 189. CAPÍTULO 7 Después de este capítulo tú sabrás: ▪ Crear tabla calendario en Power Query ▪ Calcular días entre columnas fechas ▪ Análisis de fecha en filas ▪ Convertir a formato fecha. Las fechas es una variable muy determinando al implementar Inteligencia de Negocios, muestra en el tiempo los comportamientos, variaciones y cambios que tienen múltiples datos para la toma de decisiones. Muchos usuarios han tenido dificultades en trabajar con fechas en Excel, Power Query ha desarrollado diversas opciones para trabajar con ellas de manera fácil e intuitiva. En Power Query como en Power BI, podemos crear una tabla calendario dentro del editor de consultas, con el objetivo de crear tablas relacionables en el modelo de datos, en la parte II de este libro vas a poder estudiar a profundidad este tema, lo que nos compete en el momento es realizar nuestro análisis de fechas en Power Query. Iniciemos. Crear un libro de Excel nuevo -> Datos -> Obtener datos -> Desde otras fuentes -> Consulta en blanco. Ver figura 2.2 Estando en el editor de consulta en la barra de formula vamos a ingresar el siguiente código: =List.Dates (#date (2018,6,15), 365*1, #duration (1,0,0,0)) En el siguiente capítulo estudiaremos Lenguaje M, comprenderemos las fórmulas.
    • 190. Desglosemos esta fórmula: ▪ List.Dates: Indica que se va a crear una lista de fechas. ▪ #date (2018,6,15): Parametrizamos el inicio de la fecha Año, mes, día; en este orden ▪ 365*1: 365, son los días de un año y multiplicamos por el número de años a agregar a la lista, es decir, es la fecha final. ▪ #duration (1,0,0,0): Es el incremento de una fecha a otra días, horas, minutos, segundo, en este orden va aumentar cada fecha, para nuestro caso va crecer diaria. Seleccionamos la fecha 15/06/2018, es una fecha muy importante para nosotros, fue el lanzamiento de este sorprendente libro. Con una sola fórmula ya hemos creado un listado de fechas, llevamos la lista a la tabla, para formar estas fechas a un mayor detalle. En la misma herramienta de lista -> Clic A la tabla. Ver figura 7.1 Aceptamos y se ha cargado la información. Cambiar nombre de Columna 1-> Fecha -> Formato fecha -> Cambiar nombre de consulta 1 a-> Tabla calendario x
    • 191. Con las pestañas de Power Query vamos a agregar nuevas columnas o transformar la columna fecha actual, es decir, vamos a ir a la pestaña Agregar Columna, para expandir y terminar la tabla calendario. Vamos a detallar en lo máximo el campo fecha y así paso a paso vamos creando el objetivo. Seleccionamos la columna Fecha -> Pestaña Agregar Columna ->Fecha. x x
    • 192. Hay un abanico completo para agregar columnas de fecha, puedes desglosarla desde año hasta día, demos un paseo por cada ítem: Año ▪ Año: Agrega una columna con el número de año que tiene cada fecha ▪ Inicio del año: Indica el día en que dicho año comienza. Ejemplo: 1/01/2018 ▪ Final del año: Arroja la fecha en que termina el año agregado. Ejemplo 31/12/2018 Para este caso agregamos la opción año a la tabla calendario. xx x
    • 193. Mes Ahora desplegamos el Mes. Para esto debemos siempre estar con la columna Fecha seleccionada, y así se habilita la opción Fecha. ▪ Mes: Trae el mes en número de la fecha seleccionada ▪ Inicio Mes: Se indica en qué fecha comienzo dicho mes, ejemplo, si tenemos la fecha 15/06/2018, nos arroja 01/06/2018 ▪ Fin de mes: Trae en qué fecha termina la fecha seleccionada ▪ Días del mes: Calcula cuantos días tiene dicho mes, 28, 30 ó 31. ▪ Nombre del mes: Pone el mes en texto, enero, febrero… Para nuestra tabla calendario, seleccionamos la opción Mes y Nombre mes. x x
    • 194. Trimestre Analicemos las 3 opciones del Trimestre. ▪ Trimestre del año: Trae el trimestre a que pertenece cada fecha seleccionada ▪ Inicio del trimestre: Según el trimestre al que pertenece la fecha, calcula en qué fecha inicia dicho trimestre ▪ Final del trimestre: Según el trimestre al que pertenece la fecha, calcula en qué fecha termina dicho trimestre Para nuestro caso solo seleccionamos Trimestre. x x
    • 195. Semana Todo se analiza con la columna fecha seleccionada, vamos a ver las opciones de la semana. ▪ Semana del año: De las 52 semanas que contiene cada año, lleva una columna con la semana que corresponde la fecha seleccionada ▪ Semana del mes: Trae la semana que corresponde dicha fecha del mes, ejemplo, para la fecha 15/06/2018, la semana del año de esta fecha es la 24, la del mes es la 3 ▪ Inicio de la semana: Según la fecha indicada, trae el día en que comienza la semana, para el mismo ejemplo anterior, la fecha en que comienza la semana 24 es 11/06/2018 ▪ Final de la semana: Partiendo de una fecha, y según el número de semana en que se encuentra, trae la fecha en que finaliza esta semana, siguiendo el ejemplo de 15/06/2018, esta semana terminaría el 17/06/2018. Para este caso solo elegiremos Semana del año y Semana del mes Y así va la tabla de calendario. x
    • 196. Día Repetimos los procesos anteriores para ver las opciones día. ▪ Día: Trae el número de día de la semana, enumeradas del 1 al 7 ▪ Día de la semana: Nombra en texto que día de la semana pertenece la fecha, lunes, martes… ▪ Día del año: De los 365 días que contiene el año, hace referencia que día del año pertenece dicha fecha. ▪ Comienzo del día: Se usa en particular para calcular horas o minutos de un día. x
    • 197. ▪ Final del día: Funciona igual al anterior, útil para operaciones entre horas. ▪ Nombre del día: Determina en texto el día, es decir, de lunes a domingo. Para la construcción de la tabla, agregamos día y nombre del día. Inicio -> Cerrar y cargar La Tabla calendario ha sido creada exitosamente, la figura siguiente muestra los 365 días que ha arrojado a Excel, desde la fecha indicada hasta el número de años que le indicamos. Nota. El mismo proceso que se realizó para crear una tabla calendario, funciona de la misma manera para Power BI, en la parte II de este libro, explicaremos otra forma de crear esta tabla en Power BI
    • 198. Calcular el tiempo que han pasado entre dos fechas, es muy común en muchas tareas diarias, Power Query tiene esto muy claro, por eso trae una serie de herramientas para calcular días entre fechas y lo mejor, de la misma manera que hemos venido trabajando, solo con la interfaz y a unos cuántos clics. En el mismo Capítulo 6, iniciemos con el archivo “Calculo de días entre fechas.xlsx” La tabla contiene la información de unas facturas, con su fecha de Factura, Vencimiento y el valor factura. El objetivo es calcular el plazo que tiene cada factura, y a hoy (23/05/2018) cuántos días falta para su vencimiento o si ya está vencida. Entremos a Power Query conectados desde la tabla Datos -> Obtener y transformar datos -> Desde una tabla o rango. x
    • 199. Convertimos la columna Fecha factura a fecha, ya que esta columna está en formato fecha/hora. Lo mismo con la columna fecha vencimiento -> Clic sustituir la actual. Vamos a calcular el plazo que tiene cada factura. ▪ Seleccionamos primero la columna Fecha Vencimiento ▪ Segundo seleccionamos la columna Fecha factura ▪ Pestaña Agregar columna, Opción fecha ->Restar días Nota. Estos cálculos también se pueden realizar de manera fácil en Excel, pero recuerda las ventajas de Power Query, si lo haces con esta herramienta y tienes muchos datos el archivo pesa casi igual, ya que los cálculos que realiza Power Query son internos, lo que no sucede en Excel, o si estás trabajando en Power BI, necesariamente debes hacerlos en el editor x ¡Advertencia! Las columnas se deben seleccionar en el mismo orden que se indicó, Power Query lee el orden de la selección y realiza el cálculo de la misma manera, es decir, Fecha Vencimiento – Fecha factura, en este caso el resultado da número positivos.
    • 200. Seleccionamos Restar días, una nueva columna se ha agregado, cambiamos el nombre de esta columna -> Clic derecho columna Resta -> Cambiar nombre -> “Plazo” Más que fácil, con un clic obtenemos el plazo de cada factura. También queremos calcular al a hoy (23/05/2018) que facturas ya están vencidas y las facturas que se encuentran al día. Más sencillo de lo que piensas. Seleccionar Columna Fecha vencimiento ->Agregar columna -> Fecha -> Antigüedad xx x
    • 201. Efectivamente inserto una columna llamada Antigüedad. Cambiamos formato y nombre. Clic derecho cambiar nombre -> “Días Vencimiento” -> Clic cambiar formato -> Número entero. Inicio Cerrar y cargar. Cambiamos el nombre de la consulta -> “Base Cartera” Con esta base ya calculada y automatizada, puedes realizar varios escenarios, como por ejemplo, generar otra consulta donde solo se muestre las facturas que NO están vencidas. Seleccionamos la consulta -> Clic derecho -> Duplicar. Estando en el editor, nos dirigimos a la columna Días Vencimiento y filtramos. Filtro número -> Menor que… -> Digitamos el número cero “0” x x
    • 202. Aceptamos y listo, una tabla nueva con solo las facturas que están al día. Cambiamos el nombre de la consulta por -> “Facturas al día” Cerrar y cargar y vamos a repetir el proceso para las facturas vencidas, es decir, las que tienen días mayor o igual que cero. Clic derecho en la consulta Base Cartera -> Duplicar -> Filtramos campo Días Vencimiento -> Filtro de número -> Mayor o igual que -> cero “0” x
    • 203. Cambiar nombre de consulta -> “Facturas Vencidas” -> Cerrar y cargar x x u x
    • 204. 3 consultas automatizadas con diferentes escenarios y análisis Obtener diferencias de días entre dos columnas de fechas es muy sencillo con Power Query, lo comprobamos en el punto anterior, en este punto debemos calcular la diferencia de días que han pasado de una fecha a otra, pero en la misma columna. Estudiémoslo con un ejemplo. Necesitamos calcular una columna nueva que reste los días de producción de una fecha a otra, según figura 7.26 Power Query debe tomar la fecha de Producción 102 y réstale la fecha de Producción 101. En la carpeta Capítulo 7, archivo “Cálculo de días en la misma columna.xlsx”, la conectamos con Power Query. Datos -> Desde una tabla o rango. x 6 días
    • 205. Cambiamos el formato de Fecha/Hora -> Formato Fecha -> Sustituir la actual Agregamos una columna nueva -> Agregar Columna -> Columna de índice ->Desde 0 En el cuadro de PASOS APLICADOS, se ha agregado un paso nuevo, llamado Índice agregado, Cambiemos el nombre a FechaFila o un nombre personalizado. Clic derecho sobre el paso aplicado -> Cambiar nombre -> FechaFila x x
    • 206. Le debemos indicar a Power Query que debe agregar una nueva columna de fecha, pero desplazándose una fila hacia abajo, es decir, la primera fecha 15/06/2018 que está en la fila 1 debe pasar a fila 2, para esto es útil la columna índice. Agregamos una columna personalizada, para realizar dicho movimiento de la columna fecha. Pestaña agregar columna -> Columna personalizada -> y agregamos la siguiente fórmula. FechaFila[FECHA]{[Índice]-1} x x
    • 207. Al aceptar, verificamos que se ha creado una nueva columna con las fechas corridas una fila abajo. Debes estar extrañado con la fórmula, pero no te preocupes, ya viene un capítulo donde te explicamos cada detalle, es lo que llamamos Lenguaje M. Clic en Columna Personalizada -> Formato Fecha El objetivo ya está casi resuelto, una nueva columna fecha en Power Query con una fila adelante. Restemos las dos columnas fechas, seleccionamos primero FECHA, segundo Personalizado, estrictamente debe ser en este orden. Agregar columna -> Fecha -> Restar días. Ver figura 7.17. Eliminamos las columnas Índice y Personalizado. x x
    • 208. Por último, cambiamos el nombre de la columna Resta por “Días Producción” y eliminamos el error de la primera fila. ▪ Clic derecho Cambiar nombre ->Días Producción ▪ Clic derecho -> Reemplazar errores -> Digitamos cero “0” y Aceptar Cerrar y cargar y tenemos nuestro análisis de días de producción en una sola columna. x x
    • 209. Los formatos fechas que hemos venido trabajando, no han presentado problema, con solo un clic en el encabezado el dato queda convertido a fecha. ¿Por qué?, Power Query como en Excel, tiene definidas el formato fecha según la configuración regional de cada computador, por lo general en Latinoamérica es “dd-mmmm-aaaa”, día, mes y año, en Estados Unidos la configuración es “mmmm-dd-aaaa”, mes, día y año. Veamos un caso donde debemos cambiar la configuración regional dentro del editor de Power Query, ya que la columna que contiene las fechas trae error al convertir a formato fecha. Si revisamos la FECHA FACTURA del cliente A, vemos que esta 01/30/2018, parece estar en configuración inglés, comprobemos e ingreso al editor de Power Query. Abrimos el archivo de Excel de la carpeta Capítulo 7, “Formato fechas.xlsx.” Datos -> Obtener y transformar datos -> Desde una tabla o rango. x
    • 210. Damos clic en la columna FECHA FACTURA y cambiamos a formato fecha. En su mayoría las fechas salen como error, como informamos en el inicio de la sesión es por la configuración regional. Para corregir estos errores, debemos ir directamente a la configuración regional de Power Query x x
    • 211. Antes de configurar la región, debemos eliminar todos los pasos aplicados en la consulta. Usar configuración regional…, es la opción para no tener este tipo de errores. De nuevo clic en el encabezado de formato de la columna FECHA FACTURA, ver figura 7.37 y seleccionamos la última opción, Usar configuración regional…, ▪ En Tipo de datos -> Seleccionamos Fecha ▪ Configuración regional -> inglés (Estados Unidos)
    • 212. Aceptar y repetimos el mismo paso para la columna FECHA PAGO. Cerrar y cargar. x X
    • 213. CAPÍTULO 8 Después de este capítulo tú sabrás: ▪ Objetos, tablas, registros y listas en Power Query ▪ Declaración de variables ▪ Funciones de texto ▪ Funciones lógicas El Lenguaje M, es el motor de Power Query, todos los movimientos que hemos realizado en la interfaz a la hora de limpiar datos generan un código, es lo que expresa internamente en este lenguaje las acciones realizadas por el usuario. Hasta este punto las fórmulas que hemos aplicado han sido predeterminadas y no conocemos el editor avanzado para programar nuestras propias fórmulas, tablas, listas o cualquier otra ejecución para añadir al proceso ETL. Este capítulo es clave si quieres seguir avanzando en este mundo de Inteligencia de Negocios, ya que vamos a ir mar adentro y explorar nuevos lugares y paisajes de esta sorprendente herramienta. Antes de entrar al editor avanzado de Power Query, vamos a comprender un poco sobre los objetos, la programación de estas herramientas es enfocado a objetos. Hay dos tipos de valores: ▪ Valores Primitivos ▪ Valores Estructurados
    • 214. Valores Primitivos: Los valores primitivos son la forma más simple de un dato, debido a que son atómicos lo cual hace referencia que es un pedacito de dato que no es construido a partir de otro u otros datos. Valores Estructurados: Están compuestos por los valores primitivos, que en su conjunto brinda un dato único, tal es el caso de una columna que esta compuesta por muchos valores primitivos numéricos, pero como conjunto cobra significado real que representa un atributo, por ejemplo, puede ser una columna que indica las distintas tallas de ropa de una tienda de ropa. x Tipo de Dato (Primitivo) Datos Valor Null null Valor Lógico true false Valor Numérico 120, -500, 3.1415, 7.9e-21 Valor de Fecha 2/04/2018 Valor de Texto "Laboratorio", "Datos101" Tipo de Dato (Estructurado) Datos Valor Columna (Campo) Valor Fila (Registro) Valor Tabla Valor de Función (x,y) => x+y
    • 215. Listas Una lista es una secuencia ordenada de valores primitivos o estructurados, esto quiere decir que podemos tener una lista de listas. Las listas pueden ser visualizadas como una columna especifica de una tabla. Podemos crear listas en Power Query, las llaves hacen referencia a una lista {}, es decir, si queremos crear una lista de números, los digitamos entre llaves separados por comas, ejemplo: {1,2,3,4,5,6}. En caso de que sea texto, van entre comillas. Abrimos un libro nuevo de Excel o Power BI. Datos -> Obtener datos -> Desde otras fuentes -> Consulta en blanco. En la barra de fórmula ingresamos: = {1, 2, 3, 4, 5, 6, 7, 8, 9} Enter, Power Query ha creado una lista con esta secuencia de números, y esta lista la podemos convertir a una tabla, lo estudiado en el capítulo 6. Cerrar y cargar. Los resultados en Excel ya la consulta indica que es una lista x
    • 216. De la misma forma podemos crear listas: ▪ Texto = { "A" , "B" , "C" , "D" , "E" } ▪ Alfanuméricas = { 1, "A" , 2 , "B" } ▪ Numérica de auto relleno ={1..31} ▪ Texto auto relleno = {"A".."Z"} ▪ Secuenciales con auto relleno ={1..5,9,10,11..20} ▪ Listas de listas ={{1,2},{3,4,7},{7,7},{9,1,2,5}} Cada una de estas listas las podemos probar en el editor de consulta, creando una nueva consulta en blanco. Si ingresamos cada una de las listas al editor, tenemos un listado de ellas así:
    • 217. Registros (Record) Un registro es una secuencia ordenada de campos. Un campo consiste en un nombre de campo, esto representa el valor tipo texto que identifica de manera única en el registro, el valor del campo puede ser de cualquier tipo. Un registro se puede visualizar como una fila de una tabla (con la identificación de sus respectivas etiquetas de columnas). Abrimos un nuevo libro de Excel -> Datos -> Obtener datos -> Desde otras fuentes -> Consulta en blanco. En la barra de fórmulas ingresamos: = [A=1,B=2,C=3,D=4] Sintaxis: ▪ Los datos están encerrados en corchetes. ▪ El primer registro es el encabezado seguido del signo =, el registro siguiente es la fila o campo de dicho encabezado ▪ Cada columna y campo están separados por una coma. ▪ Los nombres de las columnas no es necesario que estén entre comillas, en caso de ser tipo texto, pero los datos de dichos encabezados si, para textos. Ejemplo: =[Nombre="Didier", Ciudad ="Medellín", Años =31] x
    • 218. El resultado de los registros en Power Query los lleva en forma horizontal. No hay inconveniente, convertimos estos registros a tabla y luego transponemos. Por último, vamos a la pestaña Transformar -> Transponer -> Usar la primera fila como encabezado. Tenemos una tabla con encabezados y datos correctos. Cerrar y cargar. También podemos crear varios registros y hacerlos parte de una lista. Ejemplo: Creemos una consulta en blanco e ingresemos esta fórmula en la barra fx ={[Nombre="Didier",Profesión="Ing.Financiero"],[Nombre="Fabián",Profesión="Ing. Industrial"],[Nombre="Miguel”, Profesión="Ing. Industrial"]} x
    • 219. Tenemos 3 corchetes encerrados en llaves {}, una lista, cada corchete separado por una coma, la lista trae los registros de nombre y profesión. Convertimos la lista en tabla -> Expandimos la columna -> Deshabilitar Usar nombre de columna original como prefijo. x x
    • 220. Aceptamos -> Cerrar y cargar, poseemos una lista de varios registros. Tablas Las tablas son una secuencia ordenada de filas y las filas son una secuencia ordenada de valores. Es una combinación de listas y/o registros. Veamos. Abrir un libro nuevo de Excel -> Crear una consulta en blanco desde Datos. Ingresamos esta fórmula: = #table({"Libro", "Valor"} ,{{"Power Query", 30},{"DAX", 38},{"Power BI", 35}}) Damos enter, y se crea la tabla. Sintaxis: ▪ #table: Nombre el paso a aplicar como una tabla ▪ Después del paréntesis y entre las llaves se encuentras los dos encabezados de columna ▪ Las 3 llaves siguientes, representan las filas según el orden los encabezados creados. x x
    • 221. Cerrar y cargar. La tabla de datos ya está en Excel La pregunta que surge es, ¿Cómo Power Query almacena los pasos ejecutados?. Como cualquier herramienta de programación, Power Query contiene un Editor avanzado, donde organiza, almacena y registra cada uno de los pasos, funciones o acciones realizadas por el usuario. Abrimos el archivo que acabamos de crear en el paso anterior. Tablas Carpeta Capítulo 8 -> Tablas.xlsx -> Nos ubicamos en la consulta -> Clic derecho editar Dentro del editor de consultas, nos dirigimos a la pestaña Vista -> Editor avanzado. Al dar clic en Editor avanzado, hemos encontrado como procesa cada paso Power Query x x
    • 222. Hay dos palabras claves en el editor let y la palabra in. Todo lo que está en medio de let e in, es el código que se ejecuta. Let let indica el anuncio de un bloque de programación (líneas de código) donde se hace la declaración de las variables. Cada declaración de variable se indica en su propia sentencia (para dividir una sentencia de otra es necesario separarlas por coma (,)) in Es un bloque de programación donde se indica la variable que arrojará como resultado de la consulta, normalmente es una tabla, sin embargo, puede ser un valor primitivo como: 1, “ABC”, null o un valor estructurado como una lista o registro (En el in no tiene que ir necesariamente la última variable declarada en el let, de hecho, ni siquiera es necesario que vaya una variable declarada en el let) x
    • 223. La conjunción del bloque let y el bloque in tienen como objetivo arrojar un resultado generalmente para la consulta total (aunque sirve como paso intermedio) Salgamos un momento del Editor avanzado, apliquemos un formato de datos a cada columna. Clic encabezado Libro -> Formato texto. Clic encabezado Valor -> Formato número entero. Volvemos al Editor avanzado -> Vista -> Editor avanzado. Ver figura 8.13. Al cambiar el tipo de dato a las dos columnas, Power Query añadió este paso, al panel de PASOS APLICADOS, nombrado como “Tipo cambiado” y en el editor avanzado, realizó un código interno comenzado con un # y agregando el nombre del paso entre comillas, ya que el nombre está separado por un espacio, después del igual es lo que llamamos Lenguaje M. A medida que vamos realizando acciones en la consulta, se va añadiendo estos pasos creados como códigos en el editor avanzado, y el último paso agregado es el final después del in. x
    • 224. Creación de Bloques Realicemos algunos ejemplos, creando algunos bloques simples y así comprenderemos un poco más el lenguaje M. Abrimos un libro de Excel nuevo -> Datos -> Desde otras fuentes -> Consulta en blanco Vamos a vista -> Editor avanzado e ingresamos este código Damos clic en listo y nos lleva de vuelta al editor con estos pasos ejecutados. let x = 8, y = 10, z = x+y in z x
    • 225. El resultado del código es 18, ya que la variable x= 8, y=10, z= x+y. Adicional Power Query deja registrado en el panel de PASOS APLICADOS cada uno de los pasos ejecutados. Si convertimos este resultado a una tabla, de nuevo se ingresa un paso nuevo. Convertimos a tabla el resultado -> Vista -> Editor avanzado La figura 8.17 muestra el paso creado de tabla. ▪ #"Convertida en tabla": Nombre del paso creado, este puede cambiar si deseamos. ▪ #table(1, {{z}}): Convierte a tabla el resultado z(18), con una columna. Cerrar y cargar, y este resultado se ha creado como tabla. Ejemplo 2: También podemos realizar una serie de pasos en M, pero el resultado final sea una lista. En el mismo libro de Excel que estamos trabajando, creemos de nuevo una consulta en blanco e ingrese este código en el editor avanzado. x
    • 226. Aunque el código es el mismo del anterior, el resultado final es una lista, ya que fue la indicación que dimos después del in. let x = 8, y = 10, z = x+y in {1,2,3} x Nota. El código que se ingresa después de la instrucción let, no siempre va a ser el resultado en la consulta, ya que todo depende de la salida o instrucción que ingresemos después del in, es decir, si después del in va una variable o acción totalmente diferente a lo hecho en el let, es este último el que arroja como resultado.
    • 227. Ejemplo 3: Dentro del código M tenemos la posibilidad de ingresar un let y un in, dentro de otro let y otro in. Creemos una consulta en blanco e ingresemos este código en el editor avanzado. let i = 1, j = 7, k = (i*2)+(j/2), SalarioReal= let a=10, b = a+(a*0.1) in b in SalarioReal - k x
    • 228. El resultado es 5,5. Si haces toda la operación del primer let el resultado es 5,5, y el resultado de la variable SalarioReal es 11, al final restamos SalarioReal-k=5,5. Cerrar y cargar. Con 3 ejemplos claros podemos comprender lo extenso que puede ser el lenguaje M, todo un mundo por explorar, así como en Excel, no tiene límites, hasta donde tu quieras llegar en fórmulas, matrices, tablas, macros, gráficos lo puedes hacer, pero no te preocupes, queremos darte la mejor introducción a este gran mundo y poco a poco vamos juntos avanzando. Declaración de variables Una variable es un espacio en memoria para almacenar algo. En Visual Basic es necesario definir las variables para detectar el tipo de dato y tamaño que se va a almacenar. Por ejemplo : Dim x AS Integer ▪ Dim: Indica el comienzo de una variable. ▪ x: Es el nombre de la variable ▪ AS Integer: El tipo de dato a almacenar Nombres de variables Las variables pueden tener un único nombre o un nombre compuesto, solo que si el nombre es compuesto al inicio se pone el símbolo # y entre comillas el nombre de la variable. Ejemplos : Nota. En el lenguaje M no existe la necesidad de una palabra reservada que indica que se va a declarar una variable, ya que van siempre dentro de un bloque let que señala que todo lo que va allí son variables. Tampoco existe la necesidad de indicar el tipo de dato, el internamente detecta que tipo es.
    • 229. ▪ Salario =100 ▪ #”Salario Base”= 300 ▪ #”Fecha actual”= #date(2018,6,15) Caracteres en el editor avanzado Antes de iniciar con funciones, debemos entender los diferentes caracteres que hemos visto en la introducción del Editor avanzado: ▪ (Paréntesis) (): Hace referencia a una función ▪ {Lista} {}: Son los datos que hacen parte de la lista ▪ [Registros] []: Indica encabezados de columna o registros de datos ▪ #”Paso aplicado”: Son nombres de los pasos aplicados u otros pasos internos de Power Query, tales como #date ▪ “Texto”: Todos los textos deben estar entre comillas, tal como funciona en las fórmulas de Excel. ▪ //Comentario: // Si se quiere informar algo sobre dicho código, algún comentario o indicación, se pone al final de la línea de código. ▪ /* Comentario para varias líneas de código*/: Se comentan varias líneas de código al mismo tiempo. Se ingresa /* en la primera línea y */ en la línea de código final. Funciones básicas Iniciemos con las funciones básicas en Power Query, cálculo aritméticos, son relativamente sencillos de realizar dentro de la interfaz y en el editor avanzado. Abrimos el archivo “Funciones básicas.xlsx”, se encuentra en la carpeta Capítulo 8. Tenemos la tabla de Producción la cual se limpió en el capítulo 3. Datos -> Obtener y transformar datos -> Desde una tabla o rango Iniciamos convirtiendo el tipo de datos Fecha a: Fecha de envío y Fecha de Llegada.
    • 230. Dentro del editor de Power Query seleccionamos las 3 columnas de costos, para calcular el costo total. ▪ Seleccionamos Costo del Producto CTRL -> Costo de Envío CTRL -> Costo Empaque ▪ Pestaña Agregar columna -> Estándar ->Sumar Con solo estos pasos obtenemos una nueva columna de adición -> Clic derecho cambiar nombre -> “Costo Total” Otra forma de realizar esta operación es mediante columna personalizada. Agregar columna -> Columna personalizada. Cambiamos nombre -> Costo Total 2 ->[Costo de Envio]+[Costo Empaque]+[Costo del Producto] x x
    • 231. En este caso funciona como Excel, pero ya no señalamos celdas, sino encabezados de columnas, con doble clic o insertar, llevamos los campos al panel de fórmulas de columnas personalizada. Otra manera de realizar operaciones aritméticas. Echemos un vistazo al código en el editor avanzado. x
    • 232. Hemos organizado un poco este código, y aún así parece algo muy complejo de entender, pero no, si sigues paso a paso la introducción al lenguaje M, de seguro lo vas a entender. ¿Pero si no lo logramos entender?, puedes pensar esto, te doy la respuesta con otra pregunta, ¿Has necesitado del Editor avanzado en estos 8 capítulos?, la respuesta es NO, con la interfaz y algunos trucos hemos logrado todo esto, seguimos avanzado y poco a poco sumaremos experiencia en esta gran herramienta. Ahora entiendo lo sencillo que es realizar cálculos básicos, vamos a realizar las siguientes operaciones: ▪ Venta: [Precio de Venta]*[Unidades] ▪ Costo Total Pdcción: [Costo Total]*[Unidades] ▪ Utilidad:[Venta] - [Costo Total Pdcción] ▪ Utilidad %: [Utilidad]/[Venta] Las operaciones básicas de suma, resta, división y multiplicación funcionan de la misma manera que la función restar días, es decir, en el orden que se seleccione las columnas de esa misma forma realiza la operación. Ver figura 7.17.
    • 233. Funciones de texto. Al igual que Excel, Power Query tiene una variedad de funciones de texto para ser aplicados en el proceso ETL, dichas funciones al igual que las básicas, se pueden aplicar de diferentes maneras. Iniciemos con el libro de Excel “Funciones de texto.xlsx” del capítulo 8. Creamos una consulta desde la tabla. Datos -> Obtener y transformar datos -> Desde una tabla o rango. Hay una columna llamada DATOS, hay 3 tipos de datos allí: NIT – CODIGO -FECHA Tomemos de ejemplo el primer registro: 900271AS96-18/07/2018. Todo está en la misma columna, debemos separar los datos de tal manera que los registros queden por separados. 900271 | AS96 | 18/072018. La forma más sencilla y habitual es ir a la pestaña Agregar -> Extraer. x
    • 234. ▪ Largo: Extrae el número de caracteres que contiene cada registro, en Excel es la misma función LARGO. En el lenguaje M la función es: Text.Length(Columna) Seleccionemos la columna DATOS -> Agregar columna -> Extraer -> Largo Vamos a escribir la fórmulas en una columna personalizada. Agregar Columna personalizada -> Text.Length([DATOS]) Da como resultado el mismo objetivo x
    • 235. ▪ Primeros caracteres: Extrae los caracteres que contiene cada registro según el número indicado de izquierda a derecha, en Excel es la función IZQUIERDA. En el lenguaje M la función es: Text.Start(Columna, Número de caracteres a extraer) Seleccionar la columna DATOS ->Agregar columna -> Extraer -> Primeros caracteres -> 6 Aceptamos y efectivamente se agrega la columna con la extracción de los primeros 6 caracteres. Podemos realizar esta misma acción con la fórmula en una columna personalizada. Agregar columna personalizada -> Nombramos “Izquierda” -> Text.Start([DATOS],6)
    • 236. Dos columnas iguales de dos maneras diferentes de realizarlo. ▪ Últimos caracteres: Extrae los caracteres que contiene cada registro según el número indicado de derecha a izquierda, en Excel es la función DERECHA. En el lenguaje M la función es: Text.End(Columna, Número de caracteres a extraer) Seleccionar la columna DATOS ->Agregar columna -> Extraer -> Últimos caracteres -> 10. Es el número de caracteres que contiene la fecha. x
    • 237. Cambiamos el tipo de dato a Fecha. Realizamos este misma operación con columna personalizada. Agregar columna personalizada -> Nombramos “Derecha” -> Text.End([DATOS],10) Cambiar forma a fecha. ▪ Rango: Extrae los caracteres de cualquier posición del texto, en Excel es la función EXTRAE. En el lenguaje M la función es: Text.Range(Columna, Posición a iniciar a extraer ,Número de caracteres a extraer). También sirve la función Text.Middle. xx ¡Advertencia! Estas funciones en Power Query trabajan en base cero, es decir, si vamos a extraer del texto 900271AS96-18/07/2018, solo necesitamos el código AS96, el primer carácter que es la “A”, sería en términos normales el número 7, para Power Query, es el número 6, ya que el primer carácter lo cuenta como número cero. 0,1,2,3…
    • 238. Seleccionar la columna DATOS ->Agregar columna -> Extraer -> Rango ->Índice inicial :6 -> Número de caracteres: 4 Ahora probemos con la fórmula. Agregar columna personalizada -> Nombramos “Extrae” -> Text.Range([DATOS],6,4) O con la función -> Text.Middle([DATOS],6,4) x x
    • 239. Estas son las funciones básicas de extracción de textos o registros, útil para separar o transformar campos de columnas. Estudiemos otro bloque de funciones de texto, nos van a ayudar a dar un mejor formato a los datos, tales como letras en mayúsculas, minúsculas, nombres propios, quitar espacios y caracteres especial que no deben ir en el texto. Pestaña Agregar columna -> Formato. ▪ Minúsculas: Convierte todo el texto a minúsculas, la fórmula en Excel es MINUSC(), en M es Text.Lower(). Seleccionamos la columna PRODUCTO -> Agregar columna ->Formato -> minúsculas. Así de simple, uno par de clic y toda una columna se ha agregado con los textos en minúsculas. Agregamos esta fórmulas directamente en una columna personalizada. Agregar Columna personalizada-> Cambiar nombre -> Texto Minúscula -> Text.Lower([PRODUCTO]).
    • 240. De estas dos formas podemos tener las columnas convertidas a minúsculas. ▪ MAYÚSCULAS: Convierte todo el texto de minúsculas a Mayúsculas, la fórmula en Excel es MAYUSC(), en M es Text.Upper(). Seleccionamos la última columna Texto Minúsculas -> Agregar columna ->Formato -> MAYÚSCULAS. x
    • 241. Agregamos esta fórmulas directamente en una columna personalizada. Agregar Columna personalizada-> Cambiar nombre -> Texto Mayúscula-> Text.Upper([Texto Minuscula]). ▪ Poner En Mayúscula Cada Palabra: Convierte la primera letra de cada palabra en mayúscula, la fórmula en Excel es NOMPROPIO(), en M es Text.Proper(). Seleccionamos la última columna Texto Mayúscula -> Agregar columna ->Formato -> Poner En cada Mayúscula Cada Palabra. Agregamos esta fórmulas directamente en una columna personalizada. Agregar Columna personalizada-> Cambiar nombre -> Nombre Propio-> Text.Upper([Texto Mayúscula]).
    • 242. ▪ Recortar: Quita espacios iniciales y finales en cada texto, la fórmula en Excel es ESPACIOS(), en M es Text.Trim(). Ejemplo Text.Trim([DATOS]). ▪ Limpiar: Quita caracteres especiales dentro de una cadena de texto, la fórmula en Excel es LIMPIAR (), en M es Text.Clean(). Ejemplo Text.Clean([DATOS]). Si deseamos saber más sobre fórmulas de Power Query damos clic en Información Sobre fórmulas de Power Query, a la hora de agregar una columna personalizada. x x
    • 243. Funciones Lógicas. Las funciones lógicas son muy usadas en Excel, ya que ayudan a validar datos para arrojar un resultado final. Power Query tenía esto claro desde la creación de esta herramienta, y no fue ajeno a la necesidad, como todo lo visto anteriormente, las funciones lógicas en este nuevo Power de Excel y Power BI se usan de manera muy fácil, tanto desde la interfaz como en la programación en M. Abrimos el libro de Excel “Funciones Lógicas.xlsx” hoja Lógica 1, de la carpeta capítulo 8. Datos -> Obtener y transformar datos -> Desde una tabla o rango. Estando en el editor de consultas, vamos a Agregar columna -> Columna condicional. ¡Advertencia! Las fórmulas en Power Query deber ser digitada con exactitud, es decir, Power Query diferencia las mayúsculas de minúsculas, por ende si no se escriben de tal manera, saca un error. Su cuadro de diálogo con las funciones no es como Excel, te acepta el nombre de la función de cualquier forma, y no tiene auto ayudas o guía para usar cada función x
    • 244. En la tabla tenemos el siguientes escenario, las ventas mes a mes y el presupuesto. Vamos a validar si las ventas fueron mayores o iguales al presupuesto y agregar una nueva columna, donde informe si CUMPLIÓ o NO CUMPLIÓ. Al ingresar un columna condicional, debemos parametrizar: ▪ Nuevo nombre de columna: Es un nombre opcional para el nuevo campo de columna ▪ Nombre de columna: Seleccionamos la columna a validar, en este caso es VENTA. ▪ Operador: El tipo de comparación a realizar, mayor que, mayor o igual que, menor que, menor o igual que, igual o no es igual. Para el ejemplo es mayor o igual que. ▪ Valor: Podemos escribir un valor fijo o hacer la comparación con otra columna. Seleccionar columna -> PRESUPUESTO. ▪ Salida: El resultado es la variable de salida, si esta condición se cumple digitamos CUMPLIÓ. ▪ De lo contrario: Es el resultado contrario si no cumple la validación. NO CUMPLIÓ. x
    • 245. Con todos los parámetros digitados, damos aceptar y una nueva columna con validación lógica está en la consulta. Tenemos la otra opción de realizarlo escribiendo directamente la fórmula en una columna personalizada, en M la fórmulas es así: Agregar columna personalizada -> Cambiar nombre -> ESTADO 2 -> Ingresar esta fórmula -> if [#"VENTA "]>= [PRESUPUESTO] then "CUMPLIÓ" else "NO CUMPLIÓ" x
    • 246. La fórmula funciona casi igual que al Excel, solo que en este caso es en inglés, primero válida la columna VENTA si es mayor o igual al campo PRESUPUESTO, si es verdadero “CUMPLIÓ”, de lo contrario “NO CUMPLIÓ”. Y de esta misma manera podemos validad ya sean entre columnas, o columnas con números o textos fijos. Aceptar y tenemos el mismo resultado. x
    • 247. Funciones Lógicas Anidadas. Uno de los retos de todo usuario de Excel, es aprender a anidar funciones, en especial las funciones lógicas, hasta el momento solo hemos visto funciones simples, ahora veremos de nuevo como Power Query abarcó la unión o validación de varios criterios. Tenemos la siguiente foto: Los vendedores van a ganar comisión siempre y cuando cumplan el presupuesto o si tienen clientes nuevos. Si cumple alguna de estas dos condiciones comisionan, de lo contrario no. Abrimos el libro “Funciones Lógicas Anidadas.xlsx”, ingresamos Power Query desde la tabla. Datos -> Obtener y transformar datos -> Desde una tabla o rango. Estando en el editor de consultas, vamos a Agregar columna -> Columna condicional. Ver figura 8.41 Parametrizamos la primera parte como en el caso anterior, lo único nuevo es agregar regla. x
    • 248. Al agregar regla, se desglosa una nueva parametrización que funciona exactamente igual a los visto anteriormente, si el vendedor cumple con alguna de estas dos validaciones GANA, de lo contrario NO GANA comisión. Aceptamos y tenemos la solución. x
    • 249. Si validamos el primer registro, el vendedor A no cumplió el presupuesto, pero como tuvo clientes nuevos, gana comisión. Esta misma solución vamos a escribirla en una columna personalizada y así es como la guarda el lenguaje M. Agregar columna personalizada -> Nombre de columna -> COMISION 2 -> Ingresamos esta fórmula ->if [VENTA]>=[PRESUPUESTO] then "GANA" else if [CLIENTES NUEVOS]="SI" then "GANA" else "NO GANA" La fórmula valida primero si la VENTA ES >= al PRESUPUESTO, si es verdadero “GANA”, vuelve y valida si CLIENTES NUEVO=”SI”, entonces “GANA”, si no cumple ninguna de las dos validaciones “NO GANA”. Dos resultados iguales de formas diferentes. Power Query permite agregar todos los niveles que sean necesarios para realizar validaciones o funciones anidadas de lógica. x
    • 250. Tratar errores en fórmulas. Si al realizar una fórmula, el resultado es un error, en Excel este tipo de errores lo tratamos con la función SI.ERROR(), Power Query ha diseñado una función llamada try otherwise para que el resultado no sea un error sino una salida que deseamos. Tenemos una tabla con unas fechas de entrega y unas fechas de pedido, calcular los días que hay entre fecha y fecha ya lo manejamos súper bien, pero que sucede si no tenemos unas fechas de entrega, nos va a salir error. Veamos. Faltan dos fechas de entregas pendientes por resolver, hagamos los cálculos de días de las fechas haber que sucede. Abrimos el archivo “Tratar errores.xlsx” en la carpeta capítulo 8. Datos -> Obtener y transformar datos -> Desde una tabla o rango. Cambiamos el tipo de datos de las dos fechas a fechas y seleccionamos primero FECHA ENTREGA y luego FECHA PEDIDO. Agregar columna ->Fecha -> Restar días. x
    • 251. La columna FECHA ENTREGA ya tiene alguno errores y al realizar este cálculo de restar días, me trae los errores en el resultado. Si al realizar el cálculo ningún resultado debe arrojar error, debemos usar la función try otherwise. Agregar una columna personalizada ->Cambiar el nombre por “Días Faltantes” -> Escribimos está fórmula : try [FECHA ENTREGA]-[FECHA PEDIDO] otherwise 0 x
    • 252. Aceptar y cambiar el tipo de dato por número entero. El error lo hemos reemplazado por cero, también podemos reemplazar el error por otra fórmulas o texto. Cerrar y cargar. x x
    • 253. Descargar listado de funciones de Power Query. Para comprender más sobre las funciones de Power Query podemos entrar al enlace según la figura 8.40, o podemos descargar el listado en Excel desde la interfaz de consulta de Power Query. Abrimos un libro de Excel nuevo y entramos a la interfaz desde una consulta en blanco. En la barra de fórmulas escribimos: = #shared Convertimos los registros en tabla. Cerrar y cargar y tenemos todo un listado de funciones, tablas y tipos de datos que recorrer y estudiar. x
    • 254. CAPÍTULO 9 Después de este capítulo tú sabrás: ▪ Análisis de pedidos con inventarios ▪ Consolidar información contable ▪ Análisis de ventas Ya después de todo lo visto en esta valiosa herramienta, vamos a realizar algunas aplicaciones a la vida diaria en el manejo de datos e informes, esto abrirá un poco tu mente a lo que podemos alcanzar con Power Query, a esto llamamos inteligencia de negocios, a automatizar tus procesos, a tener análisis y confiables para la toma de decisiones. El objetivo es auditar diariamente la cantidad de pedidos ingresado a la empresa y cruzarlo con el inventarios disponible para determinar el nivel de respuesta, si con este inventario se suple o no la demanda requerida. Tenemos dos tablas, una de los inventarios disponibles, y la otra tabla es la transaccional de pedidos, donde a diario se registran los pedidos de la compañía. La meta es cruzar los inventarios y consolidar los pedidos por referencia y determinar si dicho inventario cubre la cantidad de pedidos.
    • 255. Abrimos el archivo “Caso 1.xlsx” de la carpeta Capitulo 8, y seguimos estos pasos: ▪ Nos conectamos a la Tabla 1 de la hoja Inventarios . ▪ Datos -> Obtener y transformar datos ->Desde una tabla o rango ▪ Cambiamos el nombre de la consulta por: “Inventarios” ▪ Cerrar y cargar en.. Elegimos solo conexión. Elegimos solo conexión, porque esa información solo la necesitamos para cruzar con la tabla pedidos, más no para arrojar en Excel. x
    • 256. ▪ Nos conectamos a la Tabla 2 de la hoja Pedidos . ▪ Datos -> Obtener y transformar datos ->Desde una tabla o rango ▪ Cambiamos el nombre de la consulta por: “Pedidos” ▪ Como es una tabla transaccional, donde los productos pueden repetirse n veces, debemos agrupar los datos por CODIGO y NOMBRE. ▪ Pestaña Transformar -> Agrupar por ->y llenamos los parámetros. Debe ser una agrupación avanzada ya que contiene dos campos: CONDIGO y NOMBRE. Cambiamos el nombre de la columna, la operación sea suma de la CANTIDAD. Aceptar y ya tenemos todos los pedidos consolidados. Combinamos esta consulta con la de inventarios, y así realizamos el cruce la información. xx
    • 257. ▪ Inicio -> Combinar consultas -> Combinar consultas ▪ Seleccionamos la consulta Inventarios y escogemos en cada tabla el campo en común, en este caso sería el CODIGO. ▪ Aceptar y expandimos la columna Inventarios ▪ Filtramos solo el campo CANTIDAD y deshabilitar Usar el nombre de la columna original como prefijo. x X
    • 258. ▪ Cambiamos el nombre de la columna CANTIDAD -> “INVENTARIO DISPONIBLE” ▪ Debemos restar el INVENTARIO DISPONIBLE – TOTAL PEDIDOS, para calcular y determinar el estado del inventario. ▪ Seleccionamos la columna INVENTARIO DISPONIBLE y luego TOTAL PEDIDOS -> Agregar columna -> Estándar -> Restar x
    • 259. ▪ Cambiar el nombre de la columna Resta por “DIFERENCIA INV” La columna DIFERENCIA INV es el resultado de la diferencia del inventario y el total de pedidos, si el resultado es positivo, significa que el inventario disponible puede suplir la demanda, de lo contrario es la cantidad que hace falta para completar la referencia solicitada. Démosle un toque mejor: ▪ Agregar columna -> Columna condicional . X
    • 260. Validamos si la diferencia de inventario es mayor o igual que cero, el inventario esta Ok, de lo contrario se debe solicitar más inventario para cubrir los pedidos. Aceptar -> Cerrar y cargar y ha resultado todo un éxito nuestro proceso. De esta manera podemos tener auditados y controlados los inventarios y pedidos de la compañía. La parte comercial en una compañía es un área muy determinante para su operación, es la primera cadena que juega un papel importante para la toma de decisiones. Power Query adicional al proceso ETL que realiza para limpiar y organizar datos, también podemos realizar cálculos para la toma de decisiones, como por ejemplo, quiero saber cuál es el mejor cliente de cada vendedor y que porcentaje contribuye a las ventas. Abrimos el archivo “Caso 2.xlsx” de la carpeta Capitulo 5.
    • 261. Tenemos una tabla de ventas con registro mensual, el objetivo es determinar mes a mes cual es cliente que mayor tiene de cada vendedor y su porcentaje de participación. Seguimos este paso a paso: ▪ Seleccionamos la tabla ventas -> Datos -> Desde una tabla o rango. ▪ Realizamos un agrupación avanzada -> Pestaña Transformar -> Agrupar por -> Avanzado -> Agrupamos por MES y agregar agrupación para VENDEDOR. ▪ En Nuevo nombre de columna “TOTAL” -> Operación “-Suma” -> Columna “VENTAS”. ▪ Agregar agregación -> En Nuevo nombre de columna “DETALLE” -> Operación “Todas las filas”. Este es el ejemplo x
    • 262. Aceptar y hay una nueva columna DETALLE. En la última opción de la agrupación, la operación indicada fue que mostrara todas las filas, adicional de la suma total por MES y VENDEDOR. x
    • 263. La columna DETALLE es de tipo tabla, donde específica los datos de cada registro. Agreguemos una columna personalizada para encontrar el cliente y la venta máxima por vendedor y mes. ▪ Agregar columna personalizada -> Ingresar esta fórmula -> ▪ Table. Max([DETALLE],"VENTAS") La fórmula extrae el dato máximo de la venta de la tabla detalle. Aceptar, la columna personalizada muestra una tabla de registros.
    • 264. Cada registro detalle el cliente que mejor venta tuvo de cada vendedor. ▪ Expandir columna personalizada -> Seleccionar CLIENTE y VENTAS. Deshabilitar Usar nombre de la columna original como prefijo. Aceptar. Eliminamos la columna DETALLE -> Cambiar nombre de columna VENTAS “VENTA MAX” -> Tipo de dato -> Número entero. Por último solo nos queda calcular el porcentaje de venta de cada cliente sobre el total por vendedor y mes. ▪ Seleccionamos la columna VENTA MAX y TOTAL, en este mismo orden. ▪ Agregar columna -> Estándar -> Dividir x
    • 265. Cambiar nombre de columna División -> “% Venta” -> Cambiar tipo de dato -> Porcentaje Todo un análisis de ventas listo para la toma de decisiones. x xx
    • 266. Uno de los mayores esfuerzos que realiza un contador diario es tratar de organizar y consolidar los datos para la presentación de informes, les toma mucho tiempo cada semana o cada mes tener todo al día. Veamos varios trucos y funciones con Power Query, de seguro será de utilidad para tu trabajo diario. Abrimos el archivo Caso 3. Los datos son un balance de prueba exportados desde el sistema contable, el objetivo es consolidar los datos por grupos o cuentas principales para realizar los respectivos informes. Tenemos varios inconveniente: ▪ La columna cuenta en cada registro tiene espacios al final, por tal razón no está en tipo número. ▪ La cuenta tiene un nivel mínimo de 2 dígitos, para los informes los necesitamos a partir del grupo o cuenta mayor, 1 dígito. ▪ Se debe consolidar la información x
    • 267. Nos ubicamos en la celda A3, Datos -> Desde una tabla o rango -> Aceptar. Inmediatamente Power Query reconoció el campo cuenta como un número y quito los espacios. Agregamos una columna para extraer el primer carácter, y determinar si la cuenta es del grupo 1, 2, 3,4,5 o 6. Agregar columna ->Extraer -> Primeros caracteres -> 1 -> Cambiar nombre -> Grupo x
    • 268. De la misma columna Cuenta, seleccionamos y vamos a extraer el largo de cada cuenta, para poder filtrar y tener los datos consolidados por Grupo y cuenta a un nivel de 2 dígitos. Seleccionar columna Cuenta -> Agregar columna -> Extraer -> Largo. Filtramos de la columna Longitud a 2 niveles y eliminamos la columna Longitud. x x
    • 269. Reordenamos la columna Grupo, con clic sostenido la movemos a primera posición de la tabla. Cerrar y cargar, la información en Excel lista para ser procesada contablemente. Si deseamos realizar solo un resumen solo por grupo, duplicamos la consulta y agrupamos por grupo. ▪ Clic derecho en la consulta -> Duplicar ▪ Pestaña Transformar -> Agrupar por -> Avanzado -> Agrupar por: GRUPO ▪ Nuevo nombre de la columna: “Saldo Anterior” -> Operación: “Suma” -> Columna -> Saldo Anterior ▪ Agregar agregación ▪ Nuevo nombre de la columna: “Débitos” -> Operación: “Suma” -> Columna -> Débitos ▪ Agregar agregación ▪ Nuevo nombre de la columna: “Créditos” -> Operación: “Suma” -> Columna -> Créditos ▪ Agregar agregación
    • 270. ▪ Nuevo nombre de la columna: “Nuevo Saldo” -> Operación: “Suma” -> Columna -> Nuevo Saldo Aceptar. Se consolido la información por grupo o cuenta mayor, un análisis rápido contable. Cerrar y cargar. x x
    • 271. Este proceso como todos los anteriores ya queda automatizado, solo es actualizar los datos de la información contable, clic derecho en cada consulta y los datos han sido refrescados. Y así hemos llegado al final de esta gran aventura de aprendizaje de la primera parte. Te recomendamos la parte dos de este libro, análisis y modelamiento de datos. Invierte tiempo en lo que te va a ahorrar tiempo, tiempo es vida y dinero. Nota. Todo lo de Power Query en esta primera parte se realizó en Excel, te retamos a que cada uno de los ejercicios los repitas en Power BI, y así afinarás cada vez más tus conocimientos.
    • 273. EN ESTA PARTE Capítulo 10 Introducción al Modelo Tabular Capítulo 11 Topología y Relación entre Tablas Capítulo 12 Los 3 Sabores de Cálculos DAX y un Aroma Capítulo 13 Recetas DAX, Medidas Rápidas Capítulo 14 La Llave para Dominar DAX: Síntesis de Contextos Capítulo 15 Funciones Doradas: FILTER, Iteración y ALLxxxx Capítulo 16 Propagación de Filtros al desnudo Capítulo 17 La Crema y Nata de las Funciones: CALCULATE Capítulo 18 Indicadores y Métricas de Razones y Proporciones Capítulo 19 Indicadores y Métricas de Inteligencia de Tiempo En esta parte se verá todo lo necesario para nutrir nuestro reporte o cuadro de mando con cálculos, métricas e indicadores, es decir, todo lo que tiene que ver con Power Pivot y su lenguaje de funciones denominado lenguaje DAX.
    • 274.
    • 275. CAPÍTULO 10 Después de completar este capítulo tú sabrás: ▪ Qué es el modelo multidimensional y tabular ▪ Modelo Tabular vs Modelo Multidimensional ▪ Qué es Power Pivot y el lenguaje DAX ▪ La Suite Power BI Desktop Este capítulo provee una introducción sobre las historia y descripción del modelo tabular, porqué es vital para toda analista, así como una breve reseña de la existencia de un segundo modelo analítico denominado el modelo multidimensional. SQL Server es una familia de softwares que incluye al conocido: SQL Server management studio. No obstante, dentro de la suite de SQL Server también existe una parte analítica llamada SQL Server Analysis Services o SSAS. La primera versión de SSAS fue introducida en 1999 y traía consigo un motor llamado modelo multidimensional, sin embargo, en aquel tiempo se le denominada solamente OLAP. El modelo multidimensional era el único motor analítico de SSAS hasta el año 2012, en dicho año Microsoft introdujo una nueva versión de SSAS que ahora tenía dos motores analíticos, el primero, el ya conocido modelo multidimensional y uno nuevo nombrado modelo tabular, este último es el que nos interesa ya que es el motor analítico utilizado también en: Power Pivot para Excel y Power BI.
    • 276. ¿Por qué el modelo tabular? El primer motor o el OLAP fue llamado Unified Data Modeling del 2012 en adelante, en este motor únicamente tenemos el lenguaje MDX para definir el modelo de negocios y fórmulas para el análisis, igualmente es el utilizado para hacer consultas al modelo de datos, he aquí un ejemplo de un script MDX: El modelo multidimensional ha sido implementado por muchas empresas en todo el mundo, sin embargo, este motor fue diseñado con los hardware existentes hace décadas. Ahora con muchísima más RAM y procesadores supremamente potentes Microsoft ha creado un nuevo motor que toma como parámetros iniciales los nuevos recursos de computadores actualmente disponibles, este motor es precisamente el modelo tabular. El modelo tabular se rige para su parte analítica con el lenguaje DAX, he aquí un script DAX: WITH MEMEBER [Data].[Calendar].[Average] AS AVG ( [Data].[Calendar].[Calendar Year], [Measure].[Internet Sales Amount] ) =CALCULATE ( SUMX ( Pedidos; ROUNDUP ( Pedidos[Costo Total]; 0 ) ); Pedidos[País] IN { "Colombia"; "Brasil"; "Chile" }; Pedidos[Tipo de Compra] = "Devolución" )
    • 277. El modelo tabular es el utilizado en las tecnologías: Power Pivot para Excel y Microsoft Power BI, los cuales son objetos de estudio de este libro. La figura a continuación permite ver dónde están los dos modelos analíticos en la suite de SQL Server, fíjate que en toda la mitad de la imagen tenemos a SSAS un programa específico de la familia SQL Server donde se encuentran los dos motores. Es válido mencionar que SSIS y SSRS son otros dos programas de la familia SQL Server destinados a fases concretas en el proceso de inteligencia de negocios. Nota A la suma de estos dos motores: Modelo Multidimensional + Modelo Tabular se les ha llamado en conjunto el modelo semántico de inteligencia de negocios o Business Intelligence Semantic Model (BISM). Hay que tener en consideración que este término es cada vez menos utilizado.
    • 278. Un punto por destacar es que le modelo multidimensional no ha quedado obsoleto, es decir, el modelo tabular no es un reemplazo del modelo multidimensional, por lo que si deseas aprenderlo también es perfectamente válido, pero hay que tener en cuenta que este motor se utiliza exclusivamente en SSAS mientras que el modelo tabular puede ser utilizado en: SSAS, Excel y Power BI (Somos consciente de que se ha mencionado esto varias veces, pero no queremos dejar el mínimo atisbo de confusión en ello). Futuro del Modelo Multidimensional Queremos aventurar que en un futuro Microsoft hará cruces entre los dos modelos de forma directa, es decir, que podremos reciclar código MDX a DAX y a la inversa código DAX a MDX, básicamente porque el mismo Microsoft ha dado a conocer que seguirá invirtiendo fuertemente en el motor analítico multidimensional, quien sabe sólo el tiempo lo dirá con total certeza. Power Pivot antes escrito sin espacio como PowerPivot, es un complemento de Microsoft para Excel cuyo núcleo, llamado: el DAX Engine, está disponible cada vez más en diversas tecnologías de Microsoft BI, concretamente en el software Power BI y SQL. Para Excel es una extensión que añade funcionalidades que subsanan todas las necesidades analíticas y la potencia de una manera tan sublime, que a veces es imposible dar crédito a tanta maravilla. Para Power BI es la espina dorsal en la parte analítica y así crear indicadores, KPIs, métricas y cálculos. DAX se está posicionando día a día como una poderosa máquina de procesamiento de datos y con ello nos brinda una vastedad de opciones para extraer información relevante de los
    • 279. datos, todos esto, en definitiva, soporta la toma de decisiones, si, la toma de decisiones, eso que direcciona los objetivos empresariales. Por qué deberías tomártelo enserio Imagina que eres un gerente de abastecimiento de productos en un supermercado, estas encargado del manejo de miles de productos y analizar miles de millones de datos para identificar cuáles productos mantener y quitar o no son tan relevantes, si se piensa en todos los desafíos que surgen para agrupar, analizar y crear reportes para sacar conclusiones significativas de esta cantidad masiva de datos, nos encontraremos con una cantidad abrumadora de tareas, por mencionar algunas: ▪ Habilidad para reunir datos de múltiples fuentes, ejemplo: Access, SQL, Oracle, Archivos de Texto, etc. ▪ Manejo de cantidades masivas de datos a una velocidad cómoda ▪ Habilidad para crear reportes de forma eficiente, por ejemplo, de: SSRS. ▪ Compartir este reporte de manera efectiva y eficaz ▪ Crear diversas expresiones con el fin de resumir los datos y sacar conclusiones ¡¡Así es !!, todas estas tareas que antes eran un proceso titánico, ahora Power Pivot y el lenguaje DAX lo solventa de una forma rápida y muy sencilla de manejar, dicho de otro modo, podemos crear reportes dinámicos “Tablas Dinámicas” o matrices en Power BI de una cantidad masiva de datos, proveniente de una gran variedad de fuentes utilizando nuestra querida interfaz de Excel o el cada vez más utilizado Power BI. Lo que esto quiere decir, es que no se necesita ser un desarrollador o una persona con habilidades increíbles en Excel, VBA u otras tecnologías que impliquen programación de computadoras, porque Power Pivot y el lenguaje DAX permite conectar todas las fuentes de
    • 280. datos de una manera tan sencilla que sólo se requiere de unos cuantos clics y además permite una distribución muy fácil y ágil. Qué es el Lenguaje DAX Podemos vincular datos de múltiples fuentes: Bases de datos, data markets, tablas vinculadas, archivos de texto, etc. 1. Podemos trabajar con millones de datos de forma eficiente y tranquila 2. El Lenguaje DAX permite extender los análisis, es decir, tener un despliegue de expresiones gracias a los cálculos personalizados, cortando todas las limitaciones de las tablas dinámicas y convirtiéndola en el arma letal en nuestro arsenal de Excel. 3. El Lenguaje DAX se ha convertido en el núcleo de las tecnologías de Business Intelligence de Microsoft. 4. Es posible crear diferentes formas de relacionar las tablas de datos. 5. Se pueden ocultar columnas que no queramos ver en el panel de campos de las tabas dinámicas. 6. Se pueden crear indicadores KPI y jerarquías. 7. De manera creativa, permitirle al usuario final que inserte datos de entrada admitiendo reportes parametrizables. 8. El formato se mantiene constante a lo largo de diferentes reportes. En la Parte I de este libro trabajamos con Power Query para Excel siendo plenamente conscientes de que también es aplicable a Power Query para Power BI de escritorio. En esta parte del libro y la siguiente vamos a trabajar netamente en Power BI, tanto por ver la intercambiabilidad de tecnologías como por aprovechar algunas funcionalidades adicionales.
    • 281. Es necesario dar un paso atrás y entender: ¿Qué es Power BI? La Suite de Power BI ¿Qué es Power BI? Lo primero que debemos entender es que Power BI no es un programa, Power BI es un conjunto de aplicaciones destinadas al análisis de negocios, es decir, que hablamos de Power BI como cuando decimos Office, sabemos que es una Suite de softwares. En Power BI contamos con tres tecnologías principales: ▪ Power BI de Escritorio ▪ Servicio de Power BI en la nube ▪ Power BI para dispositivos móviles Nota Existen otras variantes para Power BI, no obstante, las mencionadas son las más utilizadas. Power BI Power BI es un conjunto de herramientas de análisis empresarial que pone el conocimiento al alcance de toda la organización. Conexión a cientos de orígenes de datos, preparación de datos simplificada, generación de análisis ad hoc. Bellos informes que luego se publican para provecho de la organización en la Web y en dispositivos móviles. Creación de paneles personalizados al alcance de todos, con una perspectiva empresarial única, de 360 grados. Escalado a nivel empresarial, con gobierno y seguridad. Definición Tomada de la página de Power BI
    • 282. ▪ Power BI de Escritorio (Power BI Desktop): Power BI desktop es la aplicación para tu computadora, en él creamos modelos de datos sofisticados y robustos, ofreciendo análisis avanzados gracias a que podemos utilizar un lenguaje específico para ello: DAX. Igualmente, si en un paso anterior necesitamos preparar los datos contamos con la interfaz y el lenguaje para hacerlo: M, adicionalmente, su potencial de visualización lo convierten en el punto departida para crear reportes, informes y cuadros de mando. ▪ El Servicio de Power BI en la Nube (Power BI Services): Como su nombre lo indica es un servicio en la nube el cual proporciona todas las opciones para compartir, añadir niveles de privacidad, creara roles de usuarios, crear contenidos compartidos y con restricciones; así mismo, cuenta con sus propias opciones rápidas para el análisis. ▪ Power BI para Dispositivos Móviles (Power BI Mobile): Permite acceder de forma segura a paneles e informes de Power BI desde nuestro celular u otros dispositivos móviles, permitiendo estar notificado en tiempo real y filtrar rápidamente para el análisis. Este es un libro sobre inteligencia de negocios. La inteligencia de negocios o Business Intelligence en inglés abreviado BI esta divida en cuatro etapas de un proceso sucesivo donde cada una depende de la otra, estas son: ▪ Preparación de Datos ▪ Análisis de Datos ▪ Visualización de Datos ▪ Compartir información En este libro abarcamos los tres primeros ejes: (Preparación, análisis y visualización) y todo ello lo conseguimos con Power BI de escritorio, por lo tanto, será el único objeto de estudio de ahora en adelante.
    • 283. Instalar Power BI de Escritorio Power BI de escritorio es completamente gratuito, para descargarlo debemos ir a la página oficial de Power BI. Vamos a nuestro navegador favorito y en el buscador de Google digitamos la palabra Power BI y procedemos con la búsqueda, la primera página filtrada será la que nos servirá, además, podemos pulsar clic directamente en Power BI Desktop. En la siguiente página encontraremos el botón para su descarga con nombre DESCARGA GRATUITA, sin embargo, si lo hacemos directamente se descargará e instalará Power BI de escritorio en inglés, para descargarlo en español demos pulsar clic en Opciones Avanzadas de Descarga que se encuentra inmediatamente debajo del botón de descarga gratuita.
    • 284. La página que nos aparecerá a continuación todavía está configurada para descarga en inglés, de hecho, si observamos la URL: https://www.microsoft.com/en-us/download/details.aspx?id=45331 Apreciaremos que la parte /en-us/ está indicado english (en) united states (us), es aquí donde debemos hacer la variación y poner /es- es/ por español España. https://www.microsoft.com/es-es/download/details.aspx?id=45331 Ahora si podemos desplazarnos a la parte central de la página y ver que el idioma seleccionado es español, con esto ya podemos pulsar clic en el botón rojo de Descargar.
    • 285. En el siguiente paso debemos seleccionar si es de 32 bits o 64 bits, esto dependerá de nuestro caso específico y la instalación del sistema operativo.
    • 286. Interfaz de Power BI de Escritorio Una vez instalado, vamos a conocer las partes de la interfaz gráfica de usuario de Power BI de escritorio que será esencial de ahora en adelante. Pestañas Vistas Panel de Visualizaciones Panel de Campos Páginas Notificador de actualizacione s Vista de Informe Vista de Datos Vista de Relaciones Panel de Filtros Lienzo
    • 287. CAPÍTULO 11 Después de completar este capítulo tú sabrás: ▪ Cuáles son los tipos de tablas ▪ Cuáles son los tipos de columnas ▪ Cómo realizar el entretejido de Tablas ▪ Cuáles son los tipos de Relaciones Dinos, ¿cuántas veces no has querido realizar un cálculo que involucra columnas de dos o más tablas? Multitud de veces verdad. Para alcanzar dicha tarea, y si tenemos un conocimiento holgado en expresiones matriciales para Excel, podemos optar por crear mega fórmulas que demandan cantidades copiosas de tiempo, así como una precisión casi quirúrgica. En este capítulo te queremos revelar como con Power BI o Power Pivot para Excel esta solución esta tan solo a 5 clics de distancia como mucho, sin embargo, para disfrutar de las mieles de la relación de múltiples tablas es necesario abrazar unos conceptos básicos, en concreto: tipos de tablas y columnas, ello nos labrará el camino para llegar al punto álgido del capítulo: crear miniinformes basados en múltiples tablas con el simple hecho de arrastrar y soltar. Entre los conceptos básicos de bases de datos es imperativo discernir los tipos de tabla existentes, sin dar muchas vueltas específicamente nos vamos a encontrar con dos tipos de tablas: Tablas de dimensión o búsqueda y tablas de hechos.
    • 288. Tablas de Hechos (Fact Tables) Es una tabla que contiene mediciones de un área de negocio. Cada registro de la tabla es una medición diferente y la granularidad está definido por las dimensiones relacionadas. Estas mediciones son comúnmente aditivas, aunque no siempre. Visto de otra manera, una tabla de hechos contiene registros en intervalos regulares: día a día, semana a semana, mes a mes, etc. Etc. De un proceso y sus variables de negocio. Las mediciones que permiten operaciones aritméticas son de gran utilidad, ejemplo: Registro de ventas, costos, unidades, utilidad, etc. Las tablas de hechos se caracterizan por tener una “alta densidad de datos” comúnmente miles, millones o incluso más. Tablas de Dimensión o Tablas de Búsqueda (Dimensión Table) Es una tabla que contiene elementos de negocio, donde los campos describen los elementos, usualmente una tabla de dimensión hace referencia a varias tablas de hechos, visto de otra manera, una tabla que se utiliza para restringir y agrupar datos de una o varias tablas de hechos, son tablas que tienen información de las cuales dependen otros datos. Granularidad de Datos El tamaño de grano es el nivel de detalle de los datos, por ejemplo, un detalle día a día de los registros tiene más detalle que un detalle semana a semana de los registros ya que, capta más datos o detalle en la variable o dimensión tiempo. No esta demás señalar que el tamaño de grano no se limita únicamente a la dimensión tiempo, también puede ser geográfico o todo aquello que tiene niveles de jerarquía bien establecidos.
    • 289. Las tablas de dimensión se caracterizan por tener una “baja densidad de datos”. Otro par de conceptos indefectibles se asocian a las columnas de cada uno de los tipos de tablas, particularmente: clave primaria y calve externa. Clave Primaria o Primary Key Es un campo que sirve como identificador único de fila (registro) en una tabla de dimensión, por lo tanto, dicha columna tiene elementos que no se repiten pues de esta manera se podrá identificar de forma univoca cada fila, en otras palabras, no valores duplicados. - Ejemplos: ▪ Documentos de Identidad ▪ SKU ▪ ISBN ▪ Orden de Pedidos ▪ Id de País Clave Externa o Foreign Key Es un campo que se refiere a una columna en una tabla de hechos, pero que son “equivalentes”, es decir, tienen los mismos le elementos, pero en este caso los valores se pueden repetir.
    • 290. Ahora que conocemos los conceptos básicos en bases de datos para relacionar tablas, es necesario, entrar en materia y relacionar directamente desde la interfaz, en este caso, desde la interfaz de Power BI, pero no debemos olvidar que lo que se describe a continuación también aplica para Power Pivot de Excel. Relaciones Automáticas en Power BI Una situación con la cual nos encontraremos en Power BI es que al ir a la vista de relaciones nos encontraremos con que las tablas están relacionadas. Esta relación de manera automática la lleva a cabo Power BI internamente, sin embargo, estas relaciones pueden ser incorrectas o no coincidir con las que nosotros necesitemos. Adicionalmente esta tarea interna no ocurre con las tablas cargadas en Power Pivot para Excel, por lo menos para las versiones 2016 y anteriores.
    • 291. La recomendación es eliminar estas relaciones y crearlas desde cero para así cerciorarnos al 100% que son las deseadas. Par lograr dicha tarea nos podemos posicionar en cada relación, es decir, en cada línea que une un par de tablas pulsando clic encima de ella hasta que tome un color amarillo, luego pulsamos clic encima de la tecla Delete o Supr, una vez hecho lo previo se nos desplegará un cuadro de diálogo que nos pedirá que confirmemos si realmente queremos suprimir dicha relación.
    • 292. Otra alternativa para eliminar las relaciones es ir a la pestaña Inicio, luego al grupo Relaciones y pulsar clic encima del comando Administrar relaciones. De lo anterior se nos desplegará un cuadro de diálogo que lista todas las relaciones existentes, el proceso aquí consiste en seleccionar relación a relación en la lista e ir pulsando clic en el botón eliminar.
    • 293. Relacionar Tablas Manualmente El primer paso para relacionar tablas manualmente consiste en identificar el tipo de tabla de cada una, en nuestro caso, si tomamos las tablas: Pedidos, SKUProdcutos, Categoría de Productos y Descuentos, tendremos lo siguiente: - Tipos de Tablas: ▪ Pedidos es una tabla de hechos ▪ SKUProductos es una tabla de dimensión o búsqueda ▪ Categoría de Productos es una tabla de dimensión o búsqueda ▪ Descuento es una tabla de dimensión En adición a lo previo debemos identificar en cada tabla cuáles son las claves primarias y las claves externas, recalcando que las tablas de búsqueda les asociamos clave primaria y a las tablas de hechos claves externas. - Tipos de Tablas y Columnas: ▪ Pedidos es una tabla de hechos, clave externa SKU y Categoría de Productos ▪ SKUProductos es una tabla de dimensión o búsqueda, clave primara SKU ▪ Categoría de Productos es una tabla de dimensión o búsqueda, Calve primaria SKU ▪ Descuento es una tabla de dimensión, clave primara Categoría de Descuento Con toda la información definida el proceso de relación de tablas es sencillo: pulsamos clic encima de la columna clave primara y la arrastramos hasta la clave externa equivalente en la tabla de hechos, un ejemplo concreto sería: la relación entre la tabla Pedidos y la tabla
    • 294. SKUProductos, en este escenario en concreto procedemos a pulsar clic encima del campo SKU de la tabla SKUProductos y mantenido el clic pulsado arrastramos hasta la clave externa de tabla Pedidos, es decir, al campo SKU de la tabla Pedidos y soltamos. Con lo previo interiorizado relacionar las tablas restantes es bastante fácil, el resultado final sería como el siguiente:
    • 295. Se ha descrito que las relaciones se deben crear de una clave primaria a una calve externa, sin embargo, este es un caso particular de tres variantes, debido a que podemos relacionar de una clave primaria a clave primaria o de una clave externa a una clave externa. Antes de continuar con los tipos de relación es vital que analicemos las relaciones en términos de unicidad o elementos repetidos. Si observamos detenidamente una clave primaria veremos que se sus elementos son únicos, por lo tanto, decimos que es el lado de los unos. Por otra parte, la clave externa contiene elementos duplicados, por tal motivo decimos que es el lado de los muchos. Siguiendo esta terminología de unos y muchos tendremos tres tipos de relaciones entre un par de tablas: ▪ Relación Uno a Muchos (1:*) ▪ Relación Uno a Uno (1:1) ▪ Relación Muchos a Muchos (*:*) Nota La manera en la cual se relacionaron las tablas anteriores es una forma de un abanico de posibilidades, esto lo podemos inferir fácilmente ya que, si apreciamos la forma en que relacionamos las tablas de forma completamente manual en contraste con las relaciones creadas automáticamente por Power BI, veremos que son dos vías diferentes. Estas opciones de relacionar tablas dependerán del tipo de relación que utilizamos entre un par de tablas, con lo cual podemos intuir que basta con que la relación entre un par de tablas sea diferente para decir que el entretejido de tablas es también distinto.
    • 296. Relación Uno a Muchos Para cada registro en la tabla de dimensión pueden existir muchos o infinitos elementos en la tabla relacionada, la cual sería una tabla de hechos. Como se ha mencionada previamente contiene la clave externa. Esta situación es la ilustrada en la figura 11.6. Relación Uno a Uno Para cada registro en la tabla de dimensión puede existir un sólo registro en la tabla relacionada, que en este caso puede ser otra tabla de dimensión, un ejemplo es relacionar la tabla SKUProductos con la tabla Categoría de Productos mediante sus campos SKUs. ¡Advertencia! Los tipos de relación uno a muchos y uno a uno son perfectamente válidos en Power BI, por lo menos, de manera directa. Así que has que te estampen esto en todas tus camisetas: “El tipo de relación muchos a muchos no es permitidos en Power BI ni Power Pivot por lo menos de manera directa”
    • 297. Relación Muchos a Muchos Podemos visualizar este tipo de relación como la relación que se puede dar entre dos tablas de hechos, esta relación no es posible en Power BI analítico de manera directa, aunque hay métodos alternos son de alta complejidad que no alcanzan a ser tratados en este libro. Miniinforme de Múltiples Tablas Relacionadas Ahora vamos a la vista de informe, para lograrlo únicamente debemos pulsar clic encima del pequeño botón en el extremo izquierdo con icono de un gráfico de barras. Nota Aunque la relación muchos a muchos desde la parte analítica no es tratada en el presente texto, podemos encontrar una manera de ejecutar este tipo de relación desde la preparación de datos en el capítulo 4. Nota Para propósitos de este libro dejar las relaciones de manera idéntica que las presentadas en la figura 11.7.
    • 298. Una vez allí vamos al panel de visualizaciones y ubicamos el objeto visual matriz para pulsar clic encima de él. A continuación, aparecerá un contendor de objeto visual. Nota Para mayor detalle acerca de los objetos visuales y tipos de gráficos en Power BI puedes remitirte a la Parte III del presente libro, es decir, desde el capítulo 20 en adelante.
    • 299. Manteniendo seleccionado dicho contenedor de objeto visual que en este caso corresponde a una matriz, vamos a ir a al panel de visualizaciones y en las áreas de colocación vamos a llevar los siguientes campos o columnas: - Detalle: ▪ Llevamos el campo Producto (s) de la tabla SKUProducto al área de filas ▪ Llevamos el campo Categoría de la tabla Categoría de Productos al área de columnas ▪ Levamos el campo Ingresos de la tabla Pedidos al área de valores
    • 301. CAPÍTULO 12 Después de completar este capítulo tú sabrás: ▪ Qué es el Lenguaje DAX ▪ Qué es una Medida y su importancia ▪ Qué es una Columna Calculada y su importancia ▪ Qué es una Tabla Calculada y su importancia ▪ Variables en el lenguaje DAX DAX es el lenguaje de funciones soñado para el analista de datos, para el estadista y en definitiva para cualquier persona que desee extraer información precisa, oportuna, accionable y de valor de montañas de datos. Por lo anterior, tenemos que conocer los fundamentos del lenguaje DAX como si fuera la palma y el dorso de nuestra mano, al finalizar este capítulo sabrás con exactitud esos conceptos esenciales en el lenguaje DAX que pavimentan la vía para empezar a encarrilar todo tipo de cálculos que soporten la toma de decisiones empresariales. DAX, es un lenguaje de funciones que nos permite recabar en los confines de los datos para hacer análisis como nunca había sido soñado, por lo tanto, supone un lenguaje supremamente poderoso para los usuarios de Excel, para los de Power BI o próximos para hacer inteligencia de negocios y enfocar la toma de decisiones en la vía correcta.
    • 302. Los 3 tipos de cálculos (3 sabores) Si nos planteamos la pregunta: ¿Cómo hacer análisis más potentes en Excel? Podríamos pensar en ampliar la respuesta diciendo que con el lenguaje DAX, y no está mal, pero debemos desglosar un poco más comentando que el núcleo, el corazón del funcionamiento del lenguaje DAX se basa en sus tres “sabores” de tipos de cálculos personalizados (Cálculos DAX), estos son: ▪ Medidas ▪ Columnas Calculadas ▪ Tablas Calculadas Siempre utilizamos el lenguaje DAX para crear alguno de estos tres cálculos, ellos nos permiten jugar, manipular y moldear los datos a nuestro antojo para hacer los análisis necesarios. Todas las funciones, variables y en general expresiones DAX desembocan en uno de estos tres Cálculos Personalizados, para posteriormente utilizarlos en nuestros reportes, consultas, presentación visual, cuadros de mando, etc. ¿Notas la importancia ahora de los Cálculos DAX? Nota DAX son las siglas en inglés para: expresiones para el análisis de datos Data Analysis eXpressions Las propias siglas hablan por sí solas, un lenguaje optimizada y enfocado para tomar múltiples tablas relacionadas y de allí extraer información rica que nos ayude a tomar decisiones inteligentes y acertadas en los negocios, pura inteligencia competitiva.
    • 303. Para seguir el hilo de la metáfora con el Póquer: Power Pivot / Power BI / SSAS Tabluar, es decir, El DAX Engine: es la mano, el arma, la herramienta más valiosa para hacer análisis y trabajar con datos (¡Todo prácticamente!, pues una hoja de cálculo siempre tiene datos, si no, cuál sería el punto de: hoja de cálculo), sin embargo, al igual que en el póquer, es la mano / la herramienta, menos frecuente utilizada por los usuarios de Excel. Lo anterior, probablemente ocurre por muchas causas; lo que si es cierto, es que es una constante hasta el momento, debido a que muchas personas que se pueden beneficiar con DAX, lo desconocen completamente, por ello muchos de nuestros esfuerzos van en aportar nuestro granito de arena en mejorar en alguna escala esta situación. Para poner los pies en la tierra respectos a los cálculos DAX, dediquemos unos párrafos a cada uno de estos cálculos personalizados… Pero … Un momento: Cálculos DAX Los Cálculos DAX componen la Escalera Real en nuestra mano de póquer BI para doblegar los datos y así nos entreguen la información necesaria en el momento oportuno. ¡Advertencia! En Power Pivot para Excel sólo contamos con dos Cálculos DAX: Medidas y Columnas Calculadas. Mientras que en Power BI y SSAS contamos con Medidas, Columnas Calculadas y Tablas Calculadas. Así que has que graben esto en el collar de tu perro: “El lenguaje DAX en algunas tecnologías cuenta con más posibilidades, básicamente por actualizaciones.”
    • 304. Las Medidas en Power Pivot (Denominados Campos Calculados en Excel 2013) es uno de los tres tipos de cálculos personalizados o cálculos DAX que están a nuestra disposición para crear soluciones mediante Excel, Power BI y SSAS sin ninguna limitación. No se exagera cuando hay personas que dicen que: “Es lo mejor que le ha pasado a Excel en su historia” o que “Representa un cambio total en las reglas del juego a nuestro favor” Todo tipo de cosas se dicen del lenguaje DAX y no es por darle un valor desorbitante, ¡De Verdad que no! nosotros personalmente decimos que: ¿Qué es una Medida? Demos una definición sencilla pero que capte la esencia de qué es una medida: Acerca de DAX ¡Componen una excelsa sinfonía de una revolución mágica y sin precedentes para Business Intelligence -BI-! es como si nos hubieran traído una tecnología de veinte años en el futuro para utilizarlas hoy en día. La capacidad de resumir cantidades masivas de datos, crear expresiones de todo tipo para extraer gemas de información, acompañado de la posibilidad de crear reportes de tablas dinámicas como nunca se había soñado, la convierten el arma letal para inteligencia de negocios. Business Intelligence al alcance de todos. Medida Es una fórmula que se añade el área de valores de una matriz en Power BI o a al área de valores de una tabla dinámica en Excel.
    • 305. Es vital antes de continuar resaltar la diferencia de nombres en las distintas versiones, este tipo de cálculo DAX se ha denominado de diferentes formas en las diversas versiones de Excel y otros programas, así: ▪ Excel 2010: Medidas (En inglés Measures) ▪ Excel 2013: Campos Calculados (En inglés Calculated Fields) ▪ Excel 2016: Medidas ▪ Power BI: Medidas ▪ SSAS: Medidas En definitiva, Microsoft opto por renombrar al tipo de cálculo que añade fórmulas a los reportes de tablas dinámicas como Campos Calculados en Excel 2013. Sin embargo, volvió a su nombre original, ya que ayuda a marcar una diferencia desde el principio en contraste con la funcionalidad antigua de Campos Calculados. Medidas en Power BI Las medidas en Power BI y Power Pivot nos permiten hacer cualquier cosa, por ejemplo: ▪ Crear expresiones para análisis de clientes nuevos, recurrentes y perdidos que nos permitan analizar diversos escenarios ▪ Análisis de afinidad en productos ▪ Análisis ABC ▪ Análisis de inventarios, lead time y distribución … Por mencionar unos pocos …
    • 306. Cualquier tipo de resumen que se nos ocurra, pues para ello tenemos a nuestra disipación todo lenguaje de fórmulas bien estructurado y completo, denominado: Lenguaje DAX. Tipos de Medidas en Power BI Podemos crear tipos de medidas en Power BI basándonos en la existencia o no de fórmulas y funciones del lenguaje DAX. Aquellas que utilizan el lenguaje DAX son llamadas medidas explicitas y aquellas que no lo utilizan son denominadas medidas implícitas. Las medidas explícitas pueden surgir de dos maneras, aquellas que creamos con el lenguaje DAX de forma manual si tenemos el conocimiento y aquellas que crean la expresión DAX, pero de forma automática gracias a la interfaz de Power BI. Las primeras medidas las llamamos medidas explícitas manuales mientras que a las segundas las llamadas medidas explícitas automáticas. Las medidas implícitas se crean de forma automática pero no dejan ni un solo rastro de función o expresión DAX, de hecho, no se sabe si internamente está utilizando el lenguaje DAX o consiste en algún algoritmo distinto de resumen. En definitiva, y si nos permiten el símil cinematográfico, las medidas implícitas encierran una filosofía más devastadora que el anillo de mordor en la tierra media. ¡Advertencia! Nosotros no recomendamos la utilización o creación de medidas implícitas porque no existe fórmula DAX asociada, por lo tanto, no se puede reutilizar o llamar en otra medida (no es reusable o reciclable). Así que, tatúate esto: “Las buenas prácticas demandan crear todas le medidas de manera explícita sin importar si una medida tan sencilla como crear la suma de una columna”
    • 307. El esquema siguiente resume los tipos de medidas en Power BI: ¡Advertencia! Las medidas explícitas automáticas no existen en Power Pivot para Excel, por lo menos de las versiones 2016, 2013 y 2010. Probablemente en versiones futuras de office, en concreto a partir de office 2016, ya vengan integradas. A estas medidas explicitas automáticas nosotros las denominamos las recetas DAX automáticas y serán tema del próximo capítulo. Adicionalmente dichas recetas son lo que se conocen en la propia interfaz de Power BI como medias rápidas.
    • 308. Medidas implícitas Aunque no recomendamos las medidas implícitas, su creación es bastante sencilla ya que solo consiste arrastrar y soltar. Supongamos, por ejemplo, que deseamos crear una matriz que muestre el promedio de ingresos para los distintos SKU en una matriz de Power BI. Para conseguir esta tarea debemos crear una matriz y luego llevar el campo SKU de la tabla SKUProductos al área de filas.
    • 309. Si recordamos la definición de medida que hemos brindado, sabemos que es un cálculo que se lleva al área de valores (de una matriz o tabla dinámica). Como queremos el promedio de ingresos lo único que debemos hacer es llevar el campo ingresos de la tabla Pedidos al área de valores de la matriz. ¡Advertencia! Cuando se crear una medida con el método de arrastrar y soltar en un campo en el área de valores de una matriz, es importante destacar que el tipo de cálculo que se crea por defecto es la suma de la columna si el campo es numérico y la cuenta de elementos si el campo es de tipo texto.
    • 310. Para cambiar el tipo de cálculo implícito debemos posicionar el cursor de nuestro mouse en la pequeña flecha que aparece al extremo derecho del campo Ingresos, situado en el área de valores de la matriz justo al lado de la x. Pulsamos clic encima de esta flecha, y se despliega un menú que en su parte central muestra los cálculos que podemos utilizar de manera implícita con tan sólo un clic, observando que el seleccionado por defecto es suma (fácilmente identificable por el chulito o palomita de color verde en el extremo izquierdo del menú desplegable)
    • 311. Todas las opciones desde suma hasta mediana corresponden a las medidas implícitas que podemos utilizar, para nuestro caso lo cambiamos por Promedio, llegando al resultado deseado: Como podemos ver su ejecución es bastante rápida pero no encontraremos ninguna fórmula o función asociada en ninguna parte, estas opciones son útiles si queremos ver un resumen ágil, pero para crear un modelo de datos robusto no es recomendable. Adicionalmente, vemos que solamente son 9 cálculos posibles, si deseamos hacer cosas más complejas debemos acudir al lenguaje DAX sin duda alguna.
    • 312. Medidas explícitas manuales Es válido repasar que las medidas explícitas están vinculadas a una expresión DAX visible que podemos manipular si así lo consideramos necesario, para crear una medida explícita manual debemos ir a pestaña modelado grupo Cálculos y pulsar clic encima del comando Nueva Medida. Una vez pulsamos clic en el comando vamos a ver como se habilita una barra de fórmulas, esta es la barra de fórmulas DAX. En la parte izquierda del igual ponemos el nombre y después la expresión DAX. Nota Los nombres de las funciones del lenguaje DAX se deben dar en inglés independientemente si la instalación de nuestro Power BI es en español o en inglés (en general en cualquier idioma del mundo) El lenguaje DAX siempre es inglés.
    • 313. Digamos que en esta situación queremos calcular la media geométrica de los ingresos. Bien, algo que hay que destacar es que esta medida de forma implícita no existe, si bien tenemos: promedio y mediana, la media geométrica no la encontraremos en la lista desplegable de medidas implícitas, es decir, que en este escenario es obligatorio recurrir a las medidas explicitas para poder cumplir el requisito. Después del igual ponemos las letras geo y veremos cono aparece un menú contextual (técnicamente este menú contextual se llama Intellisense) listando todas las funciones del lenguaje DAX que empiezan por las letras geo. En este caso en particular veremos cómo aparecen dos opciones de funciones: En el Intellisense nos podemos mover con las teclas de dirección y seleccionar la función deseada con la tecla tab, claro también podemos hacer eso con el mouse de nuestra computadora y pulsar dos veces clic encima del nombre de la función que queremos utilizar. La función que vamos a seleccionar es GEOMEAN sin la x al final. Con lo anterior parece un nuevo Intellisense listando las tablas y sus columnas.
    • 314. Podemos apreciar que el tooltip también nos brinda información acerca de lo que hace la función, así como un listado de sus argumentos, para la función GEOMEAN únicamente tenemos un argumento que corresponde un campo numérico de una tabla, para nuestra situación debemos llamar la tabla Pedidos y el campo Ingresos, cerramos paréntesis cuadrados y pulsamos en la tecla Enter, así: Nota Es crucial identificar el funcionamiento de la sintaxis de tablas y columnas en DAX, como se puede ver de la creación de la medida de media geométrica anterior, para hacer referencia a una columna debemos primer poner el nombre de la tabla y luego entre paréntesis cuadrados el nombre de la columna: • Pedidos[Ingresos] También podemos llamar a una tabla y todas sus columnas, para ello únicamente debemos escribir el nombre de la tabla, ejemplo: • Pedidos Sin embargo, si el nombre de la tabla tiene espacios y/o tildes debemos encerrar el nombre entre comillas simples así: • ‘Categoría de Productos’ Si se llama a una columna asociada a la tabla anterior sería: • ‘Categoría de Productos’[Precio de Venta]
    • 315. La medida recién creada quedará en alguna de las tablas en el modelo de datos, en particular permanecerá en la tabla que tengamos seleccionada en el panel de campos cuando estamos creando la medida, en nuestra situación teníamos seleccionada la tabla Categoría de Productos, por lo tanto, la medida debería aparecer allí: Puedes notar que la medida es fácilmente identificable por el icono de una calculadora en su extremo izquierdo, mencionar también que nuestra medida a quedado con el nombre por defecto medida, para cambiarlo debemos pulsar clic encima del icono de calculadora para que se habilite nuevamente la barra de fórmulas DAX y renombrar. Una de las formas de renombrar la medida es pulsando clic derecho y seleccionando cambiar nombre, llámala Media GEO de Ingresos
    • 316. Ahora seleccionemos la matriz anterior y arrastramos la medida Media GEO de Ingresos al área de valores.
    • 317. Medidas explícitas automáticas Estas medidas se crean forma automática, es decir, que no debemos digitar ni una sola fórmula o función de manera manual. Únicamente contamos con un cuadro de dialogo nos ayudará a que se cree dichas fórmulas. Estas medidas son equivalentes a medidas rápidas y serán tema del siguiente capítulo. Las Columnas Calculadas, nuestro segundo tipo de Cálculo DAX disponible en Power Pivot para Excel y Power BI. Recordemos que los tipos de Cálculos DAX o Cálculos Personalizados en Power Pivot son: ▪ Medidas o Measures en inglés (Campos Calculados en Excel 2013) ▪ Columnas Calculadas o Calculated Columns en inglés ▪ Tablas Calculadas o Calculated Tables en Ingles (NO disponible en Power Pivot a la fecha) Como su nombre lo indica, las columnas calculadas permiten crear columnas adicionales en nuestras tablas tomando columnas ya existentes de las diversas tablas en el modelo de datos mediante le lenguaje DAX. Tablas de Población de la Web Perfecto, sin embargo, para los fines que deseamos también necesitaremos otra “tablita” que no está disponible en el archivo; para este caso una tabla que nos indique el número de habitantes que hay en las ciudades principales en el país de Colombia, por lo tanto debemos explorar en internet e importar datos desde la web. Si buscamos en la Web, la primera fuente que nos encontraremos es Wikipedia:
    • 318. URL: https://es.wikipedia.org/wiki/Anexo:Municipios_de_Colombia_por_poblaci%C3%B3n No luce nada mal, ¿Cierto? Vamos a la Pestaña Inicio, grupo Datos Externos, desplegamos las opciones de Orígenes de Datos, nos dirigimos al comando Web para pulsar clic encima.
    • 319. Con la acción precedente se despliega un cuadro de diálogo que nos pide la URL. Presionamos clic en el botón Aceptar y aparece lo siguiente: Luego pulsamos clic en el botón concretar y se desplegará un cuadro de dialogo como el ilustrado en la figura siguiente.
    • 320. Como se puede apreciar aparecen 4 tablas, están en Wikipedia, seleccionamos la primera de ellas y en la parte inferior pulsamos clic en el botón Editar. ¡Advertencia! Fíjate que las columnas: Población cabecera, población y Población total son de tipo texto debido a que los miles están separados por un espacio, es decir, aparece: 8 164 178 en lugar de 8164178. Para solventar el inconveniente es necesario remover esos espacios, no obstante, dicho espacio no es un espacio convencional (como el que se crea utilizando la barra espaciadora)
    • 321. Para realizar esta tarea seleccionamos las tres columnas de población, para ello, basta con pulsar clic encima de la columna Población cabecera y manteniendo pulsado la tecla shift seleccionar la última columna, población total. Ahora, pulsamos clic derecho en cualquiera de la columnas seleccionadas y a continuación se desplegará un menú contextual, en dicho menú debemos pulsar clic encima de la opción reemplazar valores. Con la acción anterior se despliega el cuadro de diálogo siguiente:
    • 322. Para que el cuadro de diálogo te quede como la imagen anterior es necesario desplegar las opciones avanzadas, seleccionar el check box reemplazar con caracteres especiales y en la lista de opciones desplegar y seleccionar espacio de no separación. Con esto queda la tabla lista, cerrar y aplicar. Crear Columna Calculada Para crear una columna a calculada basta con ir a la vista de datos y selecciona la tabla Población Colombia en el panel de campos y una vez allí ir la pestaña Inicio, grupo cálculos. Nota, Renombrar la consulta con un nombre más corto, por ejemplo: Población Colombia.
    • 323. El funcionamiento de la barra de fórmulas DAX se activa una vez pulsamos clic encima del comando Nueva Columna que es igual para las medidas, por ejemplo, podemos crear la siguiente columna calculada: Nota Aprecia como la expresión es igual para toda la columna, sin embargo, los valores son diferentes para fila, esto es así porque Power Pivot ejecuta la fórmula fila a fila. Puedes asemejarla a las tablas estructuradas de Excel. Nótese que aprovechamos inmediatamente para renombrar la columna calculada por Población efectiva.
    • 324. Funciones DAX en Columnas Calculadas En las Columnas Calculadas no estamos limitados solamente a los operadores. También podemos utilizar todo el abanico de funciones del lenguaje DAX, por ejemplo, para nuestra columna población efectiva necesitamos redondear al número de abajo Es población al fin y al acabo. Para ello podemos utilizar la función ROUNDDOWN, así: Como se puede ver ROUNDDOWN tiene dos argumentos: ROUNDDOWN (<Número>; <Decimales>) En el primer argumento dejamos la expresión que habíamos creado previamente y en el segundo argumento ponemos un cero, el resultado luce así:
    • 325. Cuando decimos un aroma al principio de capítulo nos referimos a las variables, no es un tipo de cálculo DAX sino una forma de optimizar y documentar expresiones DAX. El lenguaje DAX es tan estupendo y útil que su popularidad crece exponencialmente en la comunidad de usuario de Excel y profesionales en inteligencia de negocios, con ello las mejoras que se hacen a él son constantes, mes a mes, año a año. Por lo anterior hoy podemos decir que el lenguaje DAX, es un lenguaje de programación de Microsoft SQL Server Analysis Services (SSAS) y Microsoft Power Pivot. Para la versión 2016, ya no sólo hablamos de iteraciones (Bucles), literales (constantes), sino también al que es parte integra de los lenguajes de programación: Variables en el Lenguaje DAX. Acerca de Variables Las variables en el lenguaje DAX son una de las características que hace que nuestras fórmulas DAX se puedan leer con mayor facilidad, y con ello documentarlas de manera indirecta, esto Nota Las Columnas Calculadas en Power Pivot aparecen como campos normales en el panel de campos de Power BI, esto quiero decir que las podemos utilizar de igual manera en las distintas áreas de colocación. Nota Las variables bridan una ruta alterna para llamar al contexto de fila automático, este tema requiere de libros o cursos más avanzados en DAX, por ejemplo: Máster en DAX y Power Pivot.
    • 326. incide en que la legibilidad aumenta al igual que la capacidad para reciclarlas y utilizarlas en otros escenarios. - Sintaxis: La sintaxis para el uso de variables en el Lenguaje DAX, es bastante sencilla VAR <NombreVariable> = <Expresión DAX para Medida o Tabla> RETURN <Expresión DAX> Ejemplo Básico: Descuentos Vamos a crear una medida de ejemplo básica con variables: Nota, Se pueden declarar cuantas variables necesitemos, esto lo logramos utilizando la palabra VAR el número n de variables que necesitemos antes de la palabra reservada RETURN.
    • 327. Las Medidas son un cálculo DAX de un valor supremamente alto por eso, organizarlas y documentarlas permitirá tener un modelo de datos ordenado y fácil de utilizar, en Power BI podemos lograrlo mediante: ▪ Tablas para Alojar Medidas ▪ Descripción de Medidas Tablas para Alojar Medidas Cuando creamos una medida esta quedará en la tabla que tengamos seleccionada en el panel de campos, sin embargo, al tener muchas medidas, digamos decenas están quedaran desperdigadas por todas partes complicando la búsqueda de una especifica rápidamente, claro el buscador que aparece en la parte superior del panel de campos facilita la cosas, pues si digitamos en el cuadro de texto las iniciales del nombre de la medida, este filtrara todas aquellas que empiecen por estas letras, ejemplo, si ponemos las letras Medi veremos que se filtra le medida Media GEO de Ingresos. El desliz se presenta cuando no recordamos el nombre de la medida, para solventar este revés recomendamos crear una tabla exclusiva para alojar medidas, de hecho, podemos crear tantas
    • 328. tablas para alojar medidas como necesitamos, con esto conseguiremos agruparlos por categorías, ejemplos: medidas de inventarios, medidas de ventas, etc. – Elaboremos las Siguientes Medidas teniendo la tabla Pedidos Seleccionada Nuestras medidas “Desperdigadas” deberán lucir algo así: Mediana de Ingresos = MEDIAN ( Pedidos[Ingresos] ) Media Aritmética de Ingresos = AVERAGE ( Pedidos[Ingresos] )
    • 329. – Pasos para Crear Tabla Para Alojar Medidas Para crear una categoría propia de medidas debemos seguir cuatro pasos sencillos, el primero ir a la pestaña Inicio y el grupo Datos Externos pulsar clic en el comando Especificar Datos. Se desplegará el cuadro de diálogo de la imagen debajo, allí no debemos hacer nada sólo cambiar el nombre Tabla1 por algo más descriptivo, ejemplo: Medidas, pulsar clic en cargar. Renombrar por algo más descriptivo
    • 330. El segundo paso es: ir a la vista de Datos, en el panel de campos seleccionar la tabla creada (Medidas) y luego pulsar clic derecho encima de la única columna que tiene, en el menú que aparece pulsar clic en Ocultar en la vista de informe. El tercer paso consiste en llevar todas las medidas a la tabla Medidas, por ejemplo, en la vista de Informe selecciona la medida Media GEO de Ingresos, una vez hecho esto vamos a la pestaña Modelado y el grupo Propiedades desplegamos las opciones de Tabla Inicial para finalmente pulsar clic en Medidas. Vita de Datos Seleccionar Columna Ocultar en la vista de informe ¡Advertencia! Cuando uno se habitúa a crear tablas de medidas, el paso de Ocultar en la Vista de Informe muchas veces es omitido, sin embargo, es importante pues será el que tendrá el efecto para que aparezca el icono de medidas en vez de tabla y se posicione en la parte superior del panel de campos.
    • 331. El cuarto paso es ocultar y volver a mostrar el panel de campos. Pestaña Modelado 5 Tabla Inicial Nota Se debe seleccionar medida a medida e ir moviéndola a la tabla con nombre Medidas, por lo anterior es recomendable crear la tabla o tablas para alojar medidas antes de empezar a crear cálculos DAX. Ocultar y mostrar el Panel de Campos
    • 332. El efecto del cuarto paso será que la tabla de medidas quedará en la parte superior del panel de campos y además en su extremo izquierdo en lugar de aparecer el icono de tabla aparecerá el icono de medidas, la calculadora. Descripción de Medidas Otra opción importante para las medidas es la posibilidad de agregar una descripción, por ejemplo, la medida Media Aritmética de Ingresos nos puede parecer que tiene un nombre muy largo por lo que podemos optar por un abreviado, algo así MedArt Ingresos, no obstante, se nos puede olvidar que significa o si lo utiliza un tercero no entendería. 5 Nota En Excel también se puede conseguir el efecto y creación de tablas para alojar Medidas, la diferencia radica en crear una tabla vacía en una hoja aparte, es decir, una sola columna y una sola celda vacía, los pasos posteriores son exactamente iguales.
    • 333. Para solucionar este inconveniente simplemente podemos añadirle una descripción a la medida, para ello seleccionamos la medida en el panel de campos, vamos la pestaña Vista y habilitamos el panel Propiedades de Campo, este panel aparecerá entre el panel de visualizaciones y el panel de campos. Veremos claramente que hay un espacio para añadir una descripción, allí podemos poner algo así: Esta medida devuelva el promedio o media aritmética de los datos. ¿Qué efecto tiene la descripción? La descripción se verá reflejada en el tooltip cuando posicionamos el cursor del mouse en el nombre de la medida en el panel de campos.
    • 335. CAPÍTULO 13 Después de completar este capítulo tú sabrás: ▪ Qué son las medidas explícitas manuales o medidas rápidas ▪ Cómo crear medidas rápidas de agregados por categorías ▪ Cómo crear medidas rápidas de filtros ▪ Cómo crear medidas rápidas de inteligencia de tiempo Muchas veces el lenguaje DAX puede llegar a ser intimidante, porque si bien al principio dominar sus fundamentos es bastante sencillo a medida que se va avanzando o realizando escenarios más complejos nos encontramos que entender la temática de contextos requiere de tiempo y práctica. La buena noticia es que, a parte de las medidas implícitas, Power BI nos brinda la posibilidad de crear medidas explícitas de manera automática sin necesidad de conocer nada acerca del lenguaje DAX. Todo lo anterior gracias a una interfaz amigable mediante un cuadro de dialogo donde indicamos unos parámetros iniciales. Las medidas rápidas fueron una característica de versión preliminar hasta principios de febrero del 2018, de allí en adelante ya es parte integral de Power BI, esto quiere decir que Power Pivot para Excel no cuenta con esta alternativa.
    • 336. Para llegar al cuadro de diálogo de medias rápidas únicamente debemos ir a la pestaña inicio y ubicar el grupo cálculos, el último comando tiene por nombre nueva medida rápida. Una vez ejecutamos el comando Nueva medida rápida lo que va a ocurrir es que se despliega el cuadro de diálogo con el mismo nombre.
    • 337. Allí en el cuadro de diálogo si mostramos la lista desplegable de cálculos podremos observar que hay categorías generales (aquellas que están resaltadas en negrita). Estas son: ▪ Agregados por categorías ▪ Filtros ▪ Inteligencia de Tiempo ▪ Totales ▪ Operaciones aritméticas ▪ Textos Aquí vamos a describir las tres primeras categorías. Agregados por Categorías Estas medidas rápidas nos van a permitir tener un cálculo diferente en niveles distintos de una matriz, por ejemplo: supongamos que tenemos una matriz con los campos País y Tipo de compra de la tabla Pedidos en el área de filas.
    • 338. El objetivo sería conseguir que a nivel de país aparezca por ejemplo el promedio de los ingresos y a nivel de tipo de compra la suma de los ingresos. Es esta tarea precisamente la que se logra mediante la sección agregado por categoría de las medidas rápidas. Antes de ir al detalle de cómo crear esta medida rápida o receta DAX elaboramos una medida explícita manual que nos arroje los ingresos totales. Ya con la medida creada la llevamos al área de valores de la matriz previamente creada, quedando de la siguiente manera:
    • 339. Después vamos y ejecutamos el comando Nueva Medida Rápida y seleccionamos el cálculo: Promedio por categoría. En valor base debemos llevar el cálculo o medida que queremos que se ejecute a nivel de Tipo de Compra, mientras que en Categoría debemos llevar el campo Tipo de compra.
    • 340. Una vez configurado el cuadro de diálogo pulsamos clic en el botón Aceptar, la medida quedará en el panel de campos. Como podemos apreciar su nombre es extenso, para cambiarlo únicamente debemos pulsar dos veces clic encima del icono de una calculadora para que se habilite la barra de fórmulas DAX y nos muestre el nombre. Para cambiar el nombre recordemos que lo único que debemos hacer es cambiar el texto al lado izquierdo del igual.
    • 341. Ahora procedemos a llevar la medida rápida recién creada al área de valores de la matriz. En la matriz podemos comprobar que a nivel de país es promedio y en tipo de compra la suma.
    • 342. Para cambiar el nombre recordemos que lo único que debemos hacer es cambiar el texto al lado izquierdo del igual. Filtros Estas medidas rápidas nos van a permitir crear un cálculo que tenga en cuenta alguna restricción o filtro de algún campo en el modelo de datos. Por ejemplo: supongamos que tenemos una matriz con el campo País el área de filas y la medida ingresos totales en el área de valores. Lo que se desea conseguir es que el valor de Colombia aparezca en cada casilla de la matriz independientemente del país asociado. Para conseguirlo lo único que debemos hacer es ir a una nueva media rápida y en cálculos seleccionar de la sección filtro la subsección de valor filtrado.
    • 343. En valor base debemos llevar el cálculo ingresos totales, en filtro el campo País, una vez llevamos el campo se nos habilitará los elementos únicos: ▪ Argentina ▪ Brasil ▪ Chile ▪ Colombia ▪ Ecuador ▪ Paraguay ▪ Perú ▪ Uruguay ▪ Venezuela
    • 344. Aquí seleccionamos Colombia. Ubicamos la medida y arrastramos al área de valores de la matriz previa. Nota La metodología para agregar medidas rápidas es exactamente la misma para cualquier sección, de hecho, los valores a configurar son bastante descriptivos. Por ello aquí sólo hacemos una descripción breve y rápida
    • 345. Las demás subsecciones hablan por sí solas: Diferencia respecto al valor filtrado Diferencia porcentual respecto al valor filtrado Inteligencia de Tiempo Estas medidas rápidas nos van a permitir crear unos cálculos donde sus transacciones utilizan fechas específicas o intervalos de tiempo determinados, inclusive, el 90% de las tablas siempre cuentan con por lo menos un campo de fecha. El Lenguaje DAX no es ajeno a ello, por eso trae un paquete especial de funciones encaminadas a moldear fechas y permitir reportes que de otra manera serían muy difíciles de lograr, en ocasiones hasta imposibles. Esta categoría de medidas rápidas son las correspondientes a la sección de inteligencia de tiempo.
    • 346. Creemos una matriz con el campo fecha de envió en el área de filas y la medida Ingresos Totales en el área de valores, la matriz final luciría así: En la matriz anterior debemos pulsar dos veces clic en el tercer circulo en la parte superior, contando de izquierda a derecha, esto para que se expanda la jerarquía aparezcan trimestre y meses. A pesar de ello, el nivel de jerarquía en trimestre no será necesario, por lo que debemos quitarlo pulsando clic en el área de filas donde aparece la palabra trimestre.
    • 347. La matriz debe tener el siguiente aspecto: Lo que se desea conseguir es el total acumulado desde el principio del año hasta le fecha o mes actual que se esté mirando en la matriz. Para conseguirlo lo único que debemos hacer es ir como ya hemos intuido a crear una nueva media rápida y en cálculos seleccionar de la sección de inteligencia de tiempo la subsección de total anual hasta la fecha. En el cuadro de diálogo debemos llevar a Valor Base Ingresos Totales y en fecha el campo Fecha de envío de la tabla Pedidos.
    • 348. Como ya es costumbre debemos pulsar clic en el botón aceptar y ubicar la nueva medida rápida (su nombre por defecto es YTD Ingresos Totales) y arrástrarla al área de valores de la matriz previa.
    • 349. Con las descripciones de este capítulo queremos que te enteres de la existencia de las medidas rápidas, por lo que no es un capítulo para explorar cada una en detalle ya que ellas se explican por si solas, sino más bien trazar los lineamientos generales, de hecho, en el caso de la sección de inteligencia de tiempo el solo nombre explica que hace cada media rápida por si misma: ▪ Total Anual Hasta la Fecha ▪ Total Trimestre Hasta La Fecha ▪ Total Mensual Hasta la Fecha ▪ Cambio Año a Año ▪ Cambio Trimestre a Trimestre ▪ Cambio Mes a Mes ▪ Media Acumulada Lo que recomendamos es que explores y juegues con las demás secciones y subsecciones para que te familiarices con lo que se puede encontrar en las medidas rápidas.
    • 351. CAPÍTULO 14 Después de completar este capítulo tú sabrás: ▪ Los Tres Pilares de Todo Crack en DAX ▪ Acerca del Ecosistema DAX ▪ Los Tres Pasos (Internos) Primordiales en DAX ▪ Contextos en DAX Nosotros, los autores de este libro hemos tenido la bonita oportunidad de impartir cursos y entrenamientos presenciales sobre inteligencia de negocios con Power BI; análisis de datos y lenguaje DAX; preparación de Datos y lenguaje M, análisis rápido y lenguaje natural así como visualización de datos y Excel en general. Por lo anterior sabemos que el lenguaje DAX cuesta, si, el lenguaje DAX toma su tiempo para dominar e interiorizar de verdad y algo que hemos detectado es que dejar pasar desapercibido o no ponerles toda la atención a los contextos del lenguaje DAX es el primer causante de un aprendizaje un poco menos que acelerado. Lo anterior no te lo decimos como una mala noticia, sino más bien como lo mejor que puede pasar antes de arrancar el capítulo actual ya que te recomendamos que prestes y leas muy detenidamente cada párrafo, línea, palabra y letra que sobreviene, porque es el capítulo que se dedica a ver los fundamentos del lenguaje DAX, estos fundamentos son los cimientos que deben quedar supremamente sólidos y sin ningún atisbo de humedad para poder crear métricas, cálculos e indicadores deseados.
    • 352. Analogía para Propagación, Contexto y VertiPaq Al principio e incluso por un período de tiempo significativo puede parecer que estos tres componentes (Propagación de filtros, contexto de evaluación y VertiPaq Engine) pertenecen a un ambiente divergente en un ecosistema constituido por funciones y fórmulas. A pesar de la primera impresión, la realidad es más extensa, nos explicamos y siguiendo la analogía ambiental: DAX es un ecosistema donde la fauna y flora se corresponde con las funciones y operadores del lenguaje, es allí donde recae nuestra atención cuando empezamos a navegar por las aguas de las Expresiones para el Análisis de Datos, pero como todo sistema debe existir un ambiente donde se relacionan (Contextos) y en cuyo hábitat ocurren interacciones (Propagación de filtros). Así mismo, dicho ecosistema debe estar en equilibro para que se sostenga por sí mismo y de resultados óptimos (VertiPaq Engine) Nota Grábate esto a fuego: “Todo Crack en DAX; por lo tanto, Máster en Power Pivot, Gurú en Power BI y Promesa en SSAS debe dominar tres cosas al dedillo y conocerlas como si fuera la palma y el dorso de su mano: Propagación de Filtros, Contextos y VertiPaq Engine.”
    • 353. Para tomar lo comentado en la sección previa del presente capítulo en el matiz de los términos del motor interno del lenguaje DAX vamos a darles una primera y pequeña definición a los “Los 3 Pilares de Todo Crack en DAX”: Contexto de evaluación, propagación de filtros y el motor VertiPaq. ▪ Contexto de Evaluación: Es el ambiente bajo el cual se ejecuta una función o expresión DAX. ▪ Propagación de Filtros: Cómo, cuándo y por qué interactúan las distintas tablas en el modelo de datos, es decir, como esas relaciones creadas en el capítulo 11 trabajan en conjunto. ▪ VertiPaq Engine: A parte de poder crear expresiones DAX de todo tipo es necesario crearlas de manera optimizada, es decir, crear código DAX que se ejecute de la manera más rápida posible (Para ello hay que entender el motor interno, VertiPaq Engine). Nota No obstante, no recomendamos que te aventures y preocupes por dominar estos tres pilares en simultaneo, de hecho, recuerda que un conocimiento holgado en ello es lo que da la experticia en DAX y sólo el tiempo y la práctica permite alanzar esta meta; para todo esto es necesario seguir una hoja de ruta para ir escalando progresivamente. Es más, en este libro únicamente tratamos una breve introducción a contextos y propagación de filtros debido a que profundizar en esta temática requiere de un plan de estudio muchísimo más amplio que queda por fuera del alcance de este libro.
    • 354. Contextos en DAX – ¿Qué es un Contexto? Te hemos mencionado que el contexto es el ambiente bajo el cual se ejecuta la función o expresión DAX. – ¿Qué significa esto? Es esencial entender que la definición anterior es sólo una primera aproximación definición y entendimiento del contexto de evaluación. No obstante, vamos paso por paso, para dilucidar correctamente esta primera definición de contextos. Para hacer la explicación más sencilla y amena aquí vamos a utilizar unas tablas alternas y pequeñas, vamos a conocer la tabla de datos: La tabla registra las ventas día a día en el mes de junio del 2017 para los distintos productos de un restaurante, almacenando cantidad y tiempo de entrega en minutos, el id de producto y la fecha adscrita a la transacción. Contexto El contexto es el pedacito de tabla donde se ejecuta la expresión DAX bien sea una medida, columna calculada o tabla calculada.
    • 355. Como ya sabes que las medidas implícitas esconden una filosofía más devastadora que el anillo de mordor, por este hecho vamos a proceder a crear una medida explícita manual que nos arroje la suma de las cantidades o la suma del campo Quantity de la tabla de registros de cantidades del restaurante. A continuación, elaboremos una matriz con los Product Id en el área de filas y la medida recién creada Quantity Tot en el área de valores. – A desmenuzar lo que sobreviene en la matriz Inicialmente, lo evidente: Cada valor de la medida Quantity Tot es diferente. Si lo sabemos: “y el agua moja” pero debemos ser capaces de ver algo más allá porque hay un aspecto trascendental en esta premisa que puede parecer, hay que decirlo, un poco tonta. Pero lo que debemos preguntarnos en realidad es: ¿Cómo llega Power BI a esos resultados? para acotarlo más: ¿Cómo llega Power BI llega al valor de 299 en la matriz?
    • 356. Una respuesta con alta probabilidad de cómo llega Power BI al valor 299 sería: «299 representa la cantidad total vendida para el producto con ID 1» Y sin duda alguna es una respuesta maravillosa, pero; si, siempre hay un, pero. ¿Por qué los valores varían si la fórmula es exactamente la misma? ¡Advertencia! Más que analizar el valor 299 de la matriz y cómo llega a él, lo que se desea analizar es como llega al valor de la casilla donde se encuentra el valor 299. Esto es importante porque a continuación utilizaremos unas tablas mucho más acotadas de resumen para entender la explicación de la mejor manera posible. Recordar, estamos analizando la posición en la casilla especifica de la matriz.
    • 357. ¿Cómo llega exactamente el DAX Engine de manera interna a ese valor? Ahora si no es tan evidente. “Entender cómo el DAX Engine llega a estos valores es clave” Para ello hay que interiorizar los tres pasos primordiales en DAX. Para cada valor en el área de valores de una medida DAX siempre hay que pensar en estos tres pasos primordiales: 1. Identificar Filtros 2. Aplicar Filtros 3. Ejecutar Expresión DAX Recalamoslo siguiente: Para Cada Valor En El Área De Valores Es decir, los tres pasos se aplican para cada “casilla” de manera completamente independiente y de forma única. ¡No lo olvides! Sin embargo, lo anterior puede ser algo engañoso, porque analizar cada “celda” en un objeto visual que no sea una matriz (o tabla dinámica en Power Pivot) puede llegar a ser confuso por eso lo que nosotros recomendamos es la metodología: Evolución Matriz a Gráfico. Nota, Entender cómo llega el motor de DAX a los valores de las casillas en una matriz es el peldaño que te llevará a dominar este lenguaje. Nota La metodología evolución Matriz a Gráfico es estudiado en el capítulo 20 del presente texto.
    • 358. Identificar Filtros Como sabemos que se debe analizar “casilla” por “casilla” vamos a tomar la POSICIÓN que corresponde al valor de: 299 – ¿Cuáles son los filtros? Todo lo que rodea a la celda y restringe Para este caso: • OrderHistoryOfJun2017[Product Id] = 1 Visto de otra manera, todos aquellos campos que no están en el área de valores y el elemento respectivo de la celda analizada involucrado en la matriz. Ahora tenemos la lista de requerimientos (Filtros), es momento de aplicarlos. Aplicar Filtros ¡Advertencia! para visualizar mejor los 3 pasos primordiales, vamos a tomar una mini-versión de la tabla OrderHistoryOfJun2017, esto quiere decir que el valor resultante no será 299 sino uno muchísimo más pequeño porque es una tabla simplificada. dicho con otras palabras: Estamos estudiando la posición donde se encuentra el valor 299. Filtros Es una o más restricciones aplicados a una tabla que tiene como fin segmentarla en un conjunto más pequeño de acuerdo con la especificación de este.
    • 359. Habiendo dicho esto sigamos, ahora es necesario tomar los filtros identificados en el paso 1 y aplicarlos a la tabla:
    • 360. Únicamente hasta este punto entra en juego la expresión DAX de la medida. Ejecutar Expresión DAX La expresión DAX de la medida ahora si entra al juego ¿Quién es la expresión DAX? La asignada a la medida que estamos analizando. ¿Recuerdas le medida que estamos analizado Así es: Quantity Tot:= SUM ( OrderHistoryOfJun2017[Quantity] ) Pero fíjate que sólo hasta ahora se va a ejecutar la expresión DAX, quiere decir que los pasos 1 y 2 se ejecutan siempre primero, SIEMPRE. ¿Qué podemos concluir? ¿Entiendes? Se ejecuta en el ambiente (de tablas) que se ha generado previamente, es decir, en los pasos 1 y 2. Es por eso que el resultado de la fórmula o expresión DAX varia, porque a pesar de ser exactamente la misma para cada “casilla” el pedacito de tabla donde se ejecuta cambia debido a los filtros aplicados en ella. Nota, Haz Parte de Tu Ser Esto: “La Expresión DAX de la medida se aplica sólo en el pedacito de tabla que queda visibles después de aplicar los filtros”
    • 361. La expresión DAX es la misma, pero el ambiente (Contexto) donde se ejecuta varia. De ahora en adelante cada vez que mires un valor piénsalo y analízalo en términos de estos tres pasos, piénsalo siempre así hasta que sea completamente automático, hasta que pienses instintivamente con el DAX Engine, conviértalo en tu mantra así iras en el camino correcto para dominar DAX. Si bien hemos hablado de los contextos en DAX como un ente único, la realidad juega un papel más amplio, en realidad existen dos contextos. ▪ Contexto de Fila ▪ Contexto de Filtro Podemos pensar en el contexto de filtro como el pedacito de tablas que es visible para la ejecución de la expresión DAX en una medida, ojo para un tipo de cálculo medida.
    • 362. Por otra parte, el contexto de fila es el pedacito de tablas que es visible para la ejecución de la expresión DAX para un tipo de cálculo columna calculada. Contexto de Filtro La explicación que hemos hecho hasta este punto corresponde al contexto de filtro, es decir, que es el fragmento de tabla válido o visible dictado por la matriz para la ejecución de la expresión DAX analizado siempre casilla a casilla. Contexto de Fila Para entender el contexto de fila, vamos a tomar nuevamente un escenario resumido, en este caso una pequeñísima tabla de productos, unidades y precio de venta. Si queremos crear una columna calculada con el total, la expresión DAX sería: Total Venta= Datos[Unidades] * Datos[Precio] Contexto de Evaluación A la sumatoria de los dos contextos, es decir, contexto de filtro + contexto de fila una o más restricciones se le denomina contexto de evaluación.
    • 363. Cuando ejecutamos la columna calculada el resultado es el siguiente: Los valores cambian a lo largo de la columna calculada Venta total, pues como podemos observar los tres valores son diferentes: 189, 308 y 203, empero, la fórmula es idéntica para cada una de las casillas, así: Entonces, ¿Por qué los valores son diferentes si la expresión DAX es igual? La respuesta por que el contexto de fila es diferente. El contexto de fila es la fila actual, mejor dicho, en una columna calculada se va ejecutando fila a fila en un proceso iterativo, quiere decir que en un primer momento la columna calculada para la primera casilla solo tendrá visible la primera fila en la tabla, lo cual es la fila actual, mientras que las demás filas quedan ocultas. Luego pasa a la segunda fila y solo tendrá visible la fila actual, que para dicha situación sería la segunda fila en la tabla, dejando las demás filas ocultas para la ‘formula DAX asociada a la columna calculada. = Datos[Unidades] * Datos[Precio] = Datos[Unidades] * Datos[Precio] = Datos[Unidades] * Datos[Precio]
    • 364. De forma ilustrada para la primera fila en una columna calculada podemos visualizarla de manera gráfica como la presentada en la siguiente imagen. Claro, como en la fila actual para la primera parte de la expresión: Datos[Unidades] sólo existe una casilla, entonces devuelve el valor 21, de la misma manera, para la segunda parte de la expresión Datos[Precio] existe una fila entonces devolvería 21, ya con dos valores escalares ejecuta la operación 9*21 sin ningún inconveniente arrojando el valor 189. Contexto de Fila Automático El contexto de fila es la fila actual en la ejecución de una columna calculada, la cual produce el pedacito de tabla visible para la expresión DAX. A esta fila actual se le conoce específicamente como contexto de fila automático, especialmente importante distinguirla e identificarla por su nombre porque como veras en el capítulo siguiente existe otro contexto de fila, llamado contexto de fila programable.
    • 365. CAPÍTULO 15 Después de completar este capítulo tú sabrás: ▪ Funciones Tabulares y Escalares ▪ Función FILTER ▪ Funciones de Agregación Iterativas ▪ Funciones para Ignorar el Contexto de Filtro Hasta este punto del viaje, hemos visto que el lenguaje DAX cuenta con una vastedad de funciones que son muy similares por no decir que idénticas al motor clásico de funciones de Excel, sin embargo, y si nos permites el símil matemático el lenguaje DAX tiene un eje de coordenadas z donde se encuentra un grupo de funciones que arrojan como resultado no un valor numérico sino una tabla de valores. Dilucidar el ABC de las funciones tabulares o aquellas que retornan una tabla como resultado es la situación idónea para dirigir un ascenso en el lenguaje de funciones para el análisis de datos, pero este no es el único componente de la ecuación, también es parte integral entender el comportamiento interno de las funciones de iteración de agregación, decimos “de agregación” porque las funciones vienen dividas en dos “razas”, la funciones de iteración que arrojan un escalar o valor único y las funciones de iteración que devuelven una tabla como salida final. Este capítulo también va acaramelado con las funciones ALLxxxx. Las funciones ALLxxxx son un conjunto de funciones tabulares que tienen como característica adicional que son capaces de ignorar o “hacerse los de la vista gorda” con el contexto de filtro. Estas funciones también son un componente de la ecuación inicial para emprender el camino en los terrenos del lenguaje DAX.
    • 366. En el lenguaje funcional DAX existen un millón más uno de clasificaciones posibles para sus funciones, desde su comportamiento respecto al contexto, según el linaje de creación del cálculo, según su tipo en un área concreta, según su funcionamiento interno, según las relaciones de las tablas, según la propagación de filtros, etc. Etc. No obstante, existe un clasificación etérea, inmutable y obligatoria: Según el resultado que arroja la función. ▪ Funciones Escalares ▪ Funciones Tabulares Funciones Escalares Las funciones escalares son aquellas que al devolver un resultado final devuelven un único elemento, es decir, un valor atómico, por ejemplo: 5, TRUE, a, -9, etc. Etc. Estas funciones son bastante familiares por el simple hecho de que son el caso más común de las funciones de Microsoft Excel. – Algunos ejemplos de funciones que devuelven un escalar: ▪ SUM ▪ ROUNDUP ▪ MID ▪ ISLOGICAL ▪ AVERAGE ▪ INT ▪ TRUE ▪ DISTINCTCOUNT ▪ TODAY
    • 367. Funciones Tabulares Hay una rama de funciones que retornan una tabla como resultado final, estas funciones son las que denominamos funciones tabulares y en un 99% no tienen ningún símil con Excel (Es más hay gran número de funciones escalares que no tiene ningún equivalente con Excel) – Algunos ejemplos de funciones que devuelven una tabla: ▪ FILTER ▪ SUMMARIZE ▪ ALL ▪ VALUES ▪ CALCULATETABLE ▪ DATEADD ▪ CROSSJOIN ¡Advertencia! Las medidas y columnas calculadas sólo admiten funciones escalares, si por ejemplo creamos una medida con una función FILTER (FILTER(Pedidos; Pedidos[País]=”Colombia”)) devolverá inevitablemente un error. –¿Puedes deducir por qué? Esta premisa es excelente para que la entiendas y análisis siguiendo los tres pasos del capítulo anterior; te pedimos de la manera más comedida que así lo hagas, puedes comprobar si estas entendiendo DAX y la temática de contextos. Nota Cuando decimos funciones de Excel nos referimos al motor clásico de funciones, es decir, al que utilizamos en las celdas de las diversas hojas. Esto lo resaltamos porque en Excel tenemos Power Pivot que funciona con el mismo lenguaje DAX.
    • 368. La función tabular número uno a conocer por excelencia es la función FILTER. La función FILTER devuelve una tabla acotada según una restricción dada, concretamente, si deseamos retornar la tabla Pedidos, pero únicamente si el país es Colombia lo podemos conseguir gracias a la función FILTER, análogamente podemos pensar en la función FILTER como una función que aplica un filtro a una tabla. Sintaxis de la Función FILTER = FILTER( <Tabla>;<Condición o Filtro>) ▪ Tabla: Aquí debemos indicar algo tan sencillo como el nombre de una tabla, ejemplo: Pedidos, ‘Categoría de Productos’ o algo más complejo como una función que retorne una tabla. Has este punto esto querría decir que en el primer argumento podemos poner otro FILTER, sin embargo, y concedido la lista de funciones tabulares de ejemplos dadas en el apartado anterior sabemos que en el primer argumento podemos poner funciones tales como: ALL, VALUES, CROSSJOIN, etc., etc. ▪ Condición o filtro: Aquí debemos indicar el filtro o restricción que le queremos realizar a la tabla pasada en el primer argumento de la función. Para seguir el ejemplo de este primer apartado, si deseamos retornar la tabla Pedidos, pero únicamente si el país es Colombia la fórmula DAX sería: =FILTER ( Pedidos; Pedidos = "Colombia" )
    • 369. Se mencionaba también que en el primer argumento se puede proporcionar una función o expresión que devuelva una tabla. Pongamos la siguiente situación, queremos devolver la tabla Pedidos para el País Colombia y el Tipo de Compra igual a Normal. Conociendo lo anterior, la expresión DAX sería. Evidentemente existen otras maneras de lograr la tarea señalada, por ejemplo, con ▪ El operador lógico O ▪ La función OR ▪ Y la ya mencionada anidación de funciones FILTER. Vamos a documentar las dos variantes diferentes. Con la función OR: = FILTER ( FILTER ( Pedidos; Pedidos[Tipo Compra] = "Normal" ); Pedidos[País] = "Colombia" ) = FILTER ( Pedidos; OR ( Pedidos[País] = "Colombia"; Pedidos[Tipo Compra] = "Normal" ) )
    • 370. Con la función y el operador lógico O. Cualquiera de las tres expresiones DAX anteriores las podemos utilizarlas en el tipo de cálculo tabla calculada, para ello debemos recordar ir a la pestaña Modelado, ubicar el grupo Cálculos y seleccionar el comando: Nueva Tabla Calculada. Peguemos la expresión de la solución número uno, es decir, la que contiene los dos FILTER anidados. Recordar que en la parte izquierda del igual podemos indicar el nombre del cálculo, en este caso vamos a llamar a la tabla calculada Pedidos Colombia. = FILTER ( Pedidos; Pedidos[País] = "Colombia" || Pedidos[Tipo Compra] = "Normal" )
    • 371. Para visualizar el resultado de la tabla calculada el primer paso debemos ir a la vista de datos en el extremo izquierdo de la interfaz de Power BI con el icono de una tabla. En una segunda instancia ubicar en el panel de campos, parte derecha de la interfaz, la tabla calculada con nombre Pedidos Colombia, la cual se distingue de las tablas nativas de Power BI por el hecho de que el icono en el extremo izquierdo es (como) de color azul tenue, bastante tenue pero distinguible. Nota Para extraer o contraer la barra de fórmulas verticalmente basta con pulsar clic encima del icono en forma de flecha que se encuentra en la esquina superior derecha de la barra de fórmulas DAX, como podemos intuir la dirección de la flecha indica si se contrae o expande dependiendo del estado inicial.
    • 372. Argumentos Tabulares en Funciones Escalares La función FILTER es fácil de entender como hemos podido corroborar en los párrafos anteriores, la cuestión ahora sería sí las medidas y columnas calculadas únicamente admiten funciones o expresiones escalares, entonces: –¿las funciones o expresiones tabulares son de utilización exclusiva para tablas calculadas? La respuesta es no, total, el título de este aparatado nos “echa al agua”, nos delata. El motivo por el cual las funciones tabulares no son de uso exclusivo de tablas calculadas es por el simple hecho que existen funciones que arrojan un escalar como resultado, pero en uno o más de sus argumentos reciben funciones o expresiones que retornen una tabla, y a aquí, se desata un gran poder. Imaginemos que tenemos una matriz de Power BI donde en el área de filas tenemos el campo SKU de la tabla Pedidos, el objetivo es crear para dicha matriz una medida que al llevarla al área de valores nos arroje el número de ventas o transacciones si las unidades fueron estrictamente mayores a una. Para suplir la demanda es necesario dar la bienvenida a la primera función escalar que en su único argumento recibe una tabla o una expresión que retorne una tabla, la función COUNTROWS. = COUNTROWS(<Tabla o expresión tabular>) Nota, Cada registro o fila de la tabla Pedidos corresponde a una transacción o venta, cada transacción puede tener asociada varias unidades vendidas, sin embargo, fueron realizadas al mismo cliente, por esto decimos que es una única venta.
    • 373. Conociendo la función FILTER y la función COUNTROWS la solución al problema planteado salta a la vista. Si construimos la matriz debe lucir como la siguiente figura: Tx>1 = COUNTROWS ( FILTER ( Pedidos; Pedidos[Unidades]>1 ) )
    • 374. De hecho, podemos crear la función que retorne el número de transacciones sin ninguna restricción. La matriz: De aquí podemos empezar a crear medidas más interesantes, por ejemplo: una medida que nos diga el número de transacciones para los países: Argentina, Brasil y Colombia siempre y cuando el tipo de compra sea igual a normal. NumTx = COUNTROWS ( Pedidos )
    • 375. Conociendo la función FILTER y la función COUNTROWS la solución al problema planteado salta a la vista. Otro conjunto de funciones que admiten en uno de sus argumentos una tabla o expresión tabular son las funciones de iteración. Las funciones de iteración como su nombre lo indica son funciones que en su proceso interno siguen un proceso iterativo, las funciones de iteración se pueden dividir en dos clases: ▪ Funciones de Iteración de Agregación ▪ Funciones de iteración Tabulares Siguiendo el apartado anterior las funciones de iteración de agregación son útiles por que admiten expresiones tabulares en sus argumentos, pero demás nos van a permitir crear cálculos que ejecuten operaciones en una base fila a fila u operaciones entre columnas. TxArgBrColNormal = COUNTROWS ( FILTER ( Pedidos; Pedidos[País] IN { "Argentina"; "Brasil"; "Colombia" } && Pedidos[Tipo Compra] = "Normal" ) )
    • 376. Funciones con Sufijo X Las funciones de iteración de agregación se van a caracterizar por tener un sufijo x, es decir, su nombre es como las funciones normales de agregación, pero al final tendrán la letra X, por tal motivo también se conoce a este conjunto de funciones como las funciones con sufijo X. – Algunos ejemplos de funciones con sufijo X: ▪ SUMX ▪ AVERAGEX ▪ COUNTX ▪ MINX ▪ MAXX ▪ MEDIANX ▪ GEOMEANX Estas funciones tienen la misma estructura de argumentos por lo que podemos dar una anatomía general para la sintaxis de las funciones de iteración de agregación. – Anatomía de Sintaxis de las funciones con sufijo X: = NOMBREX ( <Tabla o Expresión Tabular>;<Expresión en un base fila a fila>) ¡Advertencia! No todas las funciones con sufijo X siguen la anatomía de sintaxis general, de hecho, hay algunas que tienen un orden ligeramente diferente en sus argumentos y otras que tienen más de dos, no obstante, las funciones con sufijo X que no siguen la anatomía de sintaxis general no son la regla general sino una serie de casos especiales.
    • 377. Para comprender, supongamos que necesitamos una medida que arroje los costos totales, pero siempre para el Tipo de Compra igual a devolución, básicamente en la tabla Pedidos tenemos tres costos: Costo del Producto, Costo de Empaque y Costo de Envío, a pesar de ello, no tenemos ninguna columna con el costo total. Si fuera sólo la parte de costo total, la solución sería como sigue: El punto crítico sería como añadir la restricción para el tipo de compra devolución sin crear una columna calculada como paso intermedio, aquí necesitamos algo más poderoso y es precisamente las funciones de iteración de agregación. Funcionamiento Interno de las Funciones con Sufijo X Antes de resolver el escenario propuesto, vamos a estudiar el proceso interno de estas funciones con un esquema o tablas pequeñas simplificadas. La tabla tiene el nombre de ‘Dat’ y consta de 3 columnas denominada A, B y C. Adicionalmente esta pequeñísima tabla sólo cuenta con tres registros o filas, todos ellos son valores enteros. Costo Total = SUM(Pedidos[Costo del Producto]) + SUM(Pedidos[Costo Empaque]) + SUM(Pedidos[Costo de Envío]) Nota, No existe manera de añadir la restricción de tipo de compra con la función FILTER y luego utilizar la función SUM para solventar la solicitud de manera favorable, es más, la función SUM y ninguna de agregación básica admite algo diferente que no sea el llamado de una columna.
    • 378. Vamos a tomar la función SUMX como modelo para entrever el funcionamiento interno de las funciones con sufijo X, además, vamos a tomar la siguiente medida: – Proceso Interno: Lo primero es asumir que la tabla sobre la cual va a trabajar la expresión DAX es la presentada tal cual la figura 15.6, dicho de otro modo, se toma la tabla de la figura 15.6 como el contexto de filtro. Para nuestro caso concreto de la medida con expresión DAX anterior, la función con sufijo X va a la primera fila: = SUMX ( 'Dat' ; ( 'Dat'[A] ^ 2 ) + ( 'Dat'[C] * 'Dat'[B] ) ) Nota La premisa general es que la función con sufijo X va fila a fila en la tabla de resultado proporcionada en su primer argumento ejecutando el cálculo que se ha señalado en su segundo argumento.
    • 379. Para el primer momento, la primera iteración, corresponde a la primera fila de la tabla en la figura 15.7 que hemos dicho es el contexto de filtro para este escenario, quiere decir, que para la expresión DAX únicamente existe esa primera fila y únicamente esa primera fila, las demás filas de la tabla quedan ocultas o son invisibles para la expresión DAX de la medida. Por favor, presta muchísima pero muchísima atención a la siguiente nota y ponla de salva pantallas en tu celular y en la computadora de la oficina: Con la primera fila como única visible el paso siguiente es calcular la expresión DAX dada en el segundo argumento: ( 'Dat'[A] ^ 2 ) + ( 'Dat'[C] * 'Dat'[B] ) No importa que lo repitamos insistentemente, pero cómo únicamente tenemos la primera fila visible los valores para cada una de las columnas en el segundo argumento de la función iteración serían: Nota En el escenario de la función de iteración se puede ver el trabajo conjunto del contexto de filtro y el contexto de fila. El contexto de fila viene dictado por la figura 15.6 y hasta ese punto todas las filas son visibles, sin embargo, al llegar la ejecución de la expresión DAX de la medida, en el primer momento sólo existe la primera fila la cual sería un contexto de fila, porque sería la fila actual en la iteración. Esta convivencia del contexto de filtro y el contexto de fila corresponde al contexto de evaluación.
    • 380. ▪ 'Dat'[A] = 6 ▪ 'Dat'[C] = 1 ▪ 'Dat'[B]) = 2 Por lo tanto, ejecutando tal cual el segundo argumento tendríamos: (6^2) + (1*2), que se traduce en (36+2) que arroja como valor final el número 38. El número 38 es almacenado internamente, para pasar a la siguiente iteración. En la siguiente iteración la lógica es idéntica, pero dejando visible únicamente la segunda fila y las demás ocultas. ▪ 'Dat'[A] = 9 ▪ 'Dat'[C] = 2 ▪ 'Dat'[B]) = 4 (9^2) + (2*4) =>(81+8) => 89. El número 89 es almacenado internamente, para pasar a la siguiente iteración. ¡Vuele y juega la misma lógica!
    • 381. ▪ 'Dat'[A] = 7 ▪ 'Dat'[C] = 2 ▪ 'Dat'[B]) = 6 (7^2) + (2*6) =>(49+12) => 61. El número 61 es almacenado internamente, aquí finaliza la iteración. A este punto los valores: 38, 89 y 61 han quedado almacenados de manera interna, digamos que en una piscina de datos esperando una orden de salida para convertir a dichos valores en uno único. Ese valor de resumen es sacado ejecutando la agregación señalada antes de la x SUM X Para el escenario que estamos estudiando la función de agregación antes de la X es la función SUM, por lo tanto, lo que se hace a continuación es la suma de los valores en la piscina de datos. Mejor dicho: 38 + 89 + 61 devolviendo como resultado el valor escalar 188. Si en lugar de haber sido la función SUMX hubiera sido la función AVERAGEX, la operación de los valores en la piscina de datos hubiera sido: (38 + 48 + 61) / 3 con resultado 62,6 dado que la función antes de la X es AVERAGE que indica el promedio de los valores. 5
    • 382. Retomando la solicitud primaria: “Necesitamos una medida que arroje los costos totales pero siempre para el Tipo de Compra igual a devolución” ahora ya podemos brindar su resolución: Desglosemos la medida para entender lo sucedido. 1. El primer argumento de SUMX es la función FILTER la cual retorna una tabla filtrada o restringida para aquellos registros que corresponde a devolución. 2. El segundo argumento de la función SUMX es una expresión en una base fila a fila que realiza la suma de los tres costos en la tabla Pedidos Nota Otra ventaja que van a brindar las funciones de iteración con sufijo X es que en su primer argumento no sólo podemos poner el nombre de una tabla sino también una expresión que devuelva una tabla, por ejemplo: FILTER. Costos de Devolución = SUMX ( FILTER ( Pedidos; Pedidos[Tipo Compra] = "Devolución" ); Pedidos[Costo del Producto] + Pedidos[Costo Empaque] + Pedidos[Costo de Envio] ) Nota, Algo a notar es que las funciones de iteración con sufijo X se ejecutan fila a fila, quiere decir, que existe un contexto de fila, sin embargo, este contexto de fila es diferente al contexto de fila creado por una columna calculada el cual es un contexto de fila automático. El contexto de fila creado por las funciones de iteración se llama contexto de fila programable.
    • 383. Otras Funciones de Iteración Las funciones vienen dividas en dos “clanes”: ▪ Funciones de iteración que arrojan un escalar o valor único ▪ Funciones de iteración que devuelven una tabla como salida final Por ejemplo, la función FILTER es una función de iteración. Así es esta función es iterativa, de hecho, si miramos su sintaxis vemos que se delata sola: = FILTER ( <Tabla o Expresión Tabular>; <Condición Lógica Fila> ) Una primera diferencia radica en que el segundo argumento debe ser una expresión lógica, es decir, que retorna falso o verdadero (TRUE o FALSE), ya que si es verdadero será considerada en el resultado final de la tabla si es falso será descartada. La expresión lógica también se ejecuta en una base fila a fila, por lo que existe un contexto de fila programable. Otra diferencia se ve al final del proceso iterativo, esto debido a que no hay que hacer ninguna agregación de valores en una piscina de dato, sino simplemente tomar aquellas filas que cumplen para ser mostradas en el resultado final. Nota Las funciones de iteración de agregación y escalares no son las únicas categorías que existen, hay funciones que no son de sufijo X pero que también devuelven un escalar, esto es más informativo ya que el lenguaje DAX es bastante amplio y se sale del alcance de este libro. Si deseas profundizar en el lenguaje DAX te recomendamos el vídeo curso: ▪ Máster en DAX y Power Pivot │ Tomo #1 a #8
    • 384. Lista de Funciones de NO Sufijo X Te mencionamos algunas funciones de iteración que no corresponden a sufijo X, el enjambre de estas funciones es de una envergadura muchísimo más profunda, pero te resaltamos con las que te encontraras probablemente en una primera instancia si decides profundizar en el Lenguaje DAX. ▪ FILTER ▪ LASTNONBLANK ▪ FIRSTNONBLANK ▪ LOOKUPVALUE ▪ ADDCOLUMNS Las funciones ALLxxxx son una familia de funciones bastante especial ya que ellas ignoran el contexto de filtro, esencialmente hablaremos de: ▪ ALL ▪ ALLEXCEPT ▪ (Existe otra gamma de funciones ALLxxxx en esta familia) Función ALL La explicación más enrevesada de las funciones ALL es desde el punto de vista neto de los contextos o en concreto del contexto de filtro, aquí no pretendemos complicar las cosas, en su lugar queremos brindar una explicación aproximada bastante buena, casi que la real utilizando también el contexto de filtro. La verdad es que la explicación más compleja sólo será necesario en unos muy pocos escenarios.
    • 385. Para comprender la utilidad de la función ALL creemos una matriz con el campo País de la tabla Pedidos en el área de filas y de paso llevemos la medida Ingresos Totales al área de valores. La meta por conseguir es crear una medida que retorne la participación, dicho de otro modo, el porcentaje del total general. Por lo tanto, deberíamos crear un cálculo así: ▪ Casilla Argentina = 381.278/3.320.885 ▪ Casilla Brasil = 362.302/3.320.885 ▪ Casilla Chile = 347.945/3.320.885 ▪ Casilla Colombia = 372.727/3.320.885 ▪ Casilla Ecuador = 373.248/3.320.885 ▪ Casilla Paraguay = 375.095/3.320.885 ▪ Casilla Perú = 374.136/3.320.885 ▪ Casilla Uruguay = 353.314/3.320.885 ▪ Casilla Venezuela = 380.836/3.320.885
    • 386. La primera medida o numerador de la fórmula aritmética es sencilla puesto que viene dada por la medida Ingresos Totales, sin embargo, el denominador es una historia distinta debido a que necesitamos que sea la suma de todos los elementos de la tabla. Las Dos Caras de ALL La función ALL tiene dos caras: ▪ ALL con una tabla como argumento ▪ ALL con una columna o varias columnas como argumentos – ALL con una Tabla como argumento: La primera faceta de la función ALL es cuando le proporcionamos el nombre de una tabla como argumento, en esta situación solamente podemos indicarle un único argumento y es el nombre de la tabla en cuestión, ejemplos: ALL(Pedidos), ALL(SKUProductos), etc. Entonces, la función ALL (en su primera faceta) devuelve la tabla indicada en su argumento ignorando el contexto de filtro. – ALL con una Columna o varias Columnas Como argumentos: La segunda faceta, indicamos una columna o varias columnas (en este caso espaciadas por el separador de lista), ejemplos: ALL(Pedidos[País]), ALL(Pedidos[País], Pedidos[Tipo Compra]), etc. ¡Advertencia! Cuando utilizamos la función ALL en su primera faceta únicamente podemos indicar el nombre de una tabla, es decir, que no podemos utilizar en su argumento una función o expresión que devuelva una tabla.
    • 387. Entonces, la función ALL (en su segunda faceta) devuelve: 1. Si es una columna: La Lista de valores únicos de la columna ignorando el contexto 2. Si son más de dos columnas: La Lista de combinaciones únicas de las columnas ignorando el contexto. Ejemplo una columna: ALL ( Pedidos[País] ) Ejemplo dos columnas: ALL ( Pedidos[País]; Pedidos[Tipo Compra] )
    • 388. Ya tenemos los elementos necesarios para el cálculo del denominador en la medida de % Participación que queremos construir, la expresión DAX sería: Nota Los ejemplos anteriores fueron creados con tablas calculadas, quiere decir que el contexto de filtro es las tablas nativas iniciales. Total General = SUMX( ALL ( Pedidos ) ; Pedidos[Ingresos]) ) Nota En algunas aplicaciones querrás obtener la lista de valores únicos de una columna teniendo en cuenta el contexto de filtro, en dicho caso, la función que lo haces es la función VALUES: Sintaxis: VALUES ( <Columna de una Tabla> ) Ejemplo: VALUES( Pedidos[País] ) La función VALUES sólo tiene un argumento por lo que las combinaciones únicas de varias columnas nos las realiza, para este escenario puedes valerte de la función SUMMARIZECOLUMNS Sintaxis: SUMMARIZECOLUMNS ( <Columna 1> ; <Columna 2> ; … ) * La sintaxis, funcionamiento y tareas que se pueden conseguir con la función SUMMARIZECOLUMNS es mucho más amplia, pero para los fines de esta nota podemos tomarla como la descrita arriba. Ejemplo: SUMMARIZECOLUMNS (Pedidos[País] ; Pedidos[Tipo Compra] )
    • 389. El motivo por el cual la expresión DAX funciona para la matriz de la figura 15.10 es que independientemente de la casilla que se está colocando y el filtro de país aplicado el contexto de filtro es completamente ignorado por la función ALL, es decir, que la función SUMX iterará en toda la tabla Pedidos, en todos los países. Si llevamos la medida Total General a la matriz podremos observar su resultado. Ya tenemos todos los elementos suficientes para crear la medida de % de Participación, tenemos dos vertientes, el número uno escribir todas las funciones y demás en la medida, mejor dicho, así: % Participación = DIVIDE ( SUM ( Pedidos[Ingresos] ) ; SUMX( ALL ( Pedidos ) ; Pedidos[Ingresos] ) )
    • 390. Otra opción para escribir la medida % Participación consiste en llamar las medidas previamente creadas: Ingresos Totales y Total General. La manera de llamaras es abriendo paréntesis cuadrados y seleccionarlas en el Intellisense y cerrar paréntesis cuadrados. Arrastremos la medida % Participación al área de valores de la matriz y observemos el resultado final. Nota La función DIVIDE realiza la división de dos valores, proporcionando el numerador en el primer argumento y el denominador en su segundo argumento. La función DIVIDE cuenta con un tercer argumento opcional en el cual podemos indicar que queremos que muestre si la división es por cero, el valor por defecto de este tercer argumento es BLANK lo cual lo veríamos reflejado como una casilla vacía. La ventaja de la función DIVIDE respecto a la utilización del operador de división (/) es que si el denominador es un cero, la medida o cálculo DAX no arrojara un error sino una casilla con el valor en el tercer argumento de la función. La recomendación es utilizar la función DIVIDE en lugar de operador (/) siempre que sea posible. % Participación = DIVIDE ( [Ingresos Totales] ; [Total General] )
    • 391. Existen muchas aplicaciones para la función ALL, pero aquí te ponemos sobre la mesa lo fundamental. Función ALLEXCEPT Supongamos que queremos la lista de combinaciones únicas de los campos: País, Tipo de Compra, Categoría de Descuento, Ciudad, fecha de envío, fecha de llega y Unidades en una tabla calculada. La solución ALL sería. EjemploALLe = ALL ( Pedidos[País] ; Pedidos[Tipo Compra] ; Pedidos[Categoría de Descuento] ; Pedidos[Ciudad] ; Pedidos[Unidades] ; Pedidos[Fecha de Envio] ; Pedidos[Fecha de Llegada] )
    • 392. Si vemos el requerimiento son todos los campos de la tabla Pedidos excluyendo los campos Costo de Producto, Costo Empaque y Costo de Envio. La función ALLEXCEPT hace exactamente lo mismo que ALL, únicamente que en vez de listar todas las columnas que queremos combinaciones únicas listamos las que deseamos excluir o las excepciones según el nombre de la función. En la función ALLEXCEPT debemos tener en cuenta que en el primer argumento debemos indicar el nombre de la tabla y luego listar las columnas que se excluyen. Lista de Otras Funciones ALLxxxx La lista de funciones ALLxxxx es más amplia, a pesar de ello, con las dos anteriores se cumple el objetivo de este libro de brindarte las herramientas iniciales en DAX y con las cuales podrás realizar una gran variedad de tareas, te listamos las otras funciones ALLxxxx. ▪ ALLSELECTED ▪ ALLNONBLANKROW EjemploALLe2 = ALLEXCEPT ( Pedidos ; Pedidos[Costo de Envio]; Pedidos[Costo del Producto]; Pedidos[Costo Empaque] )
    • 393. CAPÍTULO 16 Después de completar este capítulo tú sabrás: ▪ La importancia de los contextos ▪ Propagación de filtros ▪ Filtros directos e indirectos ▪ Mecanismo de funcionamiento de propagación de filtros El lenguaje DAX para Power Pivot, Power BI y SSAS es Mind Blowing, empero, el corazón que desemboca en todas las bondades e incontables posibilidades para el modelamiento es la experiencia de trabajar con múltiples tablas relacionadas de manera declarativa, es decir, hemos podido trabajar con múltiples tablas en Excel utilizando la clásica y querida función BUSCARV y sus allegados (INDICE, COINCIDIR, etc., etc.). Aunque las ventajas de los métodos clásicos son variados, lo cierto es que la cantidad de desventajas superan con creces la lista de opciones positivas. El lenguaje DAX tiene la característica de que trabaja con las relaciones de forma declarativa, esto quiere decir, que no hay columnas adicionales y la comunicación entre tablas es por medio de un vínculo que indica la modificación que debe seguir una o varias tablas, el asunto ahora es comprender como funciona este vínculo y comunicación entre tablas, para ello debemos hablar sobre propagación de filtros que es el fin último del presente capítulo.
    • 394. ¿Te estudiaste el capítulo 14 síntesis de contextos en DAX a detalle y conciencia? Si tu respuesta es sí, sabes que: Si tu respuesta es no, qué estas esperando ve y estudia ese capítulo a detalle y a conciencia hasta que los entiendas al 100%. Dicho capítulo es requisito para el estudio y buen desarrollo del presente, así que léelo y sobre todo empieza a dilucidar los destellos en contextos y pensar en términos de los tres pasos primordiales en DAX desde ahora y por siempre, hazlo parte de tu credo. Aunque el capítulo de contextos consta de unos buenos fundamentos hay una verdad sobre el que salta a la vista, en aquel capítulo únicamente trabajamos con una tabla. Sin embargo, para entender cómo funcionan los contextos cuando existen varias tablas en el modelo de datos (Relacionadas o no) es imperativo hablarte sin tapujos de una temática de la que se dice menos que poco: La propagación de filtros. La propagación de filtros es el pináculo para entender el funcionamiento de las relaciones entre tablas verdaderamente, y embarcarse en dicha empresa no siempre es atractivo. No porque sea complejo, ya que verás una vez comprendido es bastante sencillo, sino porque es necesario una explicación de máxima finura. Nota Es el heraldo que anuncio un universo por conquistar, principio de la obra magna para entender el lenguaje DAX. Nota La propagación de filtros en el modelo de datos es, de hecho, el agua que nutre los contextos.
    • 395. Igual que una flecha no puede lanzarse en una dirección aleatoria, no podemos dejar que este capítulo corra libre sin un buen modelo de datos de simplificación que ayude a entender de manera sencilla la propagación de filtros. Así que te presento a la tabla Product Datail De hecho, para seguir un mismo lineamiento tomaremos los mismos datos simplificados del capítulo 14. Quiere decir que también estaremos utilizando la tabla de la figura 14.1. He aquí nuevamente la tabla en cuestión Si cargamos estas dos tablas en un mismo archivo de Power BI lo que ocurrirá naturalmente el relacionamiento automático de las dos tablas.
    • 396. La guinda en el pastel es que han quedado relacionados correctamente. En este caso es sencillo para la funcionalidad porque los nombres en ambas tablas son idénticos:
    • 397. La relación es un punto álgido para la propagación, no te preocupes, puntualizamos más adelante. Lo que hay que rescatar es que han quedado relacionadas correctamente. Configuración de la Matriz En orden para entender la propagación de filtros, vamos a crear una matriz que involucre campos de las dos tablas. Añadimos el campo Product Name de la tabla Product Datail al área de filas y el campo Quantity de la tabla OrderHistoryOfJune2017 al área de columnas. – ¿Qué hace falta? Exacto una medida –¿De qué tipo, implícita o explicita? Juramos que hemos podido casi escuchar tu respuesta: explicita. La medida que vamos a realizar es una que nos retorne el promedio de entrega en horas, recordemos que en la tabla OrdeHistoryOfJune2017 tenemos el campo Order Delivery que corresponde al tiempo de entrega en minutos. Llevamos la medida Promedio Entrega al área de valores, nuestra matriz debe lucir: Promedio Entrega:= DIVIDE ( AVERAGE ( OrderHistoryOfJun2017[Order Delivery] ) ; 60 )
    • 398. Tres Pasos Primordiales en DAX Recapitulando del capítulo de síntesis de contextos: Para cada valor en el área de valores de una medida DAX siempre: 1. Identificar Filtros 2. Aplicar Filtros 3. Ejecutar Expresión DAX Vamos a seguirlos, para ello debemos seleccionar una celda concreta para analizar – ¿Qué tal 0,79? En orden para entender la propagación de filtros, vamos a crear una matriz que involucre campos de las dos tablas. ¡Advertencia! Estamos enfocados de ahora en adelante en el valor encerrado en rojo de la matriz en la imagen anterior, el cual corresponde al valor 0,79. No obstante, utilizaremos unas tablas aún más simplificadas por lo que no debemos perder de vista que es la posición de la casilla donde está el valor 0,79.
    • 399. – 1. Identificar Filtros Recordar que los filtros son todo lo que rodea a la celda o casilla y la restringe Para este caso: ▪ Product Datail[Product Name]=”Hamburger” ▪ OrderHistoryOfJune2017[Quantity]=1 – 2. Aplicar Filtros Para ello primero te presentamos las dos tablas resumidas, ojo, sé que hemos presentado las dos tablas previamente, sin embargo, estas eran las tablas completas, a continuación, vamos a presentar estas mismas tablas ver en versiones acotadas, es decir, con muchos menos registros para poder visualizar plenamente el suceso de propagación de filtros, ▪ OrderHistoryOfJune2017 ▪ ProductDatail Filtros Es una o más restricciones aplicados a una tabla que tiene como fin segmentarla en un conjunto más pequeño de acuerdo con la especificación de este. Nota, Antes de aplicar los filtros es importante resaltar que estamos involucrando dos tablas en esta oportunidad.
    • 400. Tabla OrderHistroyOfJune2017 versión acotada: Tabla Product Datail versión acotada:
    • 401. Una vez captado nuestras tablas de ejemplo vamos a aplicar los filtros en sus respectivas tablas. El filtro Product Datail[Product Name]=”Hamburger” se aplica a la tabla Product Datail, por lo tanto, queda: Quiere decir que la expresión DAX únicamente tiene acceso al pedacito de tabla Product Datail que se acaba de filtrar. Dicho de otro modo, la medida DAX verá que la tabla Product Datail consta de una sola fila (Resaltada con fondo gris en la imagen anterior) y las demás filas (con fondo blanco y color de fuente gris tenue) no existen para la medida. – Por si las moscas: Observa con detenimiento la ilustración de la figura a continuación: ¡Advertencia! Tener en cuenta que estamos ahora analizando la posición donde se encuentra el valor 0,79. Pero en las versiones acotadas de las tablas, esto quiere decir que al final no vamos a obtener el resultado 0,79 si no un valor completamente diferente.
    • 402. Ahora bien, tenemos otro filtro. El filtro OrderHistoryOfJune2017[Quantity]=1 se aplica a la tabla OrderHistoryOfJune2017, por lo tanto, queda:
    • 403. Ok, filtros (directos) aplicados, por ello, sería el momento de pasar al paso número tres y ejecutar la expresión DAX. Pero algo está faltando, pensémoslo por un segundo: Observemos la medida con lupa y criterio detectivesco: Únicamente se basa en la tabla OrderHistoryOfJune2017 (La tabla Product Datail no se encuentra Promedio Entrega:= DIVIDE ( AVERAGE ( OrderHistoryOfJun2017[Order Delivery] ) ; 60 )
    • 404. La raíz del asunto está en que la medida se basa únicamente en la tabla OrderHistoryOfJune2017 (La tabla Product Datail no se encuentra por ninguna parte en la expresión DAX). Sin embargo, la matriz sí que está involucrando la tabla Product Datail. Mejor dicho, si en este momento ejecutáramos el paso tres con el pedacito de tablas que es visible después del paso dos, ¿Qué sucede?, Que si bien ejecutaría el promedio de Order Dilivery:
    • 405. Si analizamos los productos que tiene en consideración la tabla en la ilustración de la figura anterior, lo cierto sería que está teniendo en cuenta varios productos. Pero sabemos que únicamente debería ser el producto que corresponde a hamburger. ¿Por qué? Recuerdas la matriz y la “casilla” que estamos analizando.
    • 406. Es decir, falta un (1) vínculo y una forma de (2) comunicación entre las dos tablas. Pues, el vínculo sí que existe, ya que las dos tablas están relacionadas. La cuestión es: ¿Cómo se comunican? La relación (Vínculo) sirve para que las tablas propaguen (comuniquen) sus filtros. Aquí es donde entra la propagación de filtros. Filtros Indirectos o Cruzados Antes del paso tres: Ejecutar Expresión DAX ocurre la propagación de filtros o presentado de manera alterna los filtros cruzados. Así que escribe en tu pared con tinta indeleble lo siguiente: Nota Justo antes del paso tres en el algoritmo de los tres pasos primordiales en contextos, se aplican los filtros indirectos o cruzados, es decir, sucede la comunicación entre las tablas relacionadas en el modelo de datos para ver cómo afectan los filtros de una tabla con sus tablas relacionadas, esto lo que va a permitir es reducir aún más los pedacitos de tablas visibles para la expresión DAX.
    • 407. Para ver el funcionamiento de la propagación de filtros es ineludible forjar la terminología estándar necesaria para tener congruencia tanto en este capítulo como en los demás ámbitos, por lo tanto, es importante repasar los siguientes conceptos ▪ Tabla Transaccional (*aka: Tabla de hechos o Tabla Matriz) ▪ Tabla de Búsqueda (*aka: Tabla de Dimensión) ▪ Clave Primaria (*aka: Primarey Key) ▪ Clave Foránea (*aka: Foreign Key o Clave ajena) ▪ Columnas Equivalentes * aka: Also Know As, También conocido como – ¡Para que reinventar la rueda! 1) Definición Tabla de Búsqueda: Es una tabla en la cual por lo menos uno de sus campos tiene elementos que no se repiten (cada ítem o elemento es único identificando de forma univoca cada registro de la tabla). 2) Definición Tabla Transaccional: Es una tabla con alta densidad de datos, es decir, con una cantidad de filas considerables respecto a las otras del modelo de datos actual, dicha tabla contiene los valores de las medidas de negocio o dicho de otra forma los indicadores de negocio. – Citando a Wikipedia 3) Definición Calve Primaria: Se llama clave principal a un campo o a una combinación de campos que identifica de forma única a cada fila de una tabla. Una clave primaria comprende de esta manera una columna o conjunto de columnas.
    • 408. 4) Definición Clave Foránea: Es una limitación referencial entre dos tablas. La clave foránea identifica una columna o grupo de columnas en una tabla (tabla hija) que se refiere a una columna o grupo de columnas en otra tabla (tabla maestra o referenciada) 5) Columnas Equivalentes: Son las columnas de una tabla transaccional y de búsqueda con los mismos elementos, estas columnas permitirán las relaciones en las tablas. – En nuestro escenario resumido: ▪ Tabla Transaccional: OrderHistoryOfJune2017 ▪ Tabla de Búsqueda: Product Datail ▪ Clave Primaria: Columna Product ID de la tabla de búsqueda ▪ Clave Foránea: Columna Product ID de la tabla transaccional Propagación en Acción La manera por la cual se van a comunicar las dos tablas es mediante la relación. ahora bien, la comunicación va a ir en una única dirección: Teniendo en consideración lo anterior, sabremos de antemano que la propagación para el escenario de este capítulo ocurre desde la tabla Product Datail a la Tabla OrderHistoryOfJune2017. De hecho, la pequeña flecha que aparece en Power BI indica precisamente esto, de que tabla a que tabla ocurre la propagación de filtros. «!» Grábate esto a Fuego: La propagación de filtros ocurre siempre en una única dirección, desde las tablas de búsqueda a las tablas transaccionales (A menos que se indique lo contrario)
    • 409. – ¿Cómo ocurre la propagación? Sabemos que el filtro de la tabla de búsqueda es: Product Datail[Product Name]=”Hamburger” no afecta directamente a la tabla transaccional, primero porque se ha dicho específicamente que sea para la tabla Product Datail y en segundo lugar porque el campo Product Name no existe en la tabla OrderHistoryOfJune2017. Entonces, Lo primero que ocurre es una correspondencia entre el ítem o los ítems del campo que corresponde al filtro (es decir, Product Datail[Product Name]=”Hamburger” ) y la clave primaria de la tabla de búsqueda (es decir, Product Datail[ProductID]) ¡Advertencia! La dirección de la flecha para Power Pivot de Excel 2013 es en la dirección opuesta a la mostrada en la figura 16.17. Para Power Pivot de Excel 2010, 2016, Power BI y SSAS la dirección de la flecha es como la presentada en la ilustración de la figura 16.7.
    • 410. El elemento se propaga ya que es el que está relacionado con la tabla transaccional.
    • 411. Por lo tanto, el pedacito de tabla que es visible en la tabla transaccional es: Contexto de Filtro Ahora podemos dar una definición un poquitico más aproximada del contexto de filtro: El contexto son los pedacitos de tablas visibles en el modelo de datos que verá la expresión DAX del cálculo personalizado después de la propagación de filtros.
    • 412. Y ahora si estamos listos para el tercer paso primordial en DAX: Ejecutar expresión DAX – 3. Ejecutar Expresión DAX La expresión DAX de la medida se ejecutará hasta ahora, recuérdalo x ¡Advertencia! La función ALL ignora el contexto, simplemente no lo tiene en cuenta, ello quiere decir que no lo modifica. Por lo tanto, la propagación ocurre si la expresión DAX tiene una función ALL, esto en lo que deriva es en que otras partes de la expresión seguirán viendo los pedacitos de tablas.
    • 413. Tres Pasos (Internos) Primordiales en DAX con Propagación Los tres pasos los podemos actualizar de la siguiente forma para múltiples tablas 1. Identificar Filtros 2. Aplicar filtros y propagar 3. Ejecutar Expresión DAX Fíjate que la propagación va en el segundo paso, antes de la ejecución de la expresión DAX. Recomendaciones para trabajo con múltiples tablas y Propagación Entendiendo los fundamentos en contextos, los tres pasos primordiales y la propagación filtros, podemos sacar un par de reglas generales para evitar valores anómalos en nuestras matrices, tablas dinámicas o demás elementos. ▪ En las áreas de filas y columnas de una matriz utilizar siempre campos de las tablas de dimensión y en el área de valores medidas que tenga su raíz en campos de tablas transaccionales, de esta manera aseguramos que la propagación de filtro sea adecuada y no ve valores inherentes en nuestra matriz. ▪ Si se desea crear medidas que involucren campos de múltiples tablas, la recomendación es que dichos campos sean de tablas transaccionales y que la matriz tenga campos en al área de filas y columnas de una o más tablas de dimensión compartidas por los campos de las tablas transaccionales involucradas en la medida. Nota Es posible habilitar la propagación bidireccional, pero en lo posible evitarlas o reducirlas al máximo posible.
    • 415. CAPÍTULO 17 Después de completar este capítulo tú sabrás: ▪ Variación Discreta de Contexto (On/Off) ▪ Primera Profundización en el Contexto de Filtro ▪ El ABC de la función CALCULATE ▪ Las 3 Posibles Condiciones de la Función CALCULATE “Una función para gobernarlas a todas. Una función para encontrar todas las respuestas, una función para utilizarlas en un mismo lugar y atarlos en un mismo ambiente. La función única, CALCULATE, no es siniestra sino más bien todo lo contrario: el verdadero poder” Si debíamos encontrar una definición para la función CALCULATE, algo del estilo con la analogía del señor de los anillos era cuando menos apropiada, y es que la función CALCULATE y su prima hermana CALCULATETABLE es la función más importante, más poderosa e inevitable del lenguaje DAX. El motivo recae en que es la única función que puede modificar o actualizar el contexto de filtro, es la única función que permite términos intermedios en contextos, por lo anterior está involucrada prácticamente en el 90% de las expresiones del lenguaje y su vastedad de posibilidades roza el descaro puesto que nos da acceso a una infinidad de aplicaciones. Cuando se habla de la función CALCULATE nada es desdeñable, pues su entendimiento auténtico demanda de mucho estudio y práctica, no obstante, este capítulo brinda una buena introducción para que la puedas utilizar a un nivel superior a la media.
    • 416. Bien, en este capítulo retomamos la línea general de archivos Disproductos, vale decir, las tablas: Pedidos, SKUProductos, CategoríaDeProductos, Descuentos, etc. En el Capítulo 15: La Llave para Dominar DAX, Síntesis de contextos. Vimos cómo crear una medida que arroje el porcentaje de participación o porcentaje del total general, esta medida será vital ahora, por lo que recordar que la hemos llamado: % Participación no está demás. Vamos a crear una matriz que tenga en el área de filas el campo Categoría de la tabla CategoríaDeProductos y el campo SKU de la tabla SKUProductos también el área de filas, adicionalmente vamos a llevar la medida % Participación al área de valores. Recordar que si no aparece todas las jerarquías en la matriz sólo debemos dar clic en el botón señalado.
    • 417. Analizando la medida % Participación de la matriz anterior podremos notar que todo está correcto, la manera más fácil de identificarlo es observando el Total de la matriz, ya que allí debemos comprobar que el valor sea 100% y en dicho caso se cumple perfectamente. Ahora procedamos a llevar una segmentación de datos al lienzo de Power BI y arrastar a su campo la columna Categoría de Descuento de tabla Descuento. En la segmentación de datos vamos a seleccionar el elemento Special Day. Observemos nuevamente la matriz para corroborar si la medida % Participación sigue funcionando en todo su esplendor o más bien encontramos alguna incoherencia. Utilicemos el método de mirar el Total de la matriz para ejecutar la comprobación, será más que claro que la medida % Participación ya no está funcionando por que el valor del Total no es 100%, es de hecho, un valor muy inferior. Nota Todos los detalles acerca del objeto visual Segmentación de Datos: Su configuración y trucos de diseño lo puedes estudiar en el capítulo 25.
    • 418. Variación Discreta de Contexto La pregunta que surge naturalmente: – ¿Por qué la medida se daña con una configuración como la presentada en la figura 17.3 mientras que para la matriz de la figura 17.1 funciona correctamente? Para llegar al corazón del asunto debemos enfocarnos en el objeto visual que separa estas dos matrices, esto es, la segmentación de datos con el campo CategoríaDeDescuento de la tabla Descuento. Aquí deberíamos observar el valor 100%, en su lugar observamos un valor muchísimo menor. Lo anterior nos ayuda a concluir que la medida % Participación es errónea en este escenario. Casilla a analizar en el siguiente aparatado.
    • 419. Dejemos a la vista la expresión DAX de la medida % Participación para que nos ayude a dilucidar lo que está ocurriendo. El numerador de la expresión DAX: SUM ( Pedidos[Ingresos] ) No tiene nada extraño y además sabremos que funciona adecuadamente, analizando en termino de los 3 pasos primordiales en contextos: – 1. Identificar Filtros ▪ CategoríaDeProductos[Categoría] = “Blue-Ray” ▪ SKUProductos{SKU] = “B01” ▪ Descuento[Categoría de Descuento] = “Special Day” % Participación = DIVIDE ( SUM ( Pedidos[Ingresos] ) ; SUMX( ALL ( Pedidos ) ; Pedidos[Ingresos] ) ) Nota Estaremos analizando la expresión DAX de la medida % Participación en el escenario de la matriz de la figura 17.3 y la casilla remarcada en la misma figura.
    • 420. – 2. Aplicar Filtros y Propagar Aquí sabremos que la tabla transaccional Pedidos quedará restringida en su visibilidad para la expresión DAX de acuerdo con los filtros anteriores y la propagación, a saber, la tabla Pedidos quedará visible únicamente para Special Day, B01 y Blue-Ray. – 3. Ejecutar Expresión DAX Quiere decir que la expresión (Para la casilla encerrada en la figura 17.3): SUM ( Pedidos[Ingresos] ) corresponde al total de ingresos para la categoría de producto Blue-Ray, la categoría de descuento Special Day y el SKU B01. Esto lo que quiere decir es que esta parte de la expresión DAX está teniendo en cuenta los 3 filtros. El Denominador de la expresión DAX: SUMX ( ALL ( Pedidos ) ; Pedidos [Ingresos] ) – 1. Identificar Filtros ▪ CategoríaDeProductos[Categoría] = “Blue-Ray” ▪ SKUProductos{SKU] = “B01” ▪ Descuento[Categoría de Descuento] = “Special Day” Nota Es importante tener un conocimiento pleno y consiente del capítulo 16, sino es importante estudiarlo y repasarlo ahora mismo.
    • 421. – 2. Aplicar Filtros y Propagar En este punto debemos mirar con un poco más de cuidado el primer argumento de la función SUMX, que corresponde a: ALL ( Pedidos ) Recapitulando: La función ALL en su primera faceta recibe una tabla y la retorna ignorando el contexto de filtro. Lo anterior se traduce que devuelve la tabla completa sin ningún filtro para ningún campo, independientemente de si es un filtro dictado por una matriz, segmentación de datos o cualquier objeto visual, devuelve la tabla Pedidos completica. – 3. Ejecutar Expresión DAX La función SUMX va a iterar en la tabla Pedidos completa, pero en realidad lo que se quiere buscar es que siga teniendo en cuenta el filtro de la segmentación de datos: ▪ Descuento[Categoría de Descuento] = “Special Day” Pero a su vez ignore los filtros de la matriz: ▪ CategoríaDeProductos[Categoría] = “Blue-Ray” ▪ SKUProductos{SKU] = “B01” Para el caso de la medida % Participación esto no sucede, porque hasta el momento solo contamos con dos posibilidades extremas para el contexto: Nota No olvidar que la aplicación de filtros y la propagación si ocurre, sin embargo, ALL ignora el contexto.
    • 422. La variación discreta de contexto se presenta para una y cada una de las funciones que existen en el lenguaje DAX, es decir, o la función tiene en cuenta el contexto (On) o la función no tiene el contexto (off). Como hemos dichos, dos estados discretos 1 y 0. 1 para decir que si lo tiene en cuenta (por aquello de que el 1 es booleano significa verdadero) y 0 para decir que no lo tiene en cuenta (por aquello de que el 0 en booleano es falso) – Ejemplos: ▪ FILTER: lo tiene en cuenta ▪ ALL: No lo tiene en cuenta ▪ SUMX: Lo tiene en cuenta Sin embargo, y esto es clave: en el lenguaje DAX existe una función y solo una función que permite estados intermedios, es otras palabras, que puede tener en cuenta ciertos filtros e ignorar otros e incluso agregar nuevos, esto se conoce como la actualización o modificación del contexto de filtro. Variación Discreta de Contexto El contexto de filtro lo podemos trabajar en dos estados: el primera tenerlo en cuenta en su totalidad (con todos los filtros de los diversos objetos visuales sean matrices, segmentación de datos u otros) y la otra ignorar el contexto de filtro por completo En otras palabras, es on/off, todo o nada, dos estados discretos 0 o 1. Por lo anterior decimos que el contexto es discreto porque solo toma dos estados. La premisa aquí presentada es parcialmente cierta, ya que tener estados intermedios del contexto sí que es posible, es más, deriva en algo muy importante: la modificación del contexto de filtro.
    • 423. Antes de continuar con la función CALCULATE es obligatorio entender que significa actualizar el contexto de filtro para ello hay que indagar un poco más acerca de los contextos. Repasemos la definición de contexto que tenemos hasta ahora: Debemos ser tajantes: La definición de contexto de filtro actual es bastante ingenua, si bien es una aproximación para la parte introductoria de DAX con una validez propia no deja de ser una aproximación burda de lo que es el contexto. Para investigar un poco más acerca del contexto es necesario aterrizar un concepto. Listas (Filtros) en el Ambiente de Contextos –¿Qué es un filtro? Un filtro es un conjunto activo de valores y cada filtro se aplica a una única columna en el modelo de datos actual. Nota La única función que puede modificar, actualizar el contexto de filtro es la función CALCULATE (Y su secuaz CALCULATETABLE). Contexto de Filtro El contexto son los pedacitos de tablas visibles en el modelo de datos que verá la expresión DAX del cálculo personalizado* después de la propagación de filtros. *Cálculo Personalizado: Medidas, Columna Calculada y Tabla Calculada
    • 424. En este punto vamos a utilizar las tablas simplificadas del Capítulo 16: Propagación de Filtros al Desnudo, en particular, el resultado después de toda la propagación. El filtro o lista de valores activos para la columna Product Name de la tabla Product Datail sería: Hamburger, mientras que para la columna OrderHistoryOfJune2017 serían: 39 y 49. Nota Si has llegado hasta aquí sin interiorizar el capítulo 16 o te los has saltado, es recomendable hacer una pausa activa y estudiarlo con lujo de detalle antes de continuar. Product Datail OrderHistoryOfJune2017
    • 425. He aquí la las listas de cada una de las columnas: Nótese que se habla del conjunto activo de valores, esto quiere decir, que son los elementos únicos visibles, por lo tanto, hablamos de filtros en el contexto de filtro después del paso dos (aplicar y propagar) en los tres pasos primordiales en contextos y DAX. 1 Hamburger 20 Product Datail OrderHistoryOfJune2017 1/06/2017 39 45 1 1
    • 426. Significado de Modificar el Contexto de Filtro Entendiendo que un filtro es la lista de valores activos podemos revelar que significa modificar el contexto de filtro. Gráficamente el significado de modificar el contexto de filtro. Modificar Contexto de Filtro Para modificar o actualizar el contexto de filtro debemos proveer una lista de nuevos valores para una o varias columnas filtradas (después del paso dos) en el modelo de datos. 1 Hamburger 20 Hot Dog Pizza Debemos llegar de alguna manera con una nueva lista de valores (filtro) y reemplazarla en alguna de las columnas en el modelo. Ejemplo, sabemos que la lista de valores activos para la columna Product Name es: {Hamburger}, para modificar el contexto podemos llegar con una lista nueva como, por ejemplo: {Hot Dog, Pizza}
    • 427. Hasta el momento no sabemos cómo generar esas nuevas listas, pero sí que conocemos el significado de modificar el contexto de filtro. Contexto de Filtro una Definición más Aproximada Ya que conocemos lo qué es un filtro, podemos dar una definición más próxima al contexto de filtro; la definición que presentamos ahora sigue siendo una aproximación, más cercana pero aproximada en todo caso, a pesar de ello, ya con esto podemos estudiar una gran cantidad de funciones y aspectos del lenguaje DAX bastante robustas. La crema y nata de las funciones es CALCULATE por el simple hecho de que es la única función que puede modificar el contexto de filtro, esto ya lo hemos mencionando y hemos dicho que su secuaz CALCULATETABLE también puede modificar el contexto de filtro. En realidad, CALCULATE y CALCULATETABLE crean un nuevo contexto de filtro y luego evalúa su expresión en el nuevo contexto. Contexto de Filtro El Contexto de Filtro es un conjunto de tablas, cada columna de las diversas tablas lista todos los valores los cuales el motor interno de DAX considera visible en el modelo de datos actual, cada uno de los filtros operan en conjunto (Conjunción lógica -Y-) y forman el contexto de filtro. Nota No es objeto de este libro estudiar DAX y contextos y sus temáticas relacionadas. Sin embargo, nosotros los autores brindamos el Curso en Vídeo: Máster en DAX y Power Pivot donde puedes profundizar en estos temas.
    • 428. Sintaxis de la Función CALCULATE = CALCULATE ( <Expresión Escalar>; [<Lista 1>]; [<Lista 2>]; [<Lista 3>]; … ) ▪ Expresión: Una expresión de tipo escalar a ser evaluada en el contexto modificado, puede ser algo tan sencillo como: SUM o expresiones más complejas como de iteración con sufijo X o incluso funciones anidadas. Ejemplos: o SUM ( Pedidos[Ingresos] ) o AVERAGEX ( Pedidos; Pedidos[Costo Empaque]+Pedidos[Costo del Producto] ) o ROUNDUP ( SUM ( Pedidos[Ingresos] ) ) ▪ Lista 1: Una lista de valores exacta en forma de expresión tabular que se desea ver en el nuevo contexto. El número de argumentos de la función CALCULATE es indefinidos, a saber, podemos proporcionamos n lista de valores en sus argumentos, esto se hace a partir del segundo argumento. Del segundo argumento de adelante se les conoce como Argumentos de Filtro. Nota Nótese que del segundo argumento en adelante de la función CALUCLATE recibe la lista de nuevos valores para modificar el contexto de filtro. Nota Vease que el único argumento obligatorio de la función CALCULATE es el primero, aunque pueda parecer que la función CALCULATE sin argumentos de filtros carezca de sentido, la verdad es que CALCULATE con solo su primer argumento ejecuta una operación llamada transición de contexto (Por fuera del alcance de tema del presente libro).
    • 429. Procedimiento Interno de la Función CALCULATE El funcionamiento interno de la función CALCULATE es crítico para sacarle máximo provecho y entender todas las fórmulas que andan rodando por la web, para ello, lo primero es tener claro que el procedimiento interno se ejecuta respetando los tres pasos primordiales en contexto, dicho de otro modo, si la expresión DAX tiene una o más funciones CALCULATE, estas se van a ejecutar igualmente en el paso tres: ejecutar expresión DAX. –Procedimiento: ▪ Toma el contexto de filtro actual (el producido por los pasos 1 y 2 de los tres pasos primordiales) y hace una copia en un nuevo contexto de filtro ▪ Evalúa cada argumento de filtro (del segundo en adelante) y genera para cada argumento una lista de valores válidos para la columna especifica que reemplazará o alterará la lista actual ▪ Si dos o más argumentos de filtros afectan a la misma columna, estas se combinan en una conjunción lógica (La intersección u operación Y). Ejemplos: o Si una lista arroja: {“Argentina”} y otra arroja: {“Colombia”} entonces la intersección de las dos es vacía, ya que ninguno de los dos conjuntos comparte elementos. o Si una lista arroja: {“B01”; “B02”; “CBO1”; “L07”; “L02”} y otra lista arroja {“D01”; ”L07”; “B02”} la lista final válida sería: {”L07”; “B02”}. Estos casos son supremamente extraños. ▪ Si una columna tiene un filtro, el nuevo filtro (la nueva lista de valores válidos generados por argumento de CALCULATE) lo reemplaza, sino lo tiene lo aplica ▪ Una vez el contexto es evaluado la función CALCULATE ejecuta la expresión DAX en el nuevo contexto (Nótese que el primer argumento de CALCULATE es el último en
    • 430. ejecutarse, por eso se ejecuta en el contexto modificado). Al final se reinicia al contexto original. La Máscara para Condición Booleana Volemos a Disproductos. Creemos una matriz con el campo País de la tabla Pedidos en el área de filas y la medida Ingresos Totales en el área de valores. ¡Advertencia! En este capítulo utilizamos los corchetes {} para representar la lista de elementos de una columna producida por una expresión tabular, por ejemplo, si indicamos: {“Chile”; “Perú”; “Uruguay”} estamos señalando que una expresión tabular DAX arroja como resultados los elementos: “Chile”, “Perú” y “Uruguay” del campo País. Se debe tener presente y no confundir que esta notación no tiene nada que ver con la notación para crear listas en el lenguaje M. Las listas en el lenguaje M siguen una notación del estilo {1,2,3,4,5} y representan una secuencia ordenada de valores primitivos o estructurados y cada valor se separa por coma (,) Las listas en este capítulo representan el conjunto de los valores activos de una columna, esta columna es expresión tabular que sólo devuelve una columna como resultado. Por cuestiones pedagógicas representamos estas listas también con {} pero separadas por punto y como (;) Pata mayor detalle acerca de las listas en preparación de datos y el lenguaje M puedes referirte al Capítulo 8: Introducción al Lenguaje M.
    • 431. La misión que queremos cumplir ahora es crear una medida que nos devuelva los ingresos totales pero que siempre tenga en cuenta el SKU L07, en otras palabras, independientemente de la configuración de la matriz que la medida calcule los ingresos para el SKU = L07. Vamos a llevar el paso a paso para conseguir la meta analizando la casilla correspondiente a Argentina. Los tres pasos primordiales en DAX con la medida Ingresos Totales. – 1. Identificar Filtros ▪ Pedidos[País] = “Argentina” – 2. Aplicar Filtros y Propagar El único filtro que se aplica es del país, por lo tanto, la tabla Pedidos únicamente queda visible para aquellos registros donde el país es Argentina. – 3. Ejecutar Expresión DAX Filtros: =SUM ( Pedidos[Ingresos] )
    • 432. Como ya intuimos la medida Ingresos Totales no cumple con el requerimiento de que sea únicamente para los SKU = L07, por lo tanto, debemos añadir ese filtro de alguna manera sin que provenga de una matriz, segmentación de datos o cualquier otro objeto visual. Como con las funciones ALL, FILTER y demás es todo o nada, o se tiene consideración el contexto o no, entonces no vale la pena hacer uso de ellas. Lo que vemos es que al contexto actual debemos añadirle un filtro adicional (SKU = L07) sabremos que nuestra búsqueda se debe enfocar con la función CALCULATE que es la única que puede modificar el contexto de filtro. =CALCULATE ( SUM ( Pedidos[Ingresos] ) ; ______________________ ) Lo que queremos conseguir en el argumento subrayado es una lista que retorne: L07 para el SKU y así afecta a la columna en el contexto actual. Recordemos que la lista exacta se debe generar como una expresión Tabular. Una posible expresión: La fórmula anterior no brinda el resultado deseado por el simple hecho de que está arrojando una tabla completa (Como veremos más adelante proporcionar una tabla en los argumentos de filtros también es válido, pero de momento estamos enfocados en la lista). Lo que se desea de la expresión tabular es una tabla con una única columna y que en ella únicamente tenga el elemento L07 de la columna SKU, para que eso suceda podemos iterar en la columna SKU y la manera de = FILTER ( Pedidos ; Pedidos[SKU] = “L07” )
    • 433. conseguirlo es con la función ALL (Recordemos que ALL en su segunda faceta devuelve la lista de valores únicos ignorado el contexto) – ALL ( Pedidos[SKU] ) devolvería: Una única columna era un primer paso para generar la lista, ahora podemos utilizar la fórmula ALL (Pedidos[SKU]) en el primer argumento de la función FILTER para iterar y extraer el SKU L07. = FILTER ( ALL ( Pedidos[SKU] ) ; Pedidos[SKU] = “L07” )
    • 434. Ya tenemos los elementos para crear la expresión DAX encomendada, nombremos a esta medida como: IngresosL07. El resultado en la matriz: = CALCULATE ( [Ingresos Totales]; FILTER ( ALL ( Pedidos[SKU] ); Pedidos[SKU] = "L07" ) ) L07
    • 435. Sigamos los tres pasos primordiales en DAX para la casilla correspondiente al país Argentina y la medida Ingresos L07. – 1. Identificar Filtros ▪ Pedidos[País] = “Argentina” – 2. Aplicar Filtros y Propagar El único filtro que se aplica es el de país, por lo tanto, la tabla Pedidos sólo queda visible para aquellas filas donde el país es igual a Argentina. – 3. Ejecutar Expresión DAX Filtros CALCULATE ( [Ingresos Totales]; FILTER ( ALL ( Pedidos[SKU] ); Pedidos[SKU] = "L07" ) ) Procedimiento Interno de CALCULATE ✓ Copia Contexto: Pedidos con filtro de país Argentina ✓ Evalúa cada argumento de filtro y genera lista: o <Lista1> => FILTER ( ALL ( Pedidos[SKU] ); Pedidos[SKU] = "L07" ) => {“L07”} ✓ Filtros existentes o Pedidos[País] = “Argentina” ✓ Nuevo Filtro o Pedidos[SKU] = “L07” ✓ Contexto de filtro actualizado o Pedidos[País] = “Argentina” o Pedidos[SKU] = “L07” El nuevo contexto de filtro es la tabla Pedidos actualizada donde tendrá en cuenta únicamente aquellas filas para el país Argentina y el SKU L07
    • 436. ✓ Ejecutar Expresión DAX (Primer argumento de CALCULATE) en el nuevo contexto de filtro: Pedidos con filtro de país Argentina: [Ingresos Totales] => SUM (Pedidos[Ingresos}) ✓ Reiniciar Contexto al Original Puede parecer una explicación compleja a una tarea sencilla, por lo que simplemente era agregar otro filtro a una columna, sin embargo, los argumentos de filtro de CALCULATE en conjunción con otras funciones nos van a permitir modificar el contexto de filtro para hacer tareas de mucha más complejidad. No obstante, el escenario anterior, es decir, agregar un filtro a una columna es una tarea tan común que Microsoft se dio cuenta de ello desde el principio por lo que creo un atajo mediante una máscara para una utilización más rápida y acortada. FILTER ( ALL ( Pedidos[SKU] ); Pedidos[SKU] = "L07" ) Pedidos[SKU] = "L07" Este resumen, esta máscara para añadir un filtro adicional a una expresión DAX sin necesidad de pensar en la expresión tabular que arroje los valores exactos para cambiar el filtro existente se le ha denominado como: Condición booleana. Esto es una máscara para la expresión tabular real (la encerrada en cuadro punteado arriba) ¡Advertencia! Internamente la condición booleana se transforma en la expresión tabular. Muchas personas aprenden CALCULATE con la condición booleana e ignorando por completo la explicación por lista de, por eso al ver algo de estilo: CALCULTAE ([Medida], VALUES(Pedidos[Tipo Compra])) se pierden.
    • 437. Con la condición booleana clara, solicitudes del estilo: una medida que devuelve el promedio de ingresos para la categoría de descuento igual a Non es sencilla: Ahora bien, como sabemos que los argumentos de filtro funcionan como un Y lógico podemos responder solicitudes también del tipo: La mediana de ingresos para la categoría de descuento Non y el SKU igual a CB01. No podemos repetir la advertencia lo suficiente: las condiciones booleanas son un atajo para no tener que redactar toda la expresión tabular que proporcione la lista de elementos válidos y nuevos para el contexto de filtro, en efecto, si necesitamos una medida en la cual se deba aplicar un elemento A de una columna o un elemento B de otra columna ya no podremos utilizar la máscara de condición booleana (Aquí debemos puntualizar dos opciones, más adelante lo hacemos, de momento vamos a tomar el caso de un elemento A o B de una misma columna). = CALCULATE ( AVERAGE ( Pedidos[Ingresos] ) ; Pedidos[Categoría de Descuento]="Non" ) = CALCULATE( MEDIAN ( Pedidos[Ingresos] ) ; Pedidos[Categoría de Descuento]="Non" ; Pedidos[SKU]="CB01" )
    • 438. – Ejemplo: Crear una medida que al agregar a la matriz de la figura 17.10 devuelva los ingresos para el SKU L02 o L07. Nuestro amigo y lector debería poder deducir porque la siguiente expresión no es correcta: Si repasamos el tercer paso del procedimiento interno de CALCULATE encontraremos que: si dos o más argumentos de filtros afectan la misma columna, estas se combinan en la intersección de los dos conjuntos. Con lo anterior tendríamos: Pedidos[SKU] = "L02" => FILTER ( ALL ( Pedidos[SKU] ); Pedidos[SKU] = "L02" ) => {“L02”} Pedidos[SKU] = "L07" => FILTER ( ALL ( Pedidos[SKU] ); Pedidos[SKU] = "L07" ) => {“L07”} Como están en argumentos de filtros diferentes en la función CALCULATE entonces toma los dos conjuntos y hace la intersección, así: {“L02”} ∩ {“L07”} = { } por lo anterior no habría ningún elemento en común devolviendo una lista vacía, esto quiere decir que para el campo SKU no habría ningún elemento retornando una tabla vacía para el contexto de filtro. = CALCULATE ( SUM ( Pedidos[Ingresos] ) ; Pedidos[SKU]="L02"; Pedidos[SKU]="L07" )
    • 439. Nuestro objetivo sería encontrar una expresión tabular que retorne una lista con los siguientes elementos: {“L02”; “L07”}, para conseguirlo no es nada complicado con lo que ya sabemos: Otra alternativa se puede presentar con la función OR E incluso tenemos otra vertiente adicional gracias al operador IN, de hecho, vale la pena detenernos unos segundos a estudiar este operador. El Operador IN El operador IN simplifica la comprobación de varios O lógicos, o desde otra perspectiva, chequea si uno dos o más elementos están en una lista proporcionada al operador IN. = FILTER ( ALL ( Pedidos[SKU] ) ; Pedidos[SKU] = “L02” || Pedidos[SKU] = “L07” ) = FILTER ( ALL ( Pedidos[SKU] ) ; OR ( Pedidos[SKU] = “L02” ; Pedidos[SKU] = “L07” ) )
    • 440. La mejor manera de comprender el operador IN es con ejemplos, tomemos lo siguientes OR anidados. Lo podemos resumir: – Operador IN con múltiples columnas: Otra gran ventaja subyace en que el operador IN no sólo puede hacer comprobaciones de listas en una misma columna, sino que también puede hacer comprobaciones de múltiples columnas, cada una con su respectiva lista, entenderlo es mucho más sencillo con un ejemplo que describirlo en palabras, así que vamos a ello: Nota El operador IN está disponible desde la versión de noviembre del 2016 de Power BI y desde la actualización de Excel del mes de febrero del 2017, para SSAS estará disponible en futuras versiones sin duda. OR ( Pedidos[SKU] = “L01” ; OR ( Pedidos[SKU] = “L02” ; OR ( Pedidos[SKU] = “L03”; Pedidos[SKU] = “L04” ) ) ) Pedidos[SKU] IN { “L01” ; “L02”; “L03”; “L04” }
    • 441. Condiciones Booleanas con Disyunción Lógica Conociendo el operador IN podemos presentar la alternativa tres: Recordemos el planteamiento del apartado anterior: Crear una medida que al agregar a la matriz de la figura 17.10 devuelva los ingresos para el SKU igual a L02 o L07. Presentamos 3 alternativas: ▪ Con el operador de disyunción lógica (||) ▪ Con la función OR ▪ Con el operador IN ( Pedidos[SKU] ; Pedidos[País] ) IN { ( “L01”; “Colombia” ); ( “L02”; “Brasil” ) } = FILTER ( ALL ( Pedidos[SKU] ) ; Pedidos[SKU] IN { “L02” ; “L07” ) )
    • 442. Con todos los elementos que tenemos hasta este punto, ya podemos presentar la solución a la medida con cualquiera de las tres vertientes de disyunción lógica: Aquí debemos puntualizar algo bien importante e involucrar la condición booleana o el atajo o máscara como nos gusta llamarlo: ▪ Si necesitamos una medida en la cual se deba aplicar un elemento A de una columna o un elemento B una misma columna podemos utilizar la condición booleana. ▪ Si necesitamos una medida en la cual se deba aplicar un elemento A de una columna o un elemento B otra columna debemos escribir la expresión tabular explícita Lo anterior nos dejar ver que la expresión DAX a la hora del té la podíamos escribir de manera simplificada así: = CALCULATE ( [Ingresos Totales]; FILTER ( ALL ( Pedidos[SKU] ); Pedidos[SKU] IN {"L02"; "L07" } ) ) = CALCULATE ( [Ingresos Totales]; Pedidos[SKU] = "L02" || Pedidos[SKU] = "L07" )
    • 443. Pero si nos piden: Una medida que devuelva los ingresos para SKU igual a L02 o el tipo de compra igual a Devolución, sabremos que inexorablemente debemos escribir la expresión tabular para el argumento de filtro de la función CALCULATE de forma explícita. De hecho, si intentamos la forma booleana para columnas distintas. Así: La interfaz nos devolverá un error inevitable, que dice de la siguiente manera: Por lo tanto, no hay otra opción cuando es un O lógico con columnas diferentes que escribir la expresión tabular completica y 100% explicita. En este caso toca iterar en la tabla Pedidos completa dado que si dejamos sólo una columna devolverá un error. = CALCULATE ( SUM ( Pedidos[Ingresos] ) ; Pedidos[SKU]="L02" || Pedidos[Tipo Compra]="Devolución" ) La expresión contiene varias columnas, pero en una expresión True/False que se usa como expresión de filtro de tabla solo puede utilizarse una columna. = CALCULATE ( [Ingresos Totales]; FILTER ( Pedidos ; Pedidos[SKU]="L02" || Pedidos[Tipo Compra]="Devolución" ) )
    • 444. Casos de Condiciones Booleanas para CALCULATE Hagamos un sumario de los casos de condiciones booleanas. ▪ Si necesitamos aplicar un único filtro a una columna específica, ejemplo, que únicamente se tenga en cuenta el país Colombia, entonces podemos utilizar la condición booleana: o Pedidos[País]= “Colombia” ▪ Si necesitamos un O lógico podemos utilizarlo en un mismo argumento de CALCULATE de la siguiente manera: o Pedidos[País]= “Colombia” || Pedidos[País]= “Chile” o Pedidos[País]= “Colombia” || Pedidos[País]= “Chile” || Pedidos[País]= “Brasil” ▪ Si necesitamos un O lógico pero aplicado a diferentes columnas no hay condición booleana que valga, ya es necesario escribir la expresión tabular de manera explícita. Hemos visto la sintaxis de la función CALCULATE de la siguiente manera: = CALCULATE ( <Expresión Escalar>; [<Lista 1>]; [<Lista 2>]; [<Lista 3>]; … ) Pero en realidad esa es una de las 3 condiciones posibles para los argumentos de filtros, las condiciones son: ▪ [<Condición Booleana>] ▪ [<Lista>] ▪ [<Tabla>] Es de nuestro conocimiento que:
    • 445. [<Lista>]: Una lista de valores exacta en forma de expresión tabular que se desea ver en el nuevo contexto [<Condición Booleana>]: Es un atajo o máscara para una lista que va a generar un filtro una columna especifica. Condición en Forma de Tabla En los argumentos de filtros de la función CALCULATE también podemos decirle la tabla tal cual como queremos que quede. Este es el caso de la expresión: Observemos que el argumento de filtro no devuelve una sola columna sino la tabla Pedidos completa restringida para L02 y Devolución más la restricción del contexto de fila original. Ojo: con las restricciones del contexto de filtro original, esto quiere decir que si la tabla Pedidos viene con una restricción de país lo va a tener en cuenta, para aclararlo, si tomamos la casilla resaltada en la figura 17.10 (únicamente la casilla) sabremos que el contexto de filtro tendría una restricción de país con el elemento Argentina, pues bien esa restricción será tenida en cuenta = CALCULATE ( [Ingresos Totales]; FILTER ( Pedidos ; Pedidos[SKU]="L02" || Pedidos[Tipo Compra]="Devolución" ) )
    • 446. en la medida anterior, dado que si observamos el primer argumento de FILTER no hay ninguna función para ignorar el contexto, por lo tanto, lo tiene en consideración. Con la condición de tabla clara solicitudes del estilo: Crear una medida que devuelva los ingresos de alta rentabilidad, estos es la suma de los ingresos, pero solamente si los ingresos de la transacción fueron estrictamente mayores al doble del costo total. = CALCULATE( [Ingresos Totales]; FILTER ( Pedidos ; Pedidos[Ingresos]> 2* ( Pedidos[Costo de Envio] + Pedidos[Costo del Producto] + Pedidos[Costo Empaque] ) ) ) Nota También es perfectamente válido dividir por dos las columnas Pedidos[Ingresos] y dejar la suma de los costos, lo vital de la medida es observar cómo estamos devolviendo la tabla Pedidos completa en el argumento de filtro de la función CALCULATE.
    • 447. Ya tenemos las herramientas necesarias para crear la medida que devuelva el % Participación de la figura 17.3 correctamente: Nótese que los argumentos de filtros devuelven tablas, en el caso del primer argumento de filtro retorna la tabla CategoriaDeProductos “completica” dado que está encerrado en un ALL, lo mismo sucederá para la tabla SKUProductos, como se encuentra dentro de la función ALL quitará todos los filtros asociados a la tabla retornándola completa. ALL ( CategoriaDeProductos ) => Toda la tabla CategoriaDeProductos sin ningún filtro ALL ( SKUProductos ) => Toda la tabla SKUProductos Por propagación de filtros la tabla Pedidos tendrá en cuenta todos los SKU y todas las categorías de productos, sin embargo, mantendrá el filtro de categoría de descuento. = DIVIDE ( [Ingresos Totales]; CALCULATE ( [Ingresos Totales]; ALL ( CategoriaDeProductos ); ALL ( SKUProductos ) ) )
    • 448. La ilustración de la figura a continuación presenta el resultado en la matriz y la expresión DAX en la barra de fórmulas. x
    • 449. CAPÍTULO 18 Después de completar este capítulo tú sabrás: ▪ Medidas de Participación ▪ Función ALLSELECTED ▪ Porcentaje del total general Con un dominio y comprensión del lenguaje DAX avanzado; todas sus fórmulas, contextos, funcionamiento interno, etc. Podemos crear cualquier tipo de aplicación para el área del conocimiento que nos desempeñemos, llámese: financiera, contable, inventarios, servicio al cliente, ingeniería, producción, calidad, estudio del trabajo, etc. A lo que queremos llegar es como su nombre lo indica, DAX es un lenguaje para el análisis de datos, con lo que prácticamente podemos crear cualquier cosa que nos imaginemos con el conocimiento adecuado, sin embargo, para llegar a ello debemos pasar por el ABC y entre eso se encuentra las aplicaciones más sencillas y ampliamente extendidas, en otras palabras, todo lo que tiene que ver participación, razones o porcentajes En ese capítulo estudiaremos las medidas de participación para dejarlas lo más flexible posible, desde el porcentaje del total general pasando por la medida correspondiente al porcentaje del total de columnas y el porcentaje del total de filas.
    • 450. La medida de porcentaje de participación estudiada hasta este punto aún no cumple con todo el dinamismo necesario, de hecho, si agregamos una segmentación de datos en la cual agregamos la columna SKU de la tabla SKUProductos a su campo y seleccionamos los elementos: B01, B02, C02, CB01, L04, L05 y L06 obtendremos el resultado de la matriz presentada en la figura siguiente: Casilla para analizar con los 3 pasos primordiales del lenguaje DAX.
    • 451. Pero al mirar el total de archivos nos encontraremos a que la medida nuevamente a fallado por el simple hecho de que no da 100%. – 1. Identificar Filtros ▪ SKUProductos[SKU] = { “B01”; “B02”; “C02”; “CB01”; “L04”; “L05”; “L06”; “L07” } ▪ Descuentos[Categoría de Descuento] = “Special Day” – 2. Aplicar Filtros y Propagar Se aplican los elementos del campo SKU de la tabla SKUProductos y el filtro de Special Day de la tabla Descuento, por propagación de filtros la tabla Pedidos sólo queda visible para aquellas filas donde los SKU son { “B01”; “B02”; “C02”; “CB01”; “L04”; “L05”; “L06”; “L07” } y el descuento es Special Day. – 3. Ejecutar Expresión DAX Filtros = DIVIDE ( [Ingresos Totales]; CALCULATE ( [Ingresos Totales]; ALL ( CategoriaDeProductos ); ALL ( SKUProductos ) ) Para el numerador [Ingresos Totales] [Ingresos Totales] = SUM ( Pedidos[Ingresos] ) = Ingresos totales pero sólo para los SKU: “B01”; “B02”; “C02”; “CB01”; “L04”; “L05”; “L06”; “L07” y el descuento igual a Special Day.
    • 452. Para el denominador, Procedimiento Interno de CALCULATE ✓ Copia Contexto: Pedidos con filtros de SKU: “B01”, “B02”, “C02”, “CB01”, “L04”, “L05”, “L06”, “L07” y Categoría de descuento “Special Day” ✓ Evalúa cada argumento de filtro y genera lista o tabla completa: o <Tabla1> => ALL ( CategoriaDeProductos ) => Devuelve toda la tabla a la normalidad o <Tabla2> => ALL ( SKUProductos ) => Devuelve toda la tabla a la normalidad o Se debe destacar que propagación de filtros la tabla Pedidos también vuelve a la normalidad, en este caso, quita los de SKU y Categoría De Descuento ✓ Contexto de filtro actualizado o Ningún filtro aplicado a la tabla Pedidos El nuevo contexto de filtro es la tabla Pedidos actualizada donde no tendrá filtros para SKU ni para Categoría de Descuento. ✓ Ejecutar Expresión DAX (Primer argumento de CALCULATE) en el nuevo contexto de filtro: Pedidos sin filtros: [Ingresos Totales] => SUM (Pedidos[Ingresos}) ✓ Reiniciar Contexto al Original El problema radica entonces en que el denominador está removiendo todos los filtros del SKU, cuando en realidad lo que se quiere es que tenga en cuenta aquellos elementos que han sido seleccionados en la segmentación de datos originalmente. – Cómo solucionamos este inconveniente Función ALLSELECTED La función ALLSELECTED es extremadamente útil cuando queremos ejecutar cálculos utilizando selecciones de objetos visuales de segmentación de datos y objetos visuales diferentes a la matriz.
    • 453. La función ALLSELECTED retorna únicamente los valores que son visibles en el contexto de filtro original, es decir, del contexto de la matriz, dicho de otro modo: la función ALLSELECTED ignora los filtros del área de filas y columnas de la matriz y tiene en cuenta los que se utilizan para calcular el total general. – ALLSELECTED tiene tres sabores de argumentos Columna: Retorna los elementos originales seleccionados, ejemplos: ALLSELECTED ( Pedido[SKU] )devuelve los SKU originalmente seleccionados. Tabla: Ejecuta ALLSELECTED en todas las columnas de la tabla, retornando todas las filas originalmente seleccionadas, ejemplo: ALLSELECTED ( Pedidos ) Sin argumentos: También se puede utilizar la función ALLSELECTED sin argumentos de la siguiente manera: ALLSELECTED()es decir sin ningún parámetro. Lo que hace esta forma es que realiza el ALLSELECTED en todas las tablas en el modelo de datos, haciendo posible ejecutar el total general de una matriz sin filtros en filas y columnas. Una solución a la medida de % Participación podría ser: = DIVIDE ( [Ingresos Totales]; CALCULATE ( [Ingresos Totales]; ALL ( CategoriaDeProductos ); ALLSELECTED ( SKUProductos ) ) )
    • 454. Pero la medida más flexible de todas se escribe como sigue: Ya podemos apreciar la matriz con los resultados adecuados: = DIVIDE ( [Ingresos Totales]; CALCULATE ( [Ingresos Totales]; ALLSELECTED ( ) ) )
    • 455. Total de Fila o Columnas El porcentaje respecto al total general es un cálculo tan común y de una utilidad gigantesca, a pesar de ello, también tenemos otras variaciones de igual impacto, una de ellas es el porcentaje respecto al total de columnas, por ejemplo, si tenemos una matriz con el campo SKU de la tabla SKUProductos en el área filas y el campo País de la tabla Pedidos en el área de columnas, así como la ilustrada en la siguiente figura: Nota Toma la expresión: VAR Med = [Medida para el Cálculo de Participación] RETURN DIVIDE ( Med ; CALCULATE ( Med ; ALLSELECTED() ) Como dada para crear cualquier medida que necesites de participación de cálculo de porcentaje del total general.
    • 456. El objetivo es presentar cada casilla como un porcentaje respecto al total del país o columna en consideración. Si pensamos por un momento en términos de la casilla que esta resaltada en la figura anterior sabemos que lo se quiere alcanzar es dividir la medida [Ingresos Totales] sobre el total siempre y cuando sea únicamente para el país argentina, el numerador es sencillo [Ingresos Totales] = SUM ( Pedidos[Ingresos} ) El denominador por otra parte conocemos de antemano que debe tener una estructura algo así: CALCULATE ( [Ingresos Totales] ; ______________________ ) Lo que queremos conseguir en el argumento subrayado es una lista que retorne: “Argentina” para el caso particular de la casilla que estamos tomando como punto de referencia de la figura anterior, sin embargo, no podemos perder de vista que el país variará dependiendo de la casilla en la que nos encontremos ubicados en la matriz. En este caso nos basta con crear una lista, para ello podríamos pensar en: ALL ( Pedidos[País] ) pero cabe recordar que ALL ignora el contexto de filtro por lo que dicha expresión devolvería el lista de todos los países, no es una opción. Si rememoramos una nota del capítulo 15 cuando discutíamos las dos caras de la función ALL recordaremos que hablamos de la función VALUES, la función VALUES es una función que retorna la lista de valores únicos teniendo en cuenta el contexto: VALUES ( Pedidos[País] ) Esta fórmula para casilla que estamos tomando de base (Figura 18.2) devolvería lo que necesitamos: {“Argentina”}. Por lo tanto, la medida para el porcentaje del total de columnas sería como sigue:
    • 457. La matriz: = DIVIDE ( [Ingresos Totales]; CALCULATE ( [Ingresos Totales]; ALLSELECTED () ; VALUES ( Pedidos[País] ) ) )
    • 458. Si en su lugar se desea el porcentaje respecto al total de fila, la solución es similar, pero en lugar de indicar el campo País de la tabla Pedidos en la función VALUES debemos indicar el campo SKU de la tabla SKUProductos, así: = DIVIDE ( [Ingresos Totales]; CALCULATE ( [Ingresos Totales]; ALLSELECTED () ; VALUES ( SKUProductos[SKU] ) ) ) Nota Estas medidas se pueden realizar de manera implícita utilizando las características de interfaz de Power BI, no obstante, aparte de ser unas buenas medidas de estudio debemos recordar que la minimización de medidas implícitas es una de las mejores prácticas en la construcción de un modelo de datos.
    • 459. CAPÍTULO 19 Después de completar este capítulo tú sabrás: ▪ Construcción de Tablas de Calendario ▪ Qué es una Medida y su importancia ▪ Qué es una Columna Calculada y su importancia ▪ Qué es una Tabla Calculada y su importancia ▪ Variables en el lenguaje DAX Las aplicaciones y cálculos que involucran fechas y distorsiones en el tiempo son parte del que hacer “matutino” de las personas que trabajan con datos, por esto en este capítulo queremos construir y analizar de forma generosa las más utilizadas y destilar su esencia, pero para que se una crónica en toda regla primero debemos desnudar cada parte de la temática de tablas de calendario, estas flanquean las funciones de inteligencia de tiempo o time Intelligence (por el termino en inglés) a quienes se les atañe toda la facilidad. En ese capítulo encontraras las expresiones DAX para cálculos de: PY, PM, PQ, PYTD, PMTD, PQTD, MAT y muchas más. Antes de dar una definición de qué es una tabla de calendario es necesario repasar los conceptos de: Tablas de búsqueda y una tabla transaccional. Puedes repasar estos conceptos en el capítulo 12, aquí te dejamos unas definiciones alternas para consolidar estos conceptos importantes.
    • 460. Qué es una Tabla de Calendario Desglosemos la definición por partes para tratar de dejarlo lo más claro posible. Tabla de Búsqueda Una tabla de búsqueda es aquella que contiene campos que son utilizados para restringir y agrupar registros en tablas transaccionales. Sí, sé que eso se leyó como si se tratará del lenguaje alíen del film arrival (Complejo y rozando los límites de lo incomprensible) ¿Está familiarizado con BUSCARV? - Mejor que mejor Porque una tabla de búsqueda sería aquella que ponemos en el argumento matriz_buscar_en mientras que la tabla donde estamos creando la función BUSCARV sería la tabla transaccional. Para ponerlo en términos coloquiales para lo que necesitamos: Una Tabla de Búsqueda: Es una tabla en la cual por lo menos uno de sus campos tiene elementos que no se repiten (cada ítem o elementos es único identificando de forma univoca cada registro de la tabla). Tabla de Calendario Una tabla de calendario es un tipo especial de tabla de búsqueda que tiene como finalidad poder categorizar elementos en el campo fecha en diversos grupos de acuerdo con parámetros en esa fecha.
    • 461. ▪ Una tabla de calendario es un tipo especial de tabla de búsqueda: Nos dice que es una tabla de búsqueda, esto quiere decir que debe existir una columna (campo) cuyos elementos no se repiten (valores únicos) Esta columna en la tabla de calendario es una que contiene todas las fechas de manera consecutiva entre dos fechas extremas – Ejemplo: si la tabla de calendario va de 1/1/2016 al 31/12/2016, entonces una y cada una de las fechas entre esta dos últimas debe estar una única vez. Nótese como van apareciendo de manera consecutiva y una única vez las diversas fechas sin excepción (la imagen anterior muestra un fragmento de la columna, la tabla original llega hasta el 31/12/2016)
    • 462. También la definición indica que es: «especial». Ello es así porque está pensado para el trabajo con fechas y habilita un conjunto de funciones especiales llamadas time Intelligence o de inteligencia de tiempo. La definición continua con: ▪ Tiene como finalidad poder categorizar elementos en el campo fecha en diversos grupos de acuerdo con parámetros en esa fecha: Quiere decir que toma características comunes en el campo fecha y asigna una categoría que posteriormente podemos usar en el reporte de tabla dinámica para ver un resumen de los datos. – Ejemplo: De la fecha (columna con fecha consecutiva) podemos extraer a que mes pertenece esa fecha Nota A esa columna que contiene las fechas consecutivas de manera única generalmente se le denomina: Fecha o Fechas (En inglés la llaman también Date o DateKey). La definición dice: «Categorizar elementos por el campo fecha» Ese campo es precisamente el campo con elementos únicos (No repetidos)
    • 463. De la tabla y las columnas creadas se aprecia claramente que el campo Mes Nombre les ha asignado a todas las fechas del primer mes del año la etiqueta enero, para el segundo mes febrero y así sucesivamente. Como intuimos directamente dicha columna (Mes Nombre) la podemos utilizar posteriormente en un reporte de tabla dinámica para ver los resúmenes de los datos en los distintos meses. Otro par de columnas que se ilustran en la imagen, son: – Mes Número: En lugar de asignar el nombre (enero) asigna el número de mes 1, y así para cada mes (Columna especialmente útil para ordenar) – Trimestre: Otra categoría que nos permite agrupar las fechas con otra característica, en este caso a que trimestre del año pertenece ¿Cuáles son las columnas que debe tener una tabla de calendario? Aquí no hay una regla de oro, dado que las columnas las creas a tu medida y necesidad, pero te recomendamos como mínimo las siguientes: Llamémoslas las Columnas Primordiales para tabla de calendario: – Fecha: Ok. Este si es obligatorio. Es la columna con valores únicos que hemos venido discutiendo – Año: Si tus datos pasan la frontera de un año, entonces es indispensable añadir esta categoría para los años Nota, Cada una de estas agrupaciones se ve en su respectiva columna en la figura 19.2.
    • 464. – Mes Número: Columna que indica si la fecha pertenece al primer mes del año, al segundo, tercero, etc. Mediante un número entero entre el 1 al 12 – Mes Nombre: Indica a que mes pertenece la fecha en la fila (enero, febrero, marzo, …) – Trimestre: Indica a que trimestre del año pertenece la fecha actual – Día de la Semana Nombre: Informa a cuál de los días de la semana pertenece la fecha en la fila (Lunes, Martes, Miércoles,…) – Día de la Semana Número: Columna que indica si la fecha pertenece al primer día de la semana, al segundo, tercero, etc. Mediante un número entero que va del 1 al 7 (También útil para ordenar) ¿Son esas columnas las únicas para una tabla de calendario? No. Creamos las columnas a nuestra necesidad, sí necesitas una columna que señale los bimestres, cuatrimestres, semestre lo puedes hacer o incluso agrupar períodos más extensos como en lustros, décadas, etc. También es válido. En resumen, cualquier sistema de tiempo que necesites para segmentar tus datos en el reporte de tabla dinámica. Características y Propiedades de una Tabla de Calendario Ya entendemos y conocemos qué es una tabla de calendario. Igual de importante es saber esas características y propiedades que debe tener para que sea una tabla de calendario con todas las de la ley. Nota La clave es que dichas categorías se basan en la columna de fechas
    • 465. ▪ Contiene una columna con nombre fecha o similar la cual contiene todas las fechas de manera consecutiva entre dos extremos (nada de saltos) ▪ Las fechas extremas siempre deben arrancar en su cota inferior en el primero de enero del año asociado a la menor fecha de tablas del modelo de datos, y en su cota superior en el treinta y uno de diciembre del año final en el modelo de datos. ▪ El mes de febrero tiene 28 días o 29 días si es bisiesto ▪ Los meses enero, marzo, mayo, julio, agosto, octubre y diciembre tienen 31 días; los meses restantes tienen 30 días a excepción de febrero ▪ Contiene categorías para agrupar fechas según un criterio o Años o Meses o Trimestres o Etc. ▪ Marcar la tabla como de calendario si quieres acceder sin ningún tipo de anomalía al paquete de funciones time Intelligence o de inteligencia de tiempo ▪ La tabla de calendario tiene sentido de verdad si está relacionada con por lo menos una tabla transaccional (también llamada base o tabla matriz) Nota La tabla de calendario (estándar), cumple con una y cada una de las condiciones del calendario gregoriano o ese calendario que tenemos «colgado en la pared» o el del celular. ¡Importante!: resaltar que las tablas de calendario de las cuales estamos hablando son tablas de calendario estándar.
    • 466. Métodos de Construcción de Tablas de Calendario So far, so good .. Quizá ya hayas esbozado en tu mente una o varias formas de poder crear una tabla de calendario estándar, pues comprendiendo qué es y cuáles son propiedades no es difícil poner sobre la mesa métodos para su construcción. Listemos algunas alternativas para construir una tabla de calendario: ▪ Construcción en Excel con fórmulas clásicas ▪ Construcción en Power Pivot con fórmulas DAX ▪ Construcción en Power Pivot automáticamente ▪ Construcción en Power BI con CALENDAR y CALENDARAUTO ▪ Construcción con Power Query de Excel o Power BI con elementos de la interfaz ▪ Construcción con Power Query y lenguaje M ▪ Obtención desde Azure Marketplace ▪ Obtención desde BD SQL Nota En el capítulo 7: Inteligencia de Negocios con Fechas puedes estudiar un método de construcción de tabla de calendario utilizando la interfaz del editor de Power Query. Nota La construcción de tablas de calendario con la interfaz de celdas de Excel es bastante intuitiva si tienes conocimiento básico/intermedio de las fórmulas de Excel. Si deseas conocer su desarrollo y ejecución de time Intelligence en Excel te recomendamos el libro: EL ADN de Power Pivot.
    • 467. Construcción de Tabla de Calendario con CALENDAR y CALENDARAUTO Desde la interfaz analítica podemos crear tablas de calendario gracias a el tipo de cálculo tablas calculadas. – Construcción con la función CALENDAR La función CALENDAR es una función del lenguaje DAX que retorna una columna con nombre “Date” que contiene un conjunto de fechas contiguas, el rango de fechas inicia desde la fecha indicada en su primer argumento hasta la fecha decretada en su segundo argumento, ambos extremos se incluyen en la columna de fechas. Estos son los dos argumentos de la función CALENDAR ▪ Start Date: Cualquier expresión DAX que retorne un escalar de tipo fecha o de fecha que servirá de fecha inicial para la columna ▪ End Date: Cualquier expresión DAX que retorne un escalar de tipo fecha o de fecha y hora que servirá de fecha final para la columna La utilización de la función CALENDAR estriba en identificar la menor y mayor fecha en nuestro modelo de datos. ¿Cómo identificamos estas fechas? En nuestro caso tenemos únicamente la tabla Pedidos y ella tiene dos columnas de fechas: Fecha de Envió y Fecha de Llegada, intuitivamente sabremos que la fecha más pequeña estará en la fecha de envió y la fecha más grande en la columna fecha de llegada. Por lo que las siguientes expresiones retornan lo deseado: Nota Para identificar la fecha más pequeña en el modelo de datos, así como la mayor debemos tomar todas las columnas de fechas de las tablas transaccionales y extraerlas.
    • 468. ▪ MIN ( Pedidos[Fecha de Envio] ) ▪ MAX ( Pedidos[Fecha de Llegada] ) Las funciones señaladas son válidas, dicho sea de paso, presentan inconvenientes con la función CALENDAR, para un funcionamiento como fina pieza de relojería tenemos que recurrir a la versión de la función MIN para fechas que es la función FIRSTDATE y la versión de la función MAX para fechas que es la función LASTDATE. ▪ FIRSTDATE ( Pedidos[Fecha de Envio] ) ▪ LASTDATE ( Pedidos[Fecha de Llegada] ) Cuando implementamos las soluciones anteriores bien sean en medidas o tablas calculadas encontraremos las siguientes respuestas: Nota, Los cálculos de la figura anterior se crearon en medidas, así FIRSTDATE ( Pedidos[Fecha de Envio] ) y LASTDATE ( Pedidos[Fecha de Llegada] ) Ellas fueron añadidas a una tarjeta de múltiples filas. Para profundizar en este objeto visual véase el Capítulo 23: Gráficos de Seguimiento.
    • 469. La función DATE retorna una fecha específica en un formato de fecha y hora detallando de manera explícita el año, mes y día cada uno en de sus argumentos en ese orden, esta es la sintaxis” = DATE (<Año>;<Mes>;<Día>) ▪ Año: Un número entero que representa el año. El rango de valores numéricos que se pueden utilizar en este argumento va desde 1900 hasta el año 9999. ▪ Mes: Un número entero que representa el mes del año, donde el número 1 corresponde con enero, el 2 con febrero y así sucesivamente. ▪ Día: Un número entero que representa el día del mes, donde el 1 representa el primer día del mes, el 2 el segundo día del mes y así sucesivamente hasta el último día del mes. ¡Advertencia! Utilizar la expresión DAX: = CALENDAR ( FIRSTDATE ( Pedidos[Fecha de Envio] ); LASTDATE ( Pedidos[Fecha de Llegada] ) ) No es la más adecuado para crear la columna de fechas de una tabla de calendario, el motivo es que la primera fecha no siempre inicia en el 1de enero, de hecho, para nuestro escenario empieza el 14 de diciembre, la misma lógica aplica para la fecha final que termina el 20 de diciembre en lugar del 31 de diciembre
    • 470. La expresión DAX ideal para la tabla calculada en nuestro caso sería: Después de la creación de la columna es buena práctica renombrarla con el nombre de fechas, a continuación, generaremos las demás columnas con los sistemas de tiempo necesarios para nosotros con columnas calculadas. Dejamos las fórmulas para las columnas más utilizadas: ▪ Año: = YEAR(Calendario[Fechas]) ▪ Semestre: =IF(MONTH(Calendario[Fechas])<=6;"Semestre 1"; "Semestre 2") ▪ Cuatrimestre: = "Ctr. 1" & ROUNDUP(DIVIDE(MONTH(Calendario[Fechas]);4);0) ▪ Trimestre: = FORMAT(Calendario[Fechas];"q") ▪ Mes Número: =MONTH(Calendario[Fechas]) ▪ Mes Nombre: =FORMAT(Calendario[Fechas];"mmmm") ▪ DS Número: =WEEKDAY(Calendario[Fechas];2) ▪ DS Nombre: = FORMAT(Calendario[Fechas];"dddd") ▪ Día del Mes: = DAY(Calendario[Fechas]) Un aspecto de las columnas Mes Nombre y DS Nombre son los nombres propios para sus elementos, en este caso a nosotros nos gusta que la primera letra vaya en mayúscula, ejemplo en lugar de: enero, febrero, …, diciembre; preferimos: Enero, Febrero, …, Diciembre Calendario = CALENDAR ( DATE ( YEAR ( FIRSTDATE ( Pedidos[Fecha de Envio] ) ); 1; 1 ); DATE ( YEAR ( LASTDATE ( Pedidos[Fecha de Llegada] ) ); 12; 31 ) )
    • 471. La fórmula DAX para la primera la columna Mes Nombre con el primer carácter en mayúsculas sería: La fórmula para la columna DS Nombre sería prácticamente idéntica: = VAR MesNombre = FORMAT ( Calendario[Fechas]; "mmmm" ) RETURN CONCATENATE ( UPPER ( MID ( MesNombre; 1; 1 ) ); MID ( MesNombre; 2; LEN ( MesNombre ) ) ) DS Nombre = VAR DSNombre = FORMAT ( Calendario[Fechas]; "dddd" ) RETURN CONCATENATE ( UPPER ( MID ( DSNombre; 1; 1 ) ); MID ( DSNombre; 2; LEN ( DSNombre ) ) )
    • 472. Una particularidad que deriva al hacer uso de la columna Fechas de la tabla de Calendario radica en que al momento de digitar: Fechas[Calendario] se despliega una lista desplegable con diversos periodos de tiempo. Podríamos estar tentados a valernos de estas vías rápidas, dicho sea de paso, no son originarias del lenguaje DAX técnicamente hablando, son en realidad atajos del lenguaje MDX. Como intuye nuestro amigo y lector no recomendamos los atajos MDX. ¿Por qué? Posteriormente debemos indicar por medio de la interfaz que la tabla creada es una tabla de calendario, al hacerlo nos mostrará un error en las columnas creadas con los atajos. Nota Nosotros utilizamos las letras DS para abreviar las palabras Día de la Semana para que no quede un nombre tan extenso, claro está que no es camisa de fuerza. Atajos derivados de MDX.
    • 473. Con las consideraciones necesarias y 100% cristalinas: – Construcción con la función CALENDARAUTO La función CALENDARAUTO retorna una columna con nombre “Date” que contiene un conjunto de fechas contiguas, esta función no tiene argumentos por lo que para la menor fecha tomará la fecha más pequeña que detecte en todo el modelo y de manera similar lo hará para la mayor fecha. La expresión para la tabla calculada sería tan sencilla como: A parte de allí crear las columnas calculadas como se hizo con CALENDAR Entonces ¿Por qué molestarse en utilizar la función CALENDAR y todas las funciones anidadas que de allí se desprende? Calendario = CALENDARAUTO ()
    • 474. Marcar como Tabla de Calendario Para que el modelo de datos entienda que es una tabla de calendario y la jerarquía de fechas funcionen adecuadamente con el conjunto de fórmulas de inteligencia de tiempo debemos decírselo de forma explícita. Para indicarlo seleccionamos la tabla de calendario, vamos a la pestaña Modelado y ubicamos el grupo Calendarios. ¡Advertencia! Dependiendo de cómo internamente la función CALENDARAUTO tome las fechas de inicio y final puede en ciertas ocasiones presentar errores de referencia circular, son problemas de baja frecuencia, pero tenemos la alternativa con CALENDAR por si llega a presentar. En Power Pivot para Excel no contamos con la función CALENDAR.
    • 475. Allí desplegamos las opciones de Marcar como tabla de fechas y pulsamos clic en la primera opción con el mismo nombre, con esta acción se muestra el cuadro de diálogo que se ilustra en la figura a continuación: En la lista del cuadro de diálogo vamos a seleccionar la columna con la clave primaria, dicho de otro modo, la columna que creamos mediante el tipo de cálculo la tabla calculada y la función CALENDAR o CALEDARAUTO. En el panel de campos veremos que icono en el extremo izquierdo de la columna fecha cambia. x
    • 476. Construcción de Tabla de Calendario con GENERATE y ROW Una alternativa para la creación de una tabla de calendario de un solo golpe, nos referimos, a crear todas las columnas en el tipo de cálculo tabla sin necesidad de ulteriormente agregar columnas calculadas, es con la ayuda de la función GENERATE – Función GENERATE La función GENERATE evalúa el segundo argumento para cada fila en el primer argumento, retornando el producto cartesiano entre cada fila del primer argumento y la fila correspondiente generada en el segundo argumento. Estos son los dos argumentos de la función GENERATE ▪ Table 1: Cualquier nombre de tabla o una expresión DAX que retorne una taba como resultado. ▪ Table 2: Puede ser algo tan sencillo como un nombre de tabla o una expresión DAX de tipo tabular. – Función ROW La función ROW devuelve una tabla con una única columna. ROW (<Nombre Columna 1>; <Expresión> [<Nombre Columna 2>; <Expresión>] …) Si nos valemos de la función GENEARTE y ROW podemos crear todas las variables que necesitemos en el contexto de fila antes de la expresión ROW. Nota La función GENEARTE es una función de iteración.
    • 477. Calendario= VAR CalendarioBase = CALENDAR ( DATE ( YEAR ( FIRSTDATE ( Pedidos[Fecha de Envio] ) ); 1; 1 ); DATE ( YEAR ( LASTDATE ( Pedidos[Fecha de Llegada] ) ); 12; 31 ) ) RETURN GENERATE ( CalendarioBase; VAR FechaBase = [Date] VAR A = YEAR ( FechaBase ) VAR MesNumero = MONTH ( FechaBase ) VAR MesNombre = FORMAT ( FechaBase; "mmmm" ) VAR Trimestre = FORMAT ( FechaBase; "q" ) RETURN ROW ( "Fecha"; FechaBase; "Año"; A; "Mes Nombre"; MesNombre; "Mes Número"; MesNumero; "Trimestre"; Trimestre ) )
    • 478. Interacción de Tabla de Calendario con las demás Tablas Para que el modelo de datos entienda que es una tabla de calendario y la jerarquía de fechas funcionen adecuadamente con el conjunto de fórmulas de inteligencia de tiempo debemos decírselo de forma explícita. La tabla de calendario se debe relacionar con las tablas transaccionales en el modelo de datos, sabiendo que una tabla de calendario es una tabla de búsqueda no hay mayor misterio en ese punto. En última instancia una tabla de calendario es una tabla de búsqueda, con lo cual los filtros de dicha tabla se propagan a la tabla o tablas transaccionales. Nota En un mismo modelo de datos podemos tener más de una tabla de calendario cada uno con un propósito.
    • 479. Orden Cronológico para Meses Si creamos una matriz con el campo Mes Nombre de la tabla de Calendario y en el área de filas la medida Ingresos Totales en el área de valores, nos podremos percatar que los nombres de los meses siguen un orden alfabético. Evidentemente no es el orden natural y cronológico al que estamos acostumbrados, sin embargo, su solución es muy sencilla; para lograrlo vamos a la vista de datos, seleccionaos la tabla de Calendario y luego la columna Mes Nombre, posteriormente vamos a la pestaña modelado y en el grupo ordenar desplegamos las opciones de ordenar por columna, con ello aparecerán todas las columnas en la tabla de calendario. Aquí seleccionamos Mes Número ya que asocia el número 1 a enero, el número 2 a febrero, el número 3 a marzo y así sucesivamente hasta el número 12 para el mes diciembre
    • 480. La matriz ahora queda organizada x Nota El orden por columna no solo aplica para los meses, también debemos ejecutar el procedimiento para la columna DS Nombre. En otros aspectos tal vez necesitemos ordenar la columna por el número de habitantes u otras variables, este mismo método será el apropiado para alcanzar dicho objetivo. x Campos Mes Nombre ordenado cronológicamente.
    • 481. Extensión de Tablas de Calendario Hemos visto que utilizamos los campos de la tabla de calendario para segmentar en las tablas transaccionales, empero, no todas las columnas en una tabla de calendario tienen dicho fin. En una tabla de calendario tenemos dos tipos de columnas o campos: ▪ Columnas de Segmentación ▪ Columnas Técnicas – Columnas de Segmentación Las más sencillas de entender son las columnas de segmentación, debido a que simplemente son aquellos campos que utilizamos para agrupar los datos, y añadir a algunas de las áreas de colocación a necesidad, ejemplo: Año, Mes, Trimestre, etc. Las columnas de segmentación son visibles para el usuario, pues como se menciona hace una nimiedad dichas columnas (campos) son lo que arrastramos a algunas de las áreas de colocación para crear la matriz u objeto visual, en el caso de Power Pivot para Excel en una tabla dinámica. – Columnas Técnicas Las columnas técnicas pueden ser pensadas como columnas auxiliares y cuyo objetivo primo es identificar y/o manipular partes o subconjuntos de la tabla de calendario para así llevar a buen término un cálculo (que implican fechas) deseado. Nota, Las columnas Mes Número y DS Número también son columnas de segmentación, esto es así porque ellas también sirven para agrupar los datos demás de ser auxiliares.
    • 482. Por ejemplo: Para crear medidas con DAX en algunos casos es necesario crear la combinación concatenada (Años, Semestre y Mes) de manera única independiente de una fecha en singular El campo AñoSemestresMesSerie es número que sirve para hacer cálculos internos y crear medidas más no para utilizarla en un área de colocación y ver análisis a partir de ella directamente. Un caso práctico para la columna AñoSemestresMesSerie es para la creación de la medida Pronóstico Media Móvil Simple (una de las múltiples alternativas). La fórmula DAX para la columna AñoSemestresMesSerie es sencilla: Nota Las columnas técnicas también son vitales para el funcionamiento del modelo de datos. AñoSemestresMesSerie = VALUE ( Calendario[Año] & RIGHT ( Calendario[Semestre]; 1 ) & Calendario[Mes Número] ) Nota No confundas la función VALUES con la función VALUE, la primera es una función tabular que retorna la lista de valores únicos teniendo en cuenta el contexto de filtro, mientras que la segunda (VALUE sin la S al final) es una función de conversión de tipo escalar la cual toma un valor de tipo texto que representa un número y lo convierte a valor de tipo numérico.
    • 483. Antes de terminar con columnas técnicas, es válido señalar que es una buena práctica ocultar dichas columnas del panel de campos. ¿Cómo lo hacemos? En la vista de datos seleccionamos la columna AñoSemestresMesSerie de la tabla de Calendario y pulsamos clic derecho, en el menú desplegable que aparece ubicamos la opción ocultar en la vista de informe. En consecuencia, cuando estemos trabajando en la vista de informe de Power BI y despleguemos en el panel de campos las columnas de la tabla de calendario, el campo AñoSemestresMesSerie no se mostrará. Igualmente, si aplicamos el procedimiento de ocultar en la vista de informe, pero en Power Pivot para Excel, dicha columna no será visible para arrastrar y soltar en las áreas de colocación de una tabla dinámica.
    • 484. Días No Laborales con Tablas de Calendario (Sábados, Domingos y Festivos) En ciertas métricas nos demandarán presentar un cálculo que tenga en cuenta los días laborales de forma directa o indirecta. Los días no laborales son extremadamente versátiles de país a país y más aún de empresa en empresa. ¿Por qué? Por el simple hecho de que en una compañía A los sábados pueden ser considerados días laborales, mientras que para una compañía B si se sean laborales, para complicarlo un poquito más, puede que dentro de una misma compañía para los empleados de oficina los sábados no sean días laborales, pero para otras áreas si tengan que trabajar, y si, lo queremos llevar al mayor grado de complejidad puede variar de empelado a empleado dentro de la misma empresa ¿Es posible? Si, puesto que un empleado puede tener ciertos días incapacidad, permisos o sus días de vacaciones. Por lo anterior no existe una fórmula estándar o una tabla estándar para días laborales, más bien un factor común que podemos extrapolar. Columna Días Laborales Para la construcción de una columna que nos diga si una fecha en la tabla de calendario corresponde a un día laboral necesitamos una tabla que liste todas las fechas que son festividades en nuestro país y aquellas que no son laborales por algún motivo entre semana dentro de la compañía, un ejemplo puede ser: el aniversario de la empresa.
    • 485. Por ejemplo, la ilustración siguiente muestra la tabla DíasFestivos donde se especifican todas las festividades para el país Colombia en el año 2015. La columna Días Festivos de la tabla DíasFestivos la tenemos que relacionar con la columna Fecha de la tabla de Calendario. Nota En nuestro modelo de datos podemos tener varias tablas de calendario, en dicho caso recomendamos relacionarlas con todas las tablas, si bien no es la alternativa de optimización de recursos si es una buena idea para no encontrarnos con dolores de cabezas si creamos muchas medidas que utilicen esta columna en una o varias tablas de calendario.
    • 486. Al relacionar las tablas observaremos que es uno a uno. La elaboración de la columna calculada en la tabla Calendario la podemos ejecutar con la siguiente fórmula. Día Laboral = IF ( OR ( Calendario[DS Número] = 6 || Calendario[DS Número] = 7; RELATED ( 'DíasFestivos'[Días Festivos] ) = Calendario[Fechas] ); FALSE (); TRUE () )
    • 487. Si no contamos con la información de días feriados una alternativa como la siguiente expresión DAX puede ser plausible. Los beneficios de las tablas de calendario incluyen la creación y segmentación en sistemas de tiempo deseados (Semanas, Meses, …, Año, … Decenios, siglos …); ordenación personalizada, manipulación de varias tablas transaccionales, perite hacer tareas hasta 100 veces más rápido, reportes más adecuados y dinámicos disminuyendo errores por factor humano, etc. Pero hay que destacar que las tablas de calendario habilitan un conjunto de funciones para manipular fechas, estas son las funciones de inteligencia de tiempo o como se conoce en ingles las funciones Time Intelligence. Acumulados: Total a la fecha (YTD, MTD y QTD) Para el grueso de las personas que se dedican en menor o mayor medida al análisis de datos la palabra acumulado habla por sí sola, no obstante, para no dejar cabos sueltos vamos a definir Día Laboral = IF ( Calendario[DS Número] = 6 || Calendario[DS Número] = 7; FALSE (); TRUE () ) Nota,La recomendación es contar con la tabla de días festivos.
    • 488. el acumulado como la agregación desde el principio de un periodo de tiempo hasta el periodo actual, ejemplo: la suma de los ingresos desde el principio del año hasta el mes actual en análisis, en concreto, tomemos la matriz de la siguiente figura: Si posicionamos nuestra vista en la pequeña “casilla” en blanco resaltada en la imagen, el acumulado para el año sería hacer la suma de los ingresos desde enero hasta mayo, es decir, la agregación aditiva de: enero, febrero, marzo, abril y mayo; esto dependiendo de la casilla que estemos analizando puesto que es el acumulado desde el principio del año al mes actual. ¡Ojo! Desde el principio del año actual, en otras palabras, para la casilla en estudio dese enero del 2000. Sigamos los tres pasos primordiales en DAX para la casilla correspondiente a mayo y entrever como sería la expresión DAX. Elabora la siguiente matriz llevando los campos: Año, Mes Nombre y Fechas de la tabla de Calendario al área de filas y en el área de valores arrastrar la medida Ingresos Totales. En la jerarquía de fechas dejar visible Año y Mes Nombre.
    • 489. – 1. Identificar Filtros ▪ Calendario[Año] = 2000 ▪ Calendario[Mes Nombre] = “Mayo” – 2. Aplicar Filtros y Propagar Los filtros son aplicados en la tabla de Calendario, por lo tanto, queda restringida para el año 2000 y el mes de mayo única y exclusivamente. Por propagación de filtros entre las columnas fecha de la tabla de Calendario y fecha de envió de la tabla Pedidos, esta última también quedará restringida sólo para aquellas fechas que correspondan a 2000 y el mes de mayo. – 3. Ejecutar Expresión DAX CALCULATE ( [Ingresos Totales] ; ___________________________________ ) ¿Entiendes el porqué del CALCULATE? Existen varias formas de lograr este objetivo que se nos pueden venir a la mente de ipso facto, una variante con la condición de tabla de CALCULATE y otra con la condición de lista, vamos a desmenuzar la opción con una lista. ¡Advertencia! Aquí asumimos que has estudiado e interiorizado el Capítulo 17: La Crema y Nata de las Funciones, CALCULATE. Si no lo has estudiado es urgente que tomes una pausa y te aventures a dominarlo antes de continuar, si bien puedes entender este capítulo sin ello, lo mejor es con CALCULATE en la manga.
    • 490. La idea es generar una lista con todas las fechas desde el 1/1/2000 hasta el 31/5/2000. El asunto sería ¿Cómo?, la verdad es que tenemos una función de inteligencia de tiempo que ejecuta esa tarea precisamente. – Función DATESYTD La función DATESYTD retorna una columna que contiene las fechas individuales (día a día) desde el principio del año hasta la última fecha en el contexto de filtro actual. Estos son los dos argumentos de la función DATESYTD: ▪ Dates: Columna de fechas de la tabla de Calendario ▪ Year End Date: Si nuestro final de año no es el 31 de diciembre, en este argumento podemos indicar cuál es mediante una cadena de caracteres. Gráficamente que queremos conseguir: Nota El 99% de las funciones de inteligencia de tiempo cuenta con un factor común en sus argumentos: el argumento de Fechas, este será siempre la columna de fechas de la tabla de calendario ya que todas ellas aplican el contexto de filtro mediante este campo. 1/5/2017 . . . 31/5/2000 1/1/2000 . . . 31/1/2000 . . . 1/5/2000 . . . 31/5/2000 Lista de la columna fechas generada por la matriz, contexto de filtro original Lista nueva generada por DATESYTD e ideal para utilizar en argumento de filtro de CALCULATE
    • 491. Con lo anterior claro ya podemos crear la medida del acumulado desde el principio del año hasta la fecha actual. Arrastremos la medida YTD Ingresos a la matriz de la figura 19.26 y obtendremos: La casilla resaltada representa la suma de los valores: 13.508,96 + 17.592.04 + 18.328,51 + 14.726,52 + 13.507,17. YTD Ingresos = CALCULATE ( [Ingresos Totales] ; DATESYTD ( Calendario[Fechas] ) ) Nota Utilizamos las siglas en inglés YTD por Year To Date que lo podemos traducir aproximadamente como fechas desde el principio del año a la fecha.
    • 492. Hay que enmarcar que la medida corresponde al acumulado desde el principio del año hasta la fecha actual y no el acumulado desde el principio del año hasta el mes actual, esto lo que quiere decir es que si llevamos la jerarquía de la matriz hasta nivel de días encontraremos que los valores son diferentes. – El Segundo Argumento de DATESYTD El segundo argumento de DATESYTD es opcional y es una cadena de caracteres que indica el final del año. El valor por defecto es 31 de diciembre. YTD acumula desde la primera fecha del año y siempre desde la primera fecha del año hasta la fecha actual.
    • 493. Por ejemplo, podemos crear una medida que realiza el acumulado de los ingresos para el año fiscal, esto es que el principio del año se empieza a contar desde 30 de junio, he aquí la expresión DAX. También podemos utilizar esta otra versión: Dependiendo de la configuración regional podemos tener el formato MM/DD o DD/MMM. Anteriormente el DAX Engine quería que se especificará como la configuración local o arrojaría un error, sin embargo, la versión actual de Power BI acepta cualquiera de las dos maneras independiente de la configuración regional. La implementación del segundo argumento de DATESYTD es habitual para el año fiscal, el cual coincide con la fecha final del mes, por lo tanto, no hay ningún inconveniente; a pesar de ello, si llegamos a necesitar una final de año en los 12 primeros días del mes nos encontraremos con casos ambiguos, nos explicamos, "04/07": Corresponde a 4 de julio o 7 de abril. YTD Ingresos Fiscal = CALCULATE ( [Ingresos Totales] ; DATESYTD ( Calendario[Fechas] ; "06/30" ) ) YTD Ingresos Fiscal = CALCULATE ( [Ingresos Totales] ; DATESYTD ( Calendario[Fechas] ; "30/06" ) )
    • 494. Una manera de evitar este desliz es utilizando el formato YYYY-MM-DD, la porción del formato YYYY será ignorada por la función DATESYTD y TOTALYTD que veremos más adelante, sin embargo, será completamente claro que lo siguiente al año será el mes y luego el día. Recordemos, no es que el final del año vaya a ser siempre el 30 de junio del 2018 porque el año será ignorado, así el final del año será el 30 de junio del año dependiendo del contexto. – Total Acumulado desde el Principio del Trimestre Hasta la Fecha (QTD) La primera variante de acumulado se presenta si queremos desde el principio del trimestre hasta la fecha actual. Para el QTD llevemos el campo Trimestre de la tabla de Calendario y mostremos los niveles de jerarquía: Años, Trimestre y Mes Nombre. YTD Ingresos Fiscal = CALCULATE ( [Ingresos Totales] ; DATESYTD ( Calendario[Fechas] ; "2018-06-30" ) ) ¡Advertencia! En Power Pivot para Excel 2016, 2013 y 2010 se debe respetar el formato de la configuración local.
    • 495. Como se observa en la matriz ya no es el agregado desde el primer mes del año, en su lugar es desde el primer mes del trimestre. En suma, la función DATESQTD hace la tarea de la lista de fechas desde el principio del trimestre hasta la fecha actual para ser utilizada en CALCULATE. La función QTD sólo tiene un argumento y nada más, no existen argumentos opcionales ni de ninguna otra clase. QTD Ingresos = CALCULATE ( [Ingresos Totales] ; DATESQTD ( Calendario[Fechas] ) )
    • 496. – Total Acumulado desde el Principio del Mes Hasta la Fecha (MTD) La segunda variante de acumulado se presenta si queremos desde el principio del mes hasta la fecha actual. Para el MTD es obligatorio desplegar toda la jerarquía si queremos observar los efectos de la medida MTD Ingresos ¿Por qué? porque como el acumulado es desde el principio del mes su efecto se ve a nivel de días. MTD Ingresos = CALCULATE ( [Ingresos Totales] ; DATESMTD ( Calendario[Fechas] ) )
    • 497. Acumulados con: TOTALYTD, TOTALQTD y TOTALMTD Para los acumulados contamos con tres atajos, así: Acumulado YTD ▪ CALCULATE ( [Ingresos Totales] ; DATESYTD ( Calendario[Fechas] ) ) → ▪ TOTALYTD ( [Ingresos Totales] ; Calendario[Fechas] ) La función TOTALYTD tiene un tercer argumento opcional para señalar el final del año, ejemplo con el año fiscal ▪ CALCULATE ( [Ingresos Totales] ; DATESYTD ( Calendario[Fechas]; "06/30" ) ) → ▪ TOTALYTD ( [Ingresos Totales] ; Calendario[Fechas] )
    • 498. Acumulado QTD ▪ CALCULATE ( [Ingresos Totales] ; DATESQTD ( Calendario[Fechas] ) ) → ▪ TOTALQTD ( [Ingresos Totales] ; Calendario[Fechas] ) Acumulado MTD ▪ CALCULATE ( [Ingresos Totales] ; DATESMTD ( Calendario[Fechas] ) ) → ▪ TOTALMTD ( [Ingresos Totales] ; Calendario[Fechas] ) Acumulado: Histórico a la Fecha (HTD) Es posible que queramos el acumulado, pero desde la primera fecha de la tabla de datos, TOTALYTD no funciona porque toma la fecha desde el principio del año, nosotros queremos el acumulado histórico.
    • 499. Te dejamos la expresión DAX: El resultado lo podemos contrastar en la matriz: HTD Ingresos = CALCULATE ( [Ingresos Totales]; FILTER ( ALL ( Calendario[Fechas] ); Calendario[Fechas] <= MAX ( Calendario[Fechas] ) ) )
    • 500. Comparación de Períodos (PY, PQ y PM) En análisis de datos hacer comparaciones entre periodos de tiempo es pan de cada día, por ejemplo, cuando nos demandan comparar los ingresos del año actual con los ingresos del año pasado, el provecho de este tipo de expresiones para seguimiento y comparaciones de tendencias las hace vitales en nuestro arsenal. Las funciones de inteligencia de tiempo no son ajenas a esto y por ello contamos con las funciones para lograrlo. Mismos Ingresos del Año Pasado: Si enfocamos el análisis en la “casilla” en blanco resaltada en la imagen previa, la operación sería traer los ingresos del año 2000.
    • 501. Como no podía ser diferente, sigamos los tres pasos primordiales en DAX para la casilla correspondiente al año 2001: – 1. Identificar Filtros ▪ Calendario[Año] = 2001 – 2. Aplicar Filtros y Propagar Los filtros son aplicados en la tabla de calendario, por lo tanto, queda restringida para el año 2001. Por propagación de filtros entre las columnas fecha de la tabla de Calendario y fecha de envió de la tabla Pedidos, esta última también quedará restringida sólo para aquellas fechas que correspondan al año 2001. – 3. Ejecutar Expresión DAX Filtros CALCULATE ( [Ingresos Totales] ; ___________________________________ ) Gráficamente necesitamos el siguiente reemplazo de lista La función que genera esta lista es: SAMEPERIODLASTYEAR Sintaxis: SAMEPERIODLASTYER ( <Columna de Fechas> ) 1/1/2001 . . . 31/12/2001 1/1/2000 . . . . 31/12/2000
    • 502. Con lo anterior, la expresión DAX es sencilla: En la matriz se reflejará claramente el efecto. Nosotros utilizamos las siglas PY por Previous Year (año anterior) PY Ingresos = CALCULATE ( [Ingresos Totales]; SAMEPERIODLASTYEAR ( Calendario[Fechas] ) )
    • 503. Mismos Ingresos del Trimestre Pasado y Mismos Ingresos del Mes Pasado Desafortunadamente en el lenguaje DAX no contamos con las funciones: ▪ SAMEPERIODLASTQUARTER ▪ SAMEPERIODLASTMONTH La buena noticia es que contamos con una función que nos brindará la posibilidad de hacer los desfases no solo para trimestre y meses, sino también para días e incluso movernos adelante o atrás un número de intervalos deseados, esta función es DATEADD. La función DATEADD retorna una tabla que contiene una columna de fechas desfasada adelante o atrás en el tiempo en un número específico de intervalos según el contexto de filtro actual. = DATEADD ( <Fechas>;<Número de Intervalos>; <Intervalos> ) ▪ Fechas: Una columna que contiene fechas, normalmente, la columna de fechas de la tabla de calendario. ▪ Número de Intervalos: Un numero entero que representa el desfase en el tiempo, los valores negativos significan retroceder en el tiempo y los positivos por su parte hacia adelante en el tiempo. ▪ Intervalo: Este argumento indica en que escala de tiempo se desea realizar el desfase: años, meses, trimestres o días. Así emulamos la medida PY Ingresos con DATEADD: PY Ingresos = CALCULATE ( [Ingresos Totales]; DATEADD ( Calendario[Fechas] ; -1; YEAR )
    • 504. Así creamos la medida de los mismos ingresos del trimestre pasado o PQ Ingresos: Así creamos la medida de los mismos ingresos del mes pasado o PM Ingresos: Presentamos las medidas en la siguiente matriz. PQ Ingresos = CALCULATE ( [Ingresos Totales]; DATEADD ( Calendario[Fechas] ; -1; QUARTER ) PM Ingresos = CALCULATE ( [Ingresos Totales]; DATEADD ( Calendario[Fechas] ; -1; MONTH )
    • 505. Pero la versatilidad de la función DATEADD también radica en el número entero, por ejemplo, si ponemos el número -2 devolvería los ingresos de dos años atrás, si por otro lado ponemos 4 traería los ingresos de 4 años adelante. Total del Año Pasado Otra situación frecuente es retornar el total del año pasado, especialmente útil para comparar con el acumulado hasta la fecha (YTD), esto para hacer un seguimiento si se ha cumplido el objetivo en contraste con el año anterior o no. La función time Intelligence para hacer referencia al total de un periodo pasado o futuro si llega ser necesario es: PARALLELPERIOD. = PARALLELPERIOD ( <Fechas>;<Número de Intervalos>; <Intervalos> ) ▪ Fechas: Una columna que contiene fechas, normalmente, la columna de fechas de la tabla de Calendario. ▪ Número de Intervalos: Un numero entero que representa el desfase en el tiempo, los valores negativos significan retroceder en el tiempo y los positivos por su parte hacia adelante en el tiempo. ▪ Intervalo: Este argumento indica en que escala de tiempo se desea realizar el desfase: años, meses, trimestres o días. La creación de la medida PY Total Ingresos se muestra a continuación: Nota La diferencia entre DATEADD y PARALLELPERIOD se encuentra en el tercer argumento, el intervalo, pues mientras que DATEADD devuelve el periodo desfasado, PARALLELPERIOD retorna la lista desde el principio del año pasado hasta el final del año pasado.
    • 506. En una matriz con el campo Año y mes Nombre se verá claramente el efecto Véase que los valores se repiten a nivel de meses puesto que siempre se está haciendo referencia al total del año pasado. Con PY Total Ingresos y YTD Ingresos ya podemos elaborar la métrica para detectar si al acumulado a la fecha del año ha alcanzado el total del año pasado. PY Total Ingresos = CALCULATE( [Ingresos Totales]; PARALLELPERIOD ( Calendario[Fechas]; -1 ; YEAR ) )
    • 507. Obsérvese la matriz: Mismo Acumulado del Año Pasado: PY YTD ¿Cómo crear una medida que realice el acumulado de los mismos en estudio en el contexto actual, pero para el año anterior? Para crea la medida necesitamos un mix entre las funciones SAMEPERIODLASTYEAR y DATESYTD. YTD/PYTot Ingresos % = DIVIDE ( [Ingresos Totales] - [PY Ingresos] ; [PY Ingresos])
    • 508. Visualicemos la medida en la matriz: PY YTD Ingresos = CALCULATE ( [Ingresos Totales]; SAMEPERIODLASTYEAR ( DATESYTD ( Calendario[Fechas] ) ) ) Nota Presentar la medida PY YTD Ingresos en gráficos de velocímetro y termómetro puede ser una buena combinación, véase capítulo 27.
    • 509. Diferencias en Periodos Una operación común consiste en calcular la diferencia entre los ingresos actuales y los ingresos del año anterior, en esta métrica se puede presentar como un valor absoluto o como un porcentaje. Si tenemos las medidas Ingresos Totales y PY Ingresos su creación es bastante sencilla: Una manera de mostrar la métrica de YOY Ingresos es como un porcentaje, para conseguirlo lo único que debemos hacer dividir la medida YOY Ingresos sobre PY Ingresos Podemos apreciar el resultado en la siguiente matriz. YOY Ingresos = [Ingresos Totales] - [PY Ingresos] YOY Ingresos % = DIVIDE ( [Ingresos Totales] - [PY Ingresos] ; [PY Ingresos] )
    • 510. Cálculo del Total Anual Móvil Una petición que pasa a menudo es el total anual móvil, su característica para remover cambios estacionales y su fácil cálculo la convierten en una métrica obligatoria en manejo de fechas. El total anual móvil siempre considera los 12 meses anteriores. Ejemplo: El total anual para el mes de mayo del 2008 sería la suma de los ingresos desde abril del 2007 hasta marzo 2008. La expresión DAX sería: Para comprenderla debemos desglosar la función DATESINPERIOD. La función DATESINPERIOD retorna una columna de fechas que empieza en la fecha indicada en el segundo argumento y continua un número especifico de intervalos. MAT Ingresos = CALCULATE ( [Ingresos Totales]; DATESINPERIOD ( Calendario[Fechas]; LASTDATE ( Calendario[Fechas] ); -1; YEAR ) )
    • 511. = DATESINPERIOD ( <Fechas>;<Fecha Inicial>; <Número de Intervalos> ; <Intervalos> ) ▪ Fechas: Una columna que contiene fechas, normalmente, la columna de fechas de la tabla de calendario. ▪ Fecha Inicial: Una expresión para fecha ▪ Número de Intervalos: Un numero entero que representa el número de intervalos para añadir o substraer a la fecha inicial ▪ Intervalo: Este argumento indica en que escala de tiempo se desea realizar el desfase: años, meses, trimestres o días.
    • 513. En la presente sección haremos un recorrido por las diferentes categorías de gráficos en Power BI, objetos Visuales personalizados y configuración de Reporte, todo con el principal objetivo de transmitir de manera efectiva, la información encontrada a través del Lenguaje DAX. EN ESTA PARTE Capítulo 20 Introducción a Objetos Visuales de Power BI Capítulo 21 Gráficos de Comparación Capítulo 22 Gráficos de Tendencia Capítulo 23 Gráficos de Seguimiento Capítulo 24 Gráficos Geográficos Capítulo 25 Gráficos de Segmentación Capítulo 26 Matriz y Tabla Capítulo 27 Gráficos Personalizados Capítulo 28 Diseño Apropiado de Gráficos Capítulo 29 Configuración de Reporte
    • 514.
    • 515. CAPÍTULO 20 Después de completar este capítulo tú sabrás: ▪ Cómo crear un objeto visual en Power BI ▪ Evolución Matriz a Gráfico ▪ Tipos de Visualizaciones Es muy probable que tu primera aproximación a la visualización de datos haya sido utilizando los diferentes tipos de gráficos en Excel, como lo habrás notado, a pesar de ser muy útiles tienen ciertas limitaciones: obtener un diseño óptimo no es una tarea fácil, para hacer que trabajen en sincronía dos o más visualizaciones debemos recurrir a otras funcionalidades, el catálogo de gráficos es limitado, construir un gráfico que no se encuentra por defecto puede convertirse en un trabajo titánico. Por esta razón, queremos invitarte a realizar un viaje a través del universo de las visualizaciones en Power BI, un universo en el que no hay restricciones y en el cual podemos representar los datos de casi cualquier manera. La visualización de datos en Power BI es la tercera etapa del proceso de Inteligencia de Negocios, recuerda que luego de extraer, transformar y cargar los datos, es necesario crear las medidas e indicadores que nos van a facilitar el entendimiento del escenario, aunque para realizar un análisis más profundo debemos recurrir a los gráficos ya que son una potente herramienta para obtener conclusiones rápidamente. Por esta razón, iniciemos puntualizando qué es un gráfico.
    • 516. ¿Qué es un Gráfico? Podemos definir un gráfico, como un medio de comunicación que nos permite transmitir datos numéricos visualmente; su utilidad y potencia radica en la posibilidad que nos brindan para obtener conclusiones, identificar patrones y/o relaciones. Panel de Visualizaciones En el caso particular de Power BI contamos con un catálogo de visualizaciones bastante amplio, en total son veintisiete gráficos nativos que tenemos a nuestra disposición listos para ser utilizados, aunque es muy probable que este número continúe en aumento, todos ellos se encuentran agrupados en la interfaz de Power BI, exactamente en el Panel de Visualizaciones, aquí elegimos cualquiera de los gráficos para agregar al lienzo y donde podemos modificar su estructura, aspecto e incluso analizar con opciones adicionales únicas para algunos objetos visuales. 1 2 3 4
    • 517. El Panel de Visualizaciones de Power BI está compuesto por: 1. Visualizaciones: Aquí encontramos todos los gráficos por defecto que se encuentran en Power BI 2. Pestaña Campos: En esta área del panel de visualizaciones arrastramos y configuramos los campos en las distintas áreas de colocación para darle vida al objeto visual elegido 3. Pestaña Formato: En la pestaña formato se encuentran todas las opciones para realizar cambios cosméticos a los elementos que componen el gráfico, es decir, todo lo relacionado al diseño del objeto visual 4. Secciones: Dependiendo de la pestaña elegida, cambia la sección mostrada en el panel de visualizaciones Luego de conocer la estructura y partes del Panel de Visualizaciones de Power BI, es momento de iniciar con la construcción de un gráfico. Creando Objetos Visuales en Power BI Una de las grandes bondades de Power BI es la facilidad en el momento de crear cualquier tipo de visualización, para darle vida a un objeto visual debemos: 1. Elegir en el Panel de Visualizaciones el gráfico que deseamos agregar, dando clic sobre el icono correspondiente 2. Arrastrar columnas de las tablas y/o medidas a las diferentes áreas de colocación Nota Al seleccionar algunas visualizaciones, existe la posibilidad de que aparezca una tercera pestaña denominada Analytics con opciones adicionales y particulares para analizar datos.
    • 518. Como puedes ver en la Figura 20.2 hemos elegido el tipo de visualización Matriz, después arrastramos los campos País al área de filas, Tipo de Compra al área de columnas e Ingresos al área de valores, cabe aclarar que todos estos campos pertenecen a la tabla Pedidos; en consecuencia, obtenemos la siguiente visualización: Tipo de visualización Matriz Áreas de Colocación
    • 519. Como ya te lo mencionamos, para crear la matriz únicamente utilizamos campos de la tabla Pedidos, pero dado el caso, también es posible combinar campos y medidas e incluso utilizar sólo medidas para establecer una visualización. En la Figura 20.4 se encuentra definida la matriz previa, pero en lugar de arrastrar el campo Ingresos al área de valores, vamos a llevar la medida Ingresos Totales, obteniendo así los mismos resultados: Cambiar el Tipo de Visualización La flexibilidad de Power BI con respecto a los gráficos no se evidencia únicamente en la etapa de creación, por ejemplo, si quisieras cambiar la Matriz creada en la Figura 20.4 por otro tipo de visualización, solo debes emplear dos clics: Medida
    • 520. 1. Seleccionar el objeto visual que queremos modificar, dando clic izquierdo sobre su área 2. En el panel de visualizaciones elegimos el nuevo tipo de gráfico, para este caso en particular, el Gráfico de Barras Apiladas Evolución Matriz a Gráfico Cuando iniciamos nuestro viaje por el mundo de las visualizaciones es muy común que al principio sea un poco complicado configurar cualquier tipo de gráfico debido a que las áreas de colocación cambian según el tipo de objeto visual, por eso es una buena práctica iniciar la creación de un gráfico a partir de una Matriz y después “evolucionarla” a la visualización deseada. Para ello vamos a construir una matriz y luego cambiamos el tipo de gráfico. 4
    • 521. 1. Crear Matriz: Elegir la visualización de tipo Matriz y arrastrar el campo País al área de filas y la medida Ingresos Totales al área de valores 2. Evolución a Otra Visualización: Seleccionamos la Matriz dando clic sobre su área y después cambiamos el tipo de visualización por un Gráfico de Columnas Apiladas
    • 522. Ahora que sabes cómo crear y modificar una visualización, es momento de hablar de los tipos de gráficos en Power BI ... Tipos de Objetos Visuales en Power BI Aunque los objetos visuales de Power BI Desktop se encuentran todos juntos en el panel de visualizaciones, nosotros podemos clasificarlos en diferentes categorías de acuerdo con su función, todo con el único objetivo de establecer ciertos lineamientos para elegir el tipo de gráfico apropiado para cada situación. A continuación, te listamos las diferentes categorías, las cuales estaremos revisando en profundidad en los próximos capítulos: ▪ Gráficos de Comparación ▪ Gráficos de Tendencia ▪ Gráficos de Seguimiento ▪ Gráficos Geográficos ▪ Gráficos de Segmentación Cada una de estas categorías tiene una misión en particular y en algunos casos un gráfico puede transmitir mejor la información que otro, por eso es importante clasificarlos y entender para que trabajo están diseñados. Nota Si la visualización resultante no cumple con la estructura deseada, podemos mover los campos entre las diferentes áreas de colocación para obtener el gráfico esperado
    • 523. CAPÍTULO 21 Al finalizar el presente capítulo tú sabrás: ▪ Para qué sirven los Gráficos de Comparación ▪ Cuáles son los gráficos de Comparación ▪ Particularidades de Cada Gráfico Una de las tareas más comunes en el análisis y visualización de datos, es la comparación entre categorías, periodos de tiempo e incluso variables, ya que nos permite contrastar resultados para entender lo que está sucediendo en un escenario en particular, en el presente capítulo conoceremos todas las consideraciones para emplear los gráficos de comparación de una manera óptima. Esta categoría de gráficos nos permite hacer comparaciones de valores numéricos que se encuentran agrupados por categorías, periodos de tiempo o dado el caso en diferentes variables, ya sean dependientes o independientes, aunque esto es solo la punta del iceberg porque también es posible: identificar relaciones existentes, reconocer patrones, hacer rankings, e incluso mostrar los valores como porcentaje del total.
    • 524. Los gráficos de comparación los podemos dividir en tres subcategorías; Columnas y Barras, Distribución y Flujo de datos. Columnas y Barras ▪ Gráfico de Barras Apiladas ▪ Gráfico de Columnas Apiladas ▪ Gráfico de Barras Agrupadas ▪ Gráfico de Columnas Agrupadas ▪ Gráfico de Columnas Apiladas y de Líneas ▪ Gráfico de Columnas Agrupadas y de Líneas Distribución ▪ Gráfico de Barras 100% Apiladas ▪ Gráfico de Columnas 100% Apiladas ▪ Gráfico Circular ▪ Gráfico de Anillos ▪ Treemap Flujo de Datos ▪ Gráfico de la Barra de Herramientas ▪ Gráfico de Cascada ▪ Embudo
    • 525. Gráfico de Barras Apiladas Este tipo de gráfico representa los datos como una barra y su tamaño depende exclusivamente del valor o magnitud de cada punto. Aplicación ▪ Comparación de categorías y datos a través del tiempo ▪ Mostrar Rankings ▪ Identificar Relaciones ▪ Encontrar Patrones Creación 1. Dar clic sobre el icono que corresponde al Gráfico de Barras Apiladas 2. Configurar los campos que deseamos analizar sobre las diferentes áreas de colocación Gráfico de Barras Apiladas
    • 526. Para este gráfico, vamos a llevar el Campo País de la Tabla Pedidos al Eje y la medida Ingresos Totales a Valor. Áreas de Colocación Visualización sin Campos Agregados
    • 527. Como puedes ver en la Figura 21.3, para crear este gráfico en su forma más simple basta con llevar un Campo al eje y una medida a Valores, aunque esto no es una camisa de fuerza, también puedes emplear únicamente columnas de una Tabla. Configuración Adicional 3. Podemos utilizar las otras áreas de colocación para añadir más información en el gráfico En este caso, vamos a llevar la Medida Costos Totales a Saturación de Color. Nota Algunas áreas de colocación son comunes a varios gráficos, por ejemplo, Saturación de Color e Información sobre herramienta. Nota Si arrastramos campos de una tabla directamente al Lienzo, sin haber elegido ninguna visualización se crea automáticamente un gráfico.
    • 528. Al agregar la medida a Saturación de Color podemos ver que el gráfico ahora nos muestra dos variables asociadas al país, la primera es Ingresos Totales y está relacionada con el tamaño de la barra, es decir, que entre más grande sea obtuvimos mayores ingresos, La segunda medida Costos Totales se encuentra vinculada con el color de las barras, entre más oscuro, nos indica que obtuvimos mayores Costos y entre más claro, muestra que se tienen menores costos. Tooltip Puedes verificar los datos acercando el cursor sobre alguna de las barras del gráfico, automáticamente aparecerá el Tooltip, básicamente es una “Cajita de Información” que nos muestra las variables relacionadas a dicho punto en el gráfico.
    • 529. Para editar la paleta de color, vamos a la pestaña Formato, opción Colores de Datos, y allí cambiamos los colores a degradar en la visualización. Información sobre Herramientas El Tooltip es un elemento bien interesante porque permite explorar el detalle de cada variable que contiene un punto del gráfico, y de ser necesario, podemos agregar información adicional, de tal manera que no se vea en el gráfico, sino que únicamente aparezca en el Tooltip al acercar el cursor sobre un punto del gráfico. En ese orden de ideas, vamos a llevar el campo Costo del Producto de la tabla Pedidos a Información sobre herramienta.
    • 530. A simple vista parece que no obtuvimos ningún resultado significativo, pero al acercar el cursor sobre un valor del gráfico la historia es diferente. En la Figura 21.9 puedes ver que ahora si aparece la información relacionada a los Costos del Producto, pero solo se muestra en el Tooltip y no en el gráfico como tal, de igual modo, podemos agregar más campos o medidas para que se muestre únicamente en nuestra “Cajita de Información”.
    • 531. Diseño y Personalización 4. En la Pestaña Formato puedes modificar todo lo relacionado con el aspecto del gráfico Eje Y Si vas a la pestaña formato y eliges la opción Eje Y, encontrarás una serie de características asociadas a este elemento del gráfico, por ejemplo, el tamaño de las barras o la fuente de las etiquetas del eje. Si aumentamos el Ancho de categoría mínimo de 20 a 50, las barras del gráfico crecerán.
    • 532. Después, vamos a cambiar el Tamaño del texto por 25, obteniendo así una fuente más grande. Eje x Al desplegar las opciones del Eje X, podrás manipular la escala del gráfico; las unidades a mostrar, posiciones decimales, etc.
    • 533. Veamos cómo cambia el gráfico si definimos la escala iniciando en 0 y finalizando en 500000. También, debes especificar las unidades a mostrar en cifras de miles. Colores de Datos Al dar clic sobre esta opción, se despliega un menú en el cual podemos establecer la paleta de colores del gráfico.
    • 534. En este caso, el menú de Colores de Datos muestra las opciones para cambiar la Saturación de Color, pero si quitamos el campo Costos Totales de esta área de colocación, se modifican las opciones, permitiéndonos ajustar el color de todas las barras o de un punto en particular. Para cambiar los colores de todas las barras, vamos a Color predeterminado y allí elegimos el que sea de nuestra preferencia. Para cambiar el color de una barra en particular, activamos la opción Mostrar todo, en consecuencia, aparece la lista de todos los puntos del gráfico con el color asociado.
    • 535. Pestaña Analytics 5. En algunas visualizaciones, al dar clic sobre la Pestaña Analytics encontrarás opciones adicionales para analizar o agregar elementos al gráfico Para el Gráfico de Barras Apiladas contamos con la Línea Constante. Pestaña Analytics
    • 536. Para añadirla vamos a dar clic en Agregar luego de desplegar la opción Línea Constante en la pestaña Analytics. Allí establecemos el Color de la Línea y el valor en el que será dibujada. Gráfico de Columnas Apiladas Muestra los valores como Columnas y la dimensión de cada una depende del valor de cada punto, y podríamos decir que es una variación del gráfico de barras, pero rotadas 90°. Aplicación ▪ Comparación de categorías y datos a través del tiempo ▪ Mostrar Rankings ▪ Identificar Relaciones ▪ Encontrar Patrones
    • 537. Creación 1. Elegir el icono del Gráfico de Columnas Apiladas en el panel de visualizaciones 2. Configurar los campos en las distintas áreas de colocación En este caso, agregamos el campo País al Eje y la medida Ingresos Totales a Valor para obtener el siguiente gráfico: Gráfico de Columnas Apiladas k
    • 538. Pestaña Analytics 3. El Gráfico de Columnas Apiladas al igual que el Gráfico de Barras Apiladas, nos brinda la posibilidad de agregar una línea constante, en ese orden de ideas, agregamos una línea constante en el valor de 390000. Nota Otra manera de construir visualizaciones es clonar un gráfico y luego modificar su aspecto. Primero seleccionamos un objeto que ha sido creado previamente, luego presionamos la combinación de teclas Ctrl + c para copiar, después, quitamos la selección dando clic sobre el lienzo y finalmente pegamos el objeto dando Ctrl + v.
    • 539. Gráfico de Barras Agrupadas Bosqueja los datos como una barra, el tamaño de cada barra esta dado por la magnitud del punto y si agregamos un campo a Leyenda, agrupa los valores para facilitar el análisis. Aplicación ▪ Comparación de categorías y datos a través del tiempo ▪ Mostrar Rankings ▪ Identificar Relaciones ▪ Encontrar Patrones Creación 1. Seleccionar el icono correspondiente al Gráfico de Barras Agrupadas 2. Establecer los Campos en las áreas de colocación del gráfico Por ejemplo, arrastra el campo País al Eje y la medida Ingresos Totales a Valor. Gráfico de Barras Agrupadas
    • 540. Configuración Adicional 3. Si llevamos un campo a Leyenda se agrupan las categorías, facilitando la comparación En este momento, que te parece si hacemos una pausa para hacernos la siguiente pregunta: ¿Cuál es la diferencia entre el Gráfico de Barras Apiladas y el Grafico de Barras Agrupadas? Para resolver este interrogante llevemos el campo Categoría de Descuento a Leyenda. x
    • 541. Al llevar este campo a Leyenda del Gráfico de Barras Agrupadas, se discriminan los ingresos dependiendo de la categoría de Descuento, es decir que ahora vemos los ingresos por país y por el descuento aplicado en barras diferentes. Pero qué pasa si por un momento volvemos a nuestro Gráfico de Barras Apiladas y hacemos lo mismo, llevar Categoría de Descuento a Leyenda. En el Gráfico de Barras Apiladas obtenemos un resultado diferente, las categorías NO se discriminan, por el contrario, se muestran como parte del total del País. Pestaña Analytics 1. El Gráfico de Barras Agrupadas tiene más “Superpoderes” que el de Barras Apiladas: ▪ Línea Constante ▪ Línea Mínima ▪ Línea Máxima ▪ Línea Promedio ▪ Línea Mediana ▪ Línea de Percentil
    • 542. Primero vamos a desplegar la opción de Línea Mínima y damos clic en Agregar para visualizarla en el gráfico, la línea queda exactamente en el valor más bajo de la gráfica. Luego abrimos la opción Línea Máxima y la añadimos. Como consecuencia, la línea aparece en el valor más alto de toda la gráfica.
    • 543. Después añadimos la Línea Promedio, desplegando el menú y dando clic en Agregar. Si habilitamos la opción Etiqueta de datos, el gráfico muestra el valor asociado a la Línea Promedio
    • 544. Para finalizar, insertamos la Línea Mediana. Gráfico de Columnas Agrupadas Es una variación del Gráfico de Barras Agrupadas, lo único que cambia es la orientación del gráfico. Aplicación ▪ Comparación de categorías y datos a través del tiempo ▪ Mostrar Rankings ▪ Identificar Relaciones ▪ Encontrar Patrones Nota Al agregar una Línea de Percentil es posible variar el porcentaje.
    • 545. Creación 1. Dar clic en el icono del Gráfico de Columnas Agrupadas 2. Configurar campos y/o medidas en las áreas de Colocación La medida Ingresos Totales a Valor, País al Eje y Categoría de Descuento a Leyenda. Gráfico de Columnas Agrupadas
    • 546. Pestaña Analytics 3. En la pestaña Analytics, tiene las mismas opciones que el Gráfico de Barras Agrupadas Gráfico de Columnas Apiladas y de Líneas Permite comparar dos variables que pueden tener o no la misma escala y estar relacionada entre sí. Una variable la bosqueja como Columnas Apiladas y la otra es dibujada como una Línea que atraviesa el grafico. Aplicación ▪ Comparar variables de Escalas diferentes ▪ Identificar Relaciones
    • 547. Creación 1. Escoger el Gráfico de Columnas Apiladas y de Líneas en el Panel de Visualizaciones 2. Configurar los Campos en las áreas de colocación Inicialmente, vas a llevar el campo País a Eje Compartido, la medida Ingresos Totales a Valores de Columnas y la medida Costos Totales a Valores de Líneas. Gráfico de Columnas Apiladas y de Líneas
    • 548. En el gráfico se evidencia la diferencia en las escalas de ambos ejes, los ingresos están en cifras de millón, y el costo en cifras de miles, también, podemos ver que se obtuvieron ganancias, pues los ingresos (Columnas) sobrepasan los costos (Línea), sin embargo, ¿qué pasa si llevamos el campo Categoría de Descuento a Serie de Columnas? Al agregar el campo a Serie de Columnas, se muestran dichas categorías apiladas como parte del total por país. Gráfico de Columnas Agrupadas y de Líneas Es una variación del Gráfico de Columnas Apiladas y de Líneas, pero en lugar de “amontonar” ¡Advertencia! Aunque ya te lo mencionamos, hay ciertos gráficos que no cuentan con opciones en la pestaña Analytics y el Gráfico de Columnas Apiladas y de Líneas es uno de ellos.
    • 549. las categorías en una sola columna, las separa mostrándolas en columnas independientes pero agrupadas. Aplicación ▪ Comparar variables de Escalas diferentes ▪ Identificar Relaciones Creación 1. Seleccionar el icono correspondiente al gráfico 2. Configurar las áreas de colocación Gráfico de Columnas Agrupadas y de Líneas
    • 550. En la figura anterior puedes ver la estructura de la visualización en la cual llevamos el campo País al Eje Compartido, Categoría de Descuento a Serie de Columnas, la medida Ingresos Totales a Valores de Columnas y la medida Costos Totales a Valores de Líneas; como consecuencia, puedes comparar las variables Ingresos y Costos, porque cada una está relacionada con un eje y a diferencia del Gráfico de Columnas Apiladas y de Líneas, discrimina cada Categoría agrupándola por país. Gráfico de Barras 100% Apiladas y Gráfico de Columnas 100% Apiladas Ambos gráficos muestran los valores como porcentaje del total general, es decir que revelan cuanto aporto cada categoría al total, pero dado como un porcentaje. La diferencia entre ambos únicamente es la orientación de los puntos en el gráfico. Aplicación ▪ Comparación de Categorías ▪ Porcentaje del Total General Creación 1. Dar clic izquierdo sobre el icono que corresponde al Gráfico de Barras 100% Apiladas o Gráfico de Columnas 100% Apiladas ¡Advertencia! El Gráfico de Columnas Agrupadas y de Líneas no tiene ninguna opción en la pestaña Analytics.
    • 551. 2. Configurar los campos en las áreas de colocación de la visualización Primero, vamos a crear el Gráfico de Barras 100% Apiladas, en ese orden de ideas, movemos los campos País al Eje, Categoría de Descuento a Leyenda y la medida Ingresos Totales a Valor Gráfico de Barras 100% Apiladas Gráfico de Columnas 100% Apiladas
    • 552. En la figura se evidencia que el ancho de todas las barras es igual porque el gráfico convierte los valores a porcentajes, es decir, cada país representa el 100% y las secciones que se dibujan, muestran el porcentaje que cada Categoría de Descuento está aportando al total por país. Si acercamos el cursor sobre alguna sección nos muestra la información asociada a dicho porcentaje
    • 553. Pestaña Analytics 1. Para los gráficos 100% apilados solo contamos con una “Habilidad Especial” y consiste en agregar una Línea Constante En la pestaña Analytics abrimos la única opción que aparece, damos clic en agregar y luego establecemos el valor en el que será trazada la línea constante, por ejemplo, 0,8. ¡Advertencia! Al agregar la Línea Constante debes tener en cuenta que estamos trabajando con porcentajes, por ello, es recomendable agregar la línea empleando valores entre 0 y 1, porque al escribir un número entero se altera la visualización.
    • 554. Gráfico de Columnas 100% Apiladas Para crearlo, vas a clonar el Gráfico de Barras 100% Apiladas y luego cambias el tipo de visualización por el Gráfico de Columnas 100% Apiladas. Gráfico Circular Esta visualización tiene como objetivo mostrar las partes de un total de manera circular y es muy útil cuando se quiere enseñar aproximadamente los aportes de varios ítems hacia un total, es decir, que lo podemos utilizar en una situación que no requiera mucho detalle. Aplicación ▪ Comparación Aproximada de Categorías ▪ Porcentaje del Total General
    • 555. Creación 1. Elegir el Gráfico Circular en el Panel de Visualizaciones 2. Configurar los Campos en las áreas de colocación correspondientes al Gráfico Circular Para crear este objeto visual, arrastra el campo Categoría de Descuento a Leyenda y la medida Ingresos Totales a Valores. Gráfico Circular
    • 556. Configuración Adicional 3. El área de colocación Detalles, permite subdividir cada sección del gráfico En ese orden de ideas, llevamos el campo Tipo de Compra a Detalles. Nota Es recomendable utilizar este gráfico para comparar pocos elementos, en caso contrario puede que su lectura se dificulte.
    • 557. Por esta razón, se subdivide con esa pequeña línea blanca cada una de las áreas del gráfico en secciones más pequeñas, dadas por el Tipo de Compra. Diseño y Personalización 4. Para facilitar la lectura por parte del usuario final, en la pestaña Formato, podemos habilitar la opción Leyenda Gráfico de Anillos Este tipo de visualización es una variación del gráfico circular, la única diferencia es que tiene un orifico en el centro de la circunferencia como una “Dona”. ¡Advertencia! El Gráfico Circular no tiene ninguna opción en la pestaña Analytics.
    • 558. Aplicación ▪ Comparación Aproximada de Categorías ▪ Porcentaje del Total General Creación 1. Dar clic en el icono del Gráfico de Anillo 2. Configurar los Campos y medidas en las distintas áreas de colocación Los campos Categoría de Descuento a Leyenda, Tipo de Compra a Detalle y la medida Ingresos Totales a Valores. Gráfico de Anillos
    • 559. Treemap El Treemap muestra en áreas cuadradas cuanto aportó cada valor al total general, es decir que nos enseña las proporciones de un ítem, agregando una jerarquía según el tamaño de los datos. Aplicación ▪ Comparación Aproximada de Categorías ▪ Porcentaje del Total General ▪ Jerarquías Creación 1. Seleccionar el Treemap en el panel de visualizaciones 2. Agregar Campos y/o medidas en las distintas áreas de colocación ¡Advertencia! El Gráfico de Anillos no tiene opciones en la pestaña Analytics. Treemap
    • 560. Para este ejemplo repetimos la configuración del Gráfico Circular que creamos previamente, es decir, el campo Categoría de Descuento a Grupo y la medida Ingresos Totales a Valores. Si agregamos un campo a Detalle, subdivide las áreas cuadradas, al igual que los gráficos de anillo y circular. ¡Advertencia! El Treemap no tiene opciones en la pestaña Analytics.
    • 561. Gráfico de la Barra de Herramientas El Gráfico de la Barra de herramientas es realmente poderoso porque permite hacer comparación entre categorías y lo más interesante, analizar flujos de datos, todo de una sola vista. Aplicación ▪ Comparación de Categorías y datos a través del tiempo ▪ Análisis de Flujos de Datos ▪ Parte del Total Creación 1. Seleccionar el Gráfico de la Barra de Herramientas en el Panel de Visualizaciones Gráfico de la Barra de Herramientas
    • 562. 2. Definir medidas y campos en las Áreas de Colocación de la visualización Inicialmente, movemos el campo Año de la Tabla de Calendario al Eje y la Medida Ingresos Totales a Valor, con lo cual obtenemos el siguiente resultado: Con una medida y un campo, la visualización tiene un aspecto similar al Gráfico de Columnas, aunque, al arrastrar el campo Categoría de Descuento al área de colocación Leyenda, cambia drásticamente el diseño.
    • 563. Al agregar dicho campo a Leyenda, obtenemos el Gráfico de la Barra de Herramientas listo para analizar los datos a través del tiempo, como puedes ver, se muestra el total por año, ingresos por categoría y el cambio a través del tiempo. Partes del Gráfico Para entender la composición del gráfico, imagina que hicimos “Zoom” sobre una sección. ▪ Total: Muestra el acumulado para ese punto en el gráfico Flujo de Datos Partes del Total Total
    • 564. ▪ Partes del Total: Divide e indica las categorías que componen ese punto y cuanto aportan al total ▪ Flujo de Datos: Al acercar el cursor muestra el cambio que tuvo una categoría en el gráfico
    • 565. Diseño y Personalización 3. En la pestaña Formato, se encuentra la opción Barras de Herramientas, aquí puedes modificar las características del gráfico Si aumentemos el tamaño del Espaciado cambiándolo, por ejemplo, de 0 a 10, se abre una brecha entre cada una de las categorías. Nota Para hacer el “Zoom” en el gráfico, debes filtrar ciertos puntos en el Panel de Filtros, no te preocupes si no sabes cómo, este tema será tratado en el Capítulo 29.
    • 566. Si desactivamos la opción Coincidir con el Color de la Serie, el color del flujo de datos cambia, estableciendo el mismo para todas las categorías. La opción Transparencia está relacionada con la claridad que tiene los colores del flujo de datos, independiente si coincide o no con el color de la serie, en consecuencia, si aumentamos el valor pues los colores se verán más transparentes.
    • 567. Gráfico de Cascada La visualización identifica cuanto aportó cada punto de la serie al total general, además, diferencia los valores negativos y positivos asignando con un código de color, e ilustra la transición de una variable, es decir el flujo de datos. Aplicación ▪ Comparación de Categorías y datos a través del tiempo ▪ Análisis de Flujos de Datos ▪ Parte del Total Creación 1. Dar clic sobre el icono del Gráfico de Cascada en el Panel de Visualizaciones ¡Advertencia! El Gráfico de la Barra de Herramientas no tiene opciones en la pestaña Analytics. Gráfico de Cascada
    • 568. 2. Adicionar campos y medidas al área de colocación Para este escenario, arrastramos el campo Año de la Tabla de Calendario a Categoría e Ingresos Totales al Eje Y. En la figura anterior, puedes ver que el gráfico ordena de mayor a menor los aportes que hizo cada año con respecto al total, resaltándolos en verde porque tienen una cifra positiva, si existiera un valor negativo estaría en rojo, haciendo referencia a datos que son negativos y por ende representan una disminución para el Total. Diseño y Personalización 3. En la pestaña Formato existe una opción denominada Tendencia de las Opiniones, que nos permite cambiar el color de los puntos en el gráfico Nota Si arrastras un campo al área de colocación Desglose, se muestra los aportes para los puntos ya existentes.
    • 569. Pestaña Analytics 4. En el Gráfico de Cascada es posible insertar una Línea Constante En la pestaña Analytics abrimos las opciones de Línea Constante, el valor para crearla será de 500,000 y además habilitamos la Etiqueta para que el número aparezca en la visualización.
    • 570. Embudo Esta visualización permite observar el flujo decreciente de los valores graficados, las barras se encuentran centradas y el tamaño de cada una depende del dato asociado. Aplicación ▪ Comparación ▪ Análisis de Flujos de Datos Creación 1. Elegir el icono correspondiente al Embudo 2. Configurar áreas de Colocación Para ver la evolución de los ingresos a través de los años, movemos el campo Año de la tabla de Calendario a Grupo, e Ingresos Totales a Valores. Embudo
    • 571. El Embudo contrasta todos los valores con respecto al más grande, que es tomado como el 100%, por eso al momento de acercar el cursor sobre una barra del gráfico, el Tooltip enseña en porcentaje a cuanto corresponde ese punto con respecto al primer valor (más grande) y al inmediatamente anterior.
    • 572. Diseño y Personalización 3. En la pestaña Formato se encuentra la opción Colores de Datos, allí podemos modificar el color de todas las barras o incluso resaltar un valor
    • 573. CAPÍTULO 22 Cuando termines el presente capítulo tú aprenderás: ▪ Para qué sirven los Gráficos de Tendencia ▪ Cuáles son los Gráficos de Tendencia ▪ Características particulares de cada visualización Las visualizaciones de Power BI Desktop están diseñadas para ayudarnos a entender la realidad, y una de las consideraciones que siempre debemos tener en cuenta para ser más precisos, es el tiempo. Por eso contamos con una categoría de gráficos que nos permite ver desde diferentes perspectivas que pasa con un valor a través del tiempo, identificar valores atípicos e incluso reconocer si existe o no relación entre dos o más variables, en ese orden de ideas, te damos la bienvenida a los Gráficos de Tendencia. Las visualizaciones que componen esta categoría tienen la misión de ayudarnos a: Analizar Series de Tiempo, identificar tendencias, encontrar fluctuaciones (Valores Atípicos) y establecer si existe o no correlación en los datos.
    • 574. ▪ Gráfico de Línea ▪ Gráfico de Área ▪ Gráfico de Áreas Apiladas ▪ Gráfico de Dispersión Gráfico de Líneas Esta visualización representa los valores como una línea que cruza por los puntos de la serie y permite identificar la tendencia de los datos. Aplicación ▪ Cambios a través del tiempo ▪ Tendencia ▪ Fluctuaciones ▪ Previsión Creación 1. Insertar la visualización, dando clic sobre el icono del Gráfico de Líneas que se encuentra en el Panel de Visualizaciones de Power BI Desktop
    • 575. 2. Establecer Campos y Medidas en las áreas de colocación del Gráfico Para este caso, arrastra el Campo Año de la Tabla de Calendario al Eje y la medida Ingresos Totales al área de Valores. En la visualización se ve claramente que los ingresos tienen una tendencia creciente al transcurrir los distintos años. Gráfico de Líneas
    • 576. Configuración Adicional 3. Si quieres mostrar diferentes categorías en el gráfico, puedes llevar un campo al área de colocación Leyenda Para empezar, lleva la columna Tipo de Compra a Leyenda. Como resultado, obtenemos en la visualización dos líneas, una representa los ingresos para el tipo de compra Normal y la otra para Devolución. Aunque debes tener cierta precaución al utilizar la Leyenda porque si el campo cuenta con muchos ítems, la visualización perderá claridad y será muy difícil comparar los datos.
    • 577. Pestaña Analytics 4. Para el Gráfico de Líneas contamos con una gran variedad de “Superpoderes” para facilitar el análisis de los datos: Línea de Tendencia, Línea Constante, Línea Mínima, Línea Máxima, Línea Promedio, Línea Mediana, Línea de Percentil y Previsión Línea de Tendencia Para ver la dirección que toman los datos, puedes crear la Línea de Tendencia dando clic en la opción correspondiente en la pestaña Analytics y después en Agregar.
    • 578. Previsión Para pronosticar que ocurrirá con un proceso o situación en el futuro, puedes hacer una predicción en el Gráfico de Líneas, por ello, en la pestaña Analytics abrimos la opción Previsión y damos clic en Agregar. Automáticamente aparece un área sombreada correspondiente a la previsión que recién creamos, al acercar el cursor sobre el área, aparece en el Tooltip la predicción, así como el límite inferior y superior que se ha establecido para ese punto.
    • 579. Para hacer más precisa la previsión, podemos modificarla, por esta razón, vamos a cambiar el número de periodos a predecir por uno y el intervalo de confianza lo aumentamos al 99%, para finalizar damos clic en Aplicar. Si es necesario puedes excluir un punto de la visualización, quitándolo en el Panel de Filtros, tema que será tratado en el capítulo 29.
    • 580. Al excluir el punto referente al año 1999 del gráfico, se ha reajustado el pronóstico, pues dicho valor era mucho menor a los demás y esto hacía que la previsión fuera menos precisa. Gráfico de Áreas El Gráfico de Áreas, esboza una línea que une los puntos de la serie y resalta el área que está por debajo de los datos. Aplicación ▪ Cambios a través del tiempo ¡Advertencia! Solo podemos hacer Previsiones si agregamos campos numéricos al Eje del Gráfico.
    • 581. ▪ Tendencia ▪ Fluctuaciones Creación 1. Dar clic en el icono del Gráfico de Áreas para insertarlo en el Lienzo 2. Definir campos y medidas en las áreas de colocación Por ejemplo, lleva el campo Año al Eje del gráfico y la medida Ingresos Totales a Valores. Gráfico de Áreas
    • 582. Configuración Adicional 3. Para ver distintas categorías en la visualización, debemos utilizar el área de colocación Leyenda Puedes agregar el campo Tipo de Compra a Leyenda para observar dicho cambio en la visualización. Pestaña Analytics 4. En la Pestaña Analytics de este gráfico contamos con opciones ya conocidas para optimizar el análisis: Línea de Tendencia, Línea Constante, Línea Mínima,Línea Máxima,Línea Promedio, Línea Mediana y Línea de Percentil Para ver su aplicación, vamos a añadir la Línea de Tendencia, Línea Promedio, Línea Mínima y Línea Máxima …
    • 583. Gráfico de Áreas Apiladas Esta visualización es una variación del Gráfico de Áreas, aunque su diseño cambia drásticamente si llevamos un campo al Área de Colocación Leyenda, en ese caso, apila o “amontona” las categorías una sobre otra. Aplicación ▪ Cambios a través del tiempo ▪ Tendencia ▪ Fluctuaciones Creación 1. Seleccionar el icono del Gráfico de Áreas Apiladas para insertarlo en la página
    • 584. 2. Definir la configuración de la visualización moviendo campos y medidas en las áreas de colocación Nuevamente, el campo Año al Eje del gráfico, Tipo de Compra a Leyenda y la medida Ingresos Totales a Valores. En la figura anterior puedes ver que el área de una línea empieza en el límite donde termina la otra, es decir, que están apiladas, a diferencia del Gráfico de Áreas, donde un área se ve Gráfico de Áreas Apiladas
    • 585. Detrás de la otra, lo que nos indica que inician en el mismo valor. Pestaña Analytics 3. Dado el caso, puedes agregar una Línea Constante en la visualización Gráfico de Dispersión El Gráfico de Dispersión dibuja los datos como puntos o burbujas dependiendo del número de variables agregadas, y permite identificar si existe correlación entre los datos. Aplicación ▪ Encontrar Patrones ▪ Identificar Correlación en los datos ▪ Fluctuaciones ▪ Tendencias
    • 586. Creación 1. Dar clic en el icono del gráfico 2. Establecer la estructura del gráfico, agregando campos en las áreas de colocación Primero, movemos el campo SKU a Detalles, la medida Ingresos Totales al Eje X pues será la variable independiente y Costos Totales al Eje Y. Gráfico de Dispersión
    • 587. Cada punto en el gráfico representa un producto, por esta razón, podemos asociar cada uno con los Costos e Ingresos que obtuvo. Si agregamos un Campo a Leyenda, los puntos serán agrupados de acuerdo con las categorías que tiene la columna. Para analizar una tercera variable en el Gráfico de Dispersión, podemos llevar un campo o medida al área de colocación Tamaño. Hagamos el experimento situando allí la Columna Unidades.
    • 588. Ahora el diámetro de cada circunferencia está asociado a las Unidades vendidas. Configuración Adicional 3. Podemos Animar el Gráfico de Dispersión utilizando el Área de Colocación Eje de Reproducción Por consiguiente, vas a situar el campo Año de la Tabla de Calendario en el Eje de Reproducción y automáticamente aparece una barra de estado, con ella, podemos manejar la animación del Gráfico.
    • 589. Para iniciar la animación llevamos el indicador al Inicio y luego damos clic en el botón de Reproducir. En consecuencia, el gráfico empezará a reproducir el cambio de los datos a través del tiempo, año a año. Indicador Botón de Reproducción
    • 590. La reproducción del gráfico finaliza cuando se acaban los datos, para volver a animar debes mover el indicador al valor desde donde quieres que empiece a reproducir.
    • 591. Si damos clic sobre un punto del gráfico, se muestra la trayectoria que siguió para llegar al estado actual. Pestaña Analytics 4. Para esta visualización, contamos con una gran variedad de “Superpoderes”: Línea Constante del eje x, Línea constante del eje y, Línea Mínima, Línea Máxima, Línea Promedio, Línea Mediana, Línea de Percentil, Sombreado de Simetría y Línea de Relación
    • 592. Sombreado de Simetría Dependiendo de las variables agregadas en los Ejes, nos ayuda a identificar cuál tiene más peso sobre cada punto. En consecuencia, vamos a la pestaña Analytics, desplegamos la opción Sombreado de Simetría y clic en Agregar. Como puedes ver, se han resaltado dos áreas en el gráfico, cada una está asociada a una variable y depende del porcentaje que tiene cada una sobre el área total del gráfico. Por ejemplo, un punto que se encuentra en el área azul, indica que los ingresos fueron mayores a los costos , en cambio, un punto que se encuentre en el área amarilla, nos señala que los costos fueron mayores que los ingresos. Línea de Relación Nos ayuda a entender la relación que tienen las variables en el gráfico y está dada por la línea que mejor se ajuste a los datos, dibujada a partir de la nube de puntos. En ese caso vamos a dar clic en Agregar para esbozarla en la visualización.
    • 593. Quiere decir que entre más cercanos se encuentren los puntos a la línea, las variables estarán más relacionadas.
    • 594. .
    • 595. CAPÍTULO 23 Al finalizar el presente capítulo tú aprenderás: ▪ Para qué sirven los Gráficos de Seguimiento ▪ Cuáles son los Gráficos de Seguimiento ▪ Características particulares de cada visualización ¡No todo es análisis!, una de las falencias más marcadas en Microsoft Excel es la falta de visualizaciones diseñadas específicamente para monitorear los datos, por eso, debemos recurrir a infinidad de trucos que nos permiten tomar un gráfico preestablecido y transformarlo en uno de seguimiento, aunque no todo es malo, en Power BI Desktop ya contamos con un “equipo de visualizaciones” creadas exclusivamente para vigilar variables importantes de negocio y en el presente capítulo hablaremos de ellas. Los gráficos de seguimiento fueron creados para vigilar o monitorear una variable importante para el negocio y dado el caso alertarnos si el estado en el que se encuentra es bueno o malo. Estas visualizaciones son ideales para representar indicadores o métricas, porque en algunos casos, podemos configurar niveles de referencia para comparar el resultado.
    • 596. ▪ Medidor ▪ Tarjeta ▪ Tarjeta de Varias Filas ▪ KPI Medidor Esta visualización es similar al velocímetro de un auto, es media circunferencia que se va llenando a medida que crece la variable, y además podemos establecer un límite a sobrepasar, dado como una Línea. Aplicación ▪ Seguimiento de Datos ▪ Monitorear y comparar Objetivos Creación 1. Insertar el Medidor, dando clic sobre el icono en el panel de visualizaciones
    • 597. 2. Configurar Campos o Medidas en las Áreas de Colocación del Medidor Para empezar, lleva la medida Ingresos Totales a Valor. Luego, vamos a crear dos medidas, la primera la llamaremos Valor Mínimo y será una constante con un valor de 100,000, y la segunda la nombramos Valor Máximo con un valor de 5,000,000. Medidor
    • 598. Luego, arrastramos la medida con el número más pequeño al área de colocación Valor Mínimo, y la medida con el número mayor, a Valor Máximo.
    • 599. En la figura anterior puedes notar que ahora han cambiado los niveles donde inicia y finaliza el gráfico. Después, vamos a definir el objetivo que queremos alcanzar para representarlo en el medidor, por esta razón, creamos una medida constante con un valor de 4,000,000 y la llevamos al área de colocación Valor Destino. Configuración Adicional 3. Otra manera de conformar el gráfico es llevar únicamente la medida Ingresos Totales al área de colocación Valor y después configurar manualmente los valores mínimo, máximo y destino, en las opciones del Eje Medidor de la Pestaña Formato
    • 600. Diseño y Personalización 4. En la pestaña Formato, podemos modificar el diseño de los elementos que componen el Medidor En la opción Colores de Datos, cambiamos el color del relleno, así como el Destino que tiene la visualización.
    • 601. Para cambiar las cifras del valor que aparece en el centro del medidor referente al estado actual, debes ir a la opción Valor del Globo y reajustamos la configuración preestablecida. Tarjeta Es una “Cajita de Información” que muestra un único valor, independiente de si agregamos un Campo o Medida, es ideal para mostrar datos importantes o vigilar un indicador. Aplicación ▪ Seguimiento de Datos ¡Advertencia! Ninguno de los Gráficos de Seguimiento tiene opciones en la pestaña Analytics.
    • 602. Creación 1. Dar clic en el icono de Tarjeta en el Panel de Visualizaciones 2. Agregar un solo campo o una sola medida al Área de Colocación Campos Diseño y Personalización 3. En la pestaña Formato puedes modificar la apariencia de la Tarjeta En Etiqueta de Datos vamos a cambiar las cifras que muestra la visualización, y el color del dato. Tarjeta
    • 603. Tarjeta de Varias Filas Es una “Caja de Información” que nos permite mostrar diferentes valores discriminados en filas a diferencia de la Tarjeta, si es posible visualizar varios campos o medidas. Aplicación ▪ Seguimiento de Datos ▪ Comparación ¡Advertencia! La Tarjeta solo deja llevar un Campo o una Medida al área de colocación.
    • 604. Creación 1. Seleccionar la Tarjeta de Varias Filas 2. Mover Columnas y/o Medidas al Área de Colocación Campos Por ejemplo, lleva la columna País y la medida Ingresos Totales a Campos. Tarjeta de Varias Filas
    • 605. En la figura anterior, puedes ver que la Tarjeta con Varias Filas muestra los valores correspondientes al campo y medida que han sido añadidas, agrupados por filas. Si llevamos otra columna, la agrupación continua … KPI Es una “Caja de Información” evolucionada, porque nos brinda la posibilidad de hacer seguimiento a una métrica o indicador con respecto a un objetivo que deseamos alcanzar y también podemos mostrar cambios a través del tiempo. Nota Gráfico personalizado recomendado Card With States by OKViz.
    • 606. Aplicación ▪ Seguimiento de Datos ▪ Comparación Creación 1. Seleccionar la visualización KPI 2. Mover Columnas y/o Medidas al Área de Colocación Campos Para este escenario, vamos a crear una visualización de tipo KPI que nos indique si los ingresos del año actual superaron a los del año anterior. Por esta razón vamos a utilizar las medidas Ingresos Totales y PY Ingresos que hace referencia a los ingresos, pero del año anterior, si quieres recordar cómo se creó puedes ir al Capítulo 19 del libro. Con esto en mente, llevamos la medida Ingresos Totales a Indicador, el campo Mes Número de la Tabla de Calendario a Eje de Tendencia y PY Ingresos a Objetivos de Destino. KPI
    • 607. Aunque el KPI muestra datos y aparentemente se ve bien, debemos tener cuidado porque los valores son erróneos, ya que las medidas están agregando los datos para todos los años, es decir, están haciendo la suma desde el año 1999 hasta 2015 y nosotros queremos compararlos uno a uno. Para resolver el problema, debemos insertar una segmentación de datos, lo que limitara el cálculo de las medidas en el KPI para el año seleccionado, en ese orden de ideas creamos un “Slicer” con el campo Año de la Tabla de Calendario, en el Capítulo 25 hablaremos de esta visualización que nos permite filtrar datos.
    • 608. Si elegimos un año en la Segmentación de Datos, ahora si el KPI nos revelará los valores correctos, porque como ya te lo mencionamos, se restringe el cálculo de las medidas para el año correspondiente. La visualización KPI señala que no se ha cumplido el objetivo de superar los ingresos del 2014, es decir, que los ingresos del año 2015 están por debajo un 26.39% con respecto al año anterior, por eso el gráfico se vuelve rojo. El área que aparece detrás nos marca los ingresos en cada mes para el 2015. Indicador Objetivo de Destino Eje de Tendencia
    • 609. Al cambiar el año en el Slicer, se revela nueva información en el KPI. En la imagen anterior, se evidencia que en el año 2014 superamos los ingresos del año 2013 en un 36.66% y por eso el KPI toma un color verde. Diseño y Personalización 3. En la Opción Codificación de Color de la pestaña Formato, puedes cambiar el código de color del gráfico
    • 611. CAPÍTULO 24 Cunado finalices con el capítulo tú aprenderás: ▪ Para qué sirven los Gráficos Geográficos ▪ Cuáles son los Gráficos Geográficos ▪ Características particulares de cada visualización Para mejorar la estrategia de nuestra compañía es importante ver los datos desde diferentes perspectivas, porque existen visualizaciones que nos revelan información que de otra manera seria más difícil de identificar, en Power BI Desktop contamos con una categoría de gráficos que nos permite mostrar y comparar información sobre diferentes tipos de mapas, todo para entender que está pasando con una variable asociada a una ciudad, país o un lugar en específico. Esta categoría de objetos visuales tiene como misión principal localizar datos sobre un mapa para comparar valores según donde se encuentren, brindándonos así una perspectiva más “realista” sobre lo que está pasando con una métrica. Lo interesante de esta categoría es que contamos con diferentes tipos de mapas que podemos utilizar según el escenario y la información que deseamos revelar.
    • 612. ▪ Mapa ▪ Mapa Coroplético ▪ Mapas ArcGIS para Power BI Mapa Esta visualización permite esbozar circunferencias sobre un mapa según su ubicación y el tamaño que toma cada una depende del valor correspondiente. Aplicación ▪ Geolocalización ▪ Comparación entre Categorías Creación 1. Insertar la visualización Mapa en el Lienzo Mapa
    • 613. 2. Agregar Campos y medidas en las áreas de colocación del Mapa Por ejemplo, mueve el campo País de la tabla Pedidos a Ubicación y la medida Ingresos Totales a Tamaño. Para optimizar el gráfico, debemos estar seguros de que el campo agregado a Ubicación, se le ha asignado la Categoría de Datos: País o Región. Si aún no lo has hecho, simplemente seleccionas la columna País en el Panel de Campos, vas a la pestaña Modelado y en el grupo Propiedades defines la Categoría de Datos. Si has asignado correctamente la Categoría de Datos, aparecerá un icono con forma de planeta cerca al nombre de la columna, en el Panel de Campos.
    • 614. En la Figura 24.2, puedes ver que cada dato esta representado como una “Burbuja” y el diámetro está asociado a los ingresos. Para Argentina, tenemos la esfera más grande pues allí fue donde hicimos más ventas con respecto a los demás países. Si llevas un campo a Leyenda, las circunferencias se dividen de acuerdo con los ítems que tiene la columna, para nuestro ejemplo, arrastramos el campo Tipo de Compra de la tabla Pedidos. Como ya te lo mencionamos, las circunferencias se están dividiendo según el tipo de compra. Diseño y Personalización 3. En la pestaña Formato puedes cambiar el tamaño de todas las circunferencias, así como el estilo del mapa
    • 615. Para aumentar proporcionalmente el diámetro de todas las burbujas, vas a la pestaña Formato, opción Burbujas y en Tamaño aumentas el porcentaje. Puedes personalizar el mapa cambiando su apariencia, en la opción Estilos de Mapa se encuentra una lista de temas que puedes utilizar, por defecto está configurado el denominado Carretera, cámbialo por el tema Aéreo para obtener un mapa más “realista” .
    • 616. Mapa Coroplético Es un tipo de mapa que permite colorear regiones de acuerdo con la intensidad de una variable en esa ubicación, es decir, que entre más oscura una región, allí fue más grande la variable. Aplicación ▪ Geolocalización ▪ Comparación entre Categorías Creación 1. Añadir el Mapa Coroplético dando clic en el icono del panel de visualizaciones ¡Advertencia! Ninguno de los Mapas de Power BI cuenta con opciones en la pestaña Analytics. ¡Advertencia! Debes estar conectado a Internet para que los Mapas funcionen correctamente, de otra manera, no se visualizan los datos. Mapa Coroplético
    • 617. 2. Añadir Columnas y Medidas en las áreas de colocación de la visualización Nuevamente, mueve la columna País a Ubicación y la medida Ingresos Totales a Saturación de Color. El país con mayores ingresos tiene un color más oscuro (Argentina), mientras que los países con menores ingresos tienen una saturación de color más clara. Y es fácil identificar en cuales no tenemos participación de mercado porque aparecen sin ningún relleno. Diseño y Personalización 3. En la pestaña Formato podemos cambiar la Escala de color, así como el estilo del mapa Con la visualización seleccionada, nos dirigimos a la pestaña Formato y damos clic en Colores de Datos y allí establecemos la nueva paleta de colores.
    • 618. Después, te vas a dirigir a la opción Estilos de Mapa y eliges el tema Aéreo. En el mapa se ve claramente que en Chile y Uruguay obtuvimos los ingresos más bajos, y en Bolivia y centro américa no hemos vendido ningún producto.
    • 619. Mapas ArcGIS para Power BI Los Mapas ArcGIS son una categoría especial de mapas que pueden llevar a otro nivel nuestro análisis, porque además de geolocalizar los datos y visualizarlos para compararlos, es posible agregar capas de referencia, modificar el tema por un catálogo más extenso, ver tiempos de recorrido e incluso tomar datos públicos para verlos junto con nuestro modelo. Aplicación ▪ Geolocalización ▪ Comparación entre Categorías Creación Si el icono de los Mapas ArcGIS no aparece en el panel de visualizaciones, es necesario habilitarlo, por esta razón, vamos a la pestaña Archivo, Opciones y Configuración y damos clic en Opciones.
    • 620. En el cuadro de diálogo, vamos a la pestaña Seguridad, habilitamos la opción Usar ArcGIS Maps For Power BI y damos clic en Aceptar, como consecuencia, aparece el icono en el Panel de Visualizaciones. 1. Dar clic en el icono correspondiente a los mapas ArcGIS ArcGIS Maps For Power BI
    • 621. 2. Agregar campos País y medidas Ingresos Totales en las áreas de colocación del Mapa Una primera impresión nos hace pensar que son similares a la visualización Mapa, aunque a medida que avancemos vas a darte cuenta de que esto no es del todo cierto. En la parte superior derecha se encuentra el botón Más Opciones, al abrirlo se listan una serie de acciones que podemos hacer sobre el objeto visual, seleccionamos Editar.
    • 622. Automáticamente, la visualización se coloca en Modo Expandido y aparecen en la parte superior, una lista de opciones que nos permiten llevar a otro nivel nuestro mapa. Mapa Base Aquí modificamos el aspecto general del mapa, por ejemplo, si queremos una vista con calles y direcciones o simplemente cambiar el color. Para nuestro escenario, establecemos como mapa base el denominado Calles. Opciones de Mapa
    • 623. Tipo de Ubicación En Tipo de Ubicación definimos como queremos representar los datos en el mapa, ya sea como Fronteras que es la configuración por defecto o Puntos. Fronteras Dependiendo del Tipo de Ubicación elegida, cambian los temas que podemos utilizar en el mapa, para las Fronteras contamos con dos, Solo Ubicación que nos indica en que lugares se encuentran nuestros datos sin importar la magnitud de la variable:
    • 624. Y Color que resalta a través de la intensidad, cuales tuvieron menores y mayores valores: Estilo de Símbolo En esta pestaña configuramos todo lo relacionado con el aspecto del Tipo de Ubicación elegida, para Fronteras, es posible modificar el color del gráfico, la transparencia y en general hacer cambios cosméticos.
    • 625. Análisis En esta pestaña encontramos una lista de posibilidades para ir más allá en nuestros mapas ▪ Chinchetas: Sí lo sabemos, ese nombre no es tan claro, pero su función si, al dar clic sobre esta característica podemos agregar direcciones y marcarlas con un símbolo en el mapa. Para hacer una prueba, vamos a dar clic en Chinchetas y agregamos las siguientes direcciones en el cuadro de búsqueda: Calle 100 2, El Bagazal, Chapinero, Bogotá, D.C., COL y Calle 45A 20 67, Palermo, Teusaquillo, Bogotá, D.C., COL Para ver las ubicaciones con mayor precisión, utilizamos Zoom en el gráfico haciendo scroll o dando clic en el botón de acercar en el mapa.
    • 626. ▪ Tiempo de Recorrido: en esta opción de análisis debemos elegir dos ubicaciones o más, para crear un radio o establecer un tiempo de recorrido Si quieres establecer una ruta de acuerdo con las dos ubicaciones y un tiempo definido, vamos a dar clic en Tiempo Recorrido, elegimos las ubicaciones y luego definimos si queremos ver el tiempo de recorrido o el radio, finalmente clic en Aceptar.
    • 627. En ambos casos, tú debes especificar el radio o el tiempo de recorrido que quieres resaltar en el mapa.
    • 628. ▪ Capa de Referencia: Aquí podemos tomar datos públicos y contrastarlos con nuestro conjunto de datos En ese caso, vamos a agregar el promedio de Ingreso per Capita en el 2016 para Estados Unidos. Clic en Capa de referencia, buscamos la capa denominada 2016 USA Per Capita Income y Agregar.
    • 629. Al seleccionar un estado de la capa, aparece la información asociada. ▪ Infografía: esta opción nos permite agregar cajas de información sobre el mapa.
    • 630. Puntos Al cambiar el Tipo de Ubicación por puntos se modifica la representación en el mapa. Así como los temas que podemos establecer para la visualización. ▪ Solo Ubicación: Únicamente muestra dónde están los datos
    • 631. ▪ Mapa de Calor: Revela donde hubo mayor actividad dada la ubicación de los datos ▪ Color: Asocia la intensidad con el valor que toma la variable
    • 632. ▪ Clustering: Cuenta y agrupa los puntos en el mapa según su ubicación Puedes combinar las opciones que hemos repasado aquí para obtener el mapa deseado, no olvides estar conectado a internet porque de otra forma no funcionaran las visualizaciones.
    • 633. CAPÍTULO 25 Al finalizar el capítulo tú aprenderás: ▪ Para qué sirven los Gráficos de Segmentación ▪ Cuáles son los Gráficos de Segmentación ▪ Características particulares de la Segmentación de Datos Una de las características más sobresalientes en Power BI es su dinamismo para cambiar la perspectiva de un reporte, para hacer esta tarea contamos con una visualización diseñada específicamente para ayudar a cambiar todo lo que está a su alrededor, te hablamos de la segmentación de datos. Los Gráficos de Segmentación tienen como misión principal restringir los valores que se encuentran en todas las visualizaciones de una página, es decir, que todos los datos que se muestren van a estar asociados a un ítem seleccionado. ▪ Segmentación de Datos
    • 634. Este objeto filtra todas las visualizaciones que se encuentren en una sola página del reporte, quiere decir, que por sí solo no tiene mayor utilidad y su potencial radica en controlar lo que estamos viendo en otros gráficos. Aplicación ▪ Aplicar Filtros Creación 1. Elegir el icono de Segmentación de Datos en el Panel de Visualizaciones para agregarlo en el lienzo 2. Agregar un Campo en al área de colocación del gráfico Para este ejemplo, vas a llevar la columna País a Campo. Segmentación de Datos
    • 635. Automáticamente, aparece una lista con casillas que podemos seleccionar, aunque por sí solo no es de mucha ayuda. Para ver cómo trabaja vamos a agregar dos Gráficos de Barras Agrupadas, para el primero la configuración es el campo País al Eje y la medida Ingresos Totales a Valor, en el segundo, la columna Categoría de Descuento al Eje y la medida Ingresos Totales a Valor, por ende, obtenemos el siguiente conjunto de visualizaciones en la página del reporte. ¡Advertencia! La Segmentación de Datos trabaja con una sola columna y no admite Medidas.
    • 636. Al seleccionar en la Segmentación Argentina, los gráficos cambian, mostrándonos únicamente los valores para ese país. Después, observemos los ingresos para otro país, seleccionando Brasil. En ambos casos, se restringen los cálculos, mostrando los valores únicamente para los países elegidos. Si mantienes presionada la tecla Ctrl puedes escoger dos ítems o más en la segmentación.
    • 637. Luego de establecer los países a filtrar como Argentina y Brasil en la Segmentación de Datos, puedes ver en las visualizaciones los datos para ambos países. Configuración Adicional 3. Es posible romper la regla que nos dice que una Segmentación de Datos solo trabaja a nivel de página y no permite filtrar objetos visuales alojados en otras páginas del reporte, utilizando Segmentaciones de Sincronización. Imagina el siguiente escenario en el que tenemos tres páginas en el archivo de Power BI y cada una cuenta con visualizaciones diferentes: ¡Advertencia! La Segmentación de Datos filtra todas las visualizaciones que se encuentran en una página y no en todo el reporte.
    • 639. Según lo que sabes hasta ahora, si quisieras filtrar cada una de las paginas por país, tendrías que crear en tres ocasiones diferentes, la segmentación de datos, una para cada página, aunque gracias a la opción Segmentaciones de Sincronización podemos configurar las páginas que se van a afectar al seleccionar elementos en un “Slicer” y dado el caso que aparezca en las páginas sin necesidad de crearlo. Para configurar esta característica, seleccionamos la Segmentación de Datos, después vamos a la pestaña Vista, grupo Mostrar y habilitamos la opción Segmentaciones de Sincronización. Automáticamente, aparece el panel Sincronización de Segmentaciones, aquí establecemos las páginas sobre las cuales el Slicer va a tener control.
    • 640. ▪ Sincronizar: Si habilitamos esta opción, la Segmentación filtrara las visualizaciones de esa página, sin mostrar el objeto visual allí mismo ▪ Visible: Clona el Slicer en la Página para la cual fue habilitada, sin necesidad de crearlo de manera convencional. Con esto en mente habilitamos Visible y Sincronizar para todas las páginas, con lo cual, se clonará el Slicer en las tres páginas y trabajaran en sincronía dichos objetos visuales. Visible Sincronizar
    • 641. Diseño y Personalización 4. Al acercar el cursor sobre una Segmentación de Datos, aparece un botón en forma de flecha, casi invisible, que nos permite cambiar el diseño
    • 642. Si hemos creado la segmentación con un campo de tipo texto, solo contamos con dos opciones: Lista, que es el estilo por defecto, y Menú Desplegable. Cuando añadimos una segmentación de datos con un campo de tipo numérico, contamos con más opciones: Lista, Menú Desplegable, Entre, Menor o Igual que y Mayor o Igual que. Tipo de Segmentación
    • 643. Orientación Si definimos el Tipo de Segmentación de Datos como Lista, podemos modificar la Orientación y por ende el diseño. Con el Slicer seleccionado vamos a la pestaña Formato, desplegamos el grupo General y cambiamos la orientación Vertical por Horizontal. Al establecer la orientación Horizontal, cambia el diseño de la Segmentación de Datos mostrando ahora los elementos en “Baldosas” que podemos elegir.
    • 644. ¡Advertencia! La Segmentación de Datos no cuenta con opciones en la Pestaña Analytics. Nota En la pestaña Formato, grupo Controles de Selección, puedes habilitar la selección múltiple o mostrar en la segmentación, una opción para Seleccionar todos los elementos.
    • 645. CAPÍTULO 26 Cuando termines la lectura de este capítulo tú aprenderás: ▪ Para qué sirven las visualizaciones Matriz y Tabla ▪ Características particulares de cada visualización Hasta este punto hicimos un recorrido importante por los diferentes tipos de objetos visuales que existen en Power BI, aunque aún no hemos hablado de dos objetos extremadamente versátiles. La Matriz y la Tabla son bastante flexibles porque independientemente de la complejidad del cálculo o medida que hagamos utilizando el lenguaje DAX, los resultados se pueden presentar allí sin ningún problema y su utilidad en casi cualquier escenario las hacen imprescindibles en nuestro arsenal de visualizaciones. Para que lo veas de un modo familiar, una Matriz de Power BI es el equivalente a una Tabla Dinámica de Excel, nos permite resumir, analizar, agrupar, explorar y presentar datos desde diferentes perspectivas. Creación 1. Agregar una matriz dando clic sobre su icono en el panel de visualizaciones
    • 646. 2. Situar campos y medidas en las áreas de colocación de la Matriz De la tabla Pedidos, llevamos el campo País a Filas y la medida Ingresos Totales a Valores. Como consecuencia, la Matriz muestra los ingresos correspondientes para cada país. Ahora, arrastra el campo Tipo de Compra a Columnas. Matriz
    • 647. Como resultado, la matriz ahora muestra los ingresos para cada País discriminando el tipo de compra, si intercambiamos las columnas por filas, el resultado sigue estando bien, lo único que se modifica es la estructura del reporte. Si volvemos a la configuración inicial y agregamos otra medida, por ejemplo, Costos Totales, los datos se calculan sin ningún problema.
    • 648. ¿Pero qué pasa si ahora movemos el campo que está en el área de colocación Columnas a Filas? En la parte superior izquierda aparecen unos botones que nos permiten ver por niveles los datos, es decir que podemos pasar al siguiente nivel o incluso mostrar toda la jerarquía.
    • 649. Configuración Adicional 3. Si necesitas analizar los datos mostrados en la Matriz, contamos con una característica bien interesante, te hablamos de Formato Condicional Para agregarlo contamos con dos caminos, el primero consiste en ir a la pestaña Campos del Panel de Visualizaciones, y en la medida para la cual queremos ver el Formato Condicional, damos clic sobre la flecha de opciones que aparece cerca al nombre, en consecuencia, aparece una lista, allí elegimos Formato Condicional y establecemos la regla: Escalas de Color de Fondo. Nota Es posible hacer Drill Down en la mayoría de las visualizaciones, aunque debes tener cuidado con los niveles a mostrar.
    • 650. Automáticamente aparece el cuadro de diálogo de Formato Condicional, en el cual podemos personalizar la regla. Opciones
    • 651. Si habilitas la casilla Color Según las Reglas, podrás configurar y agregar la cantidad de niveles que desees para el formato condicional.
    • 652. Si activamos la casilla Divergente, aparece un nivel intermedio que podemos definir. Para finalizar, clic en Aceptar, como consecuencia, se muestra el formato condicional sobre la matriz.
    • 653. Al pasar al siguiente nivel de la jerarquía, el formato condicional cambia, pero se mantiene para los datos presentes en ese momento en la matriz. Para activar el formato condicional por otro camino, puedes ir a la pestaña Formato y en los diversos grupos que existen, se encuentra una opción con este nombre, vamos a desplegarla, allí definimos la medida y el tipo de formato condicional a agregar. Para este ejemplo, elegimos la medida Costos Totales y activamos Escalas de Color de Fuente. Medidas en la Matriz Reglas de Formato Condicional Nota Al dar clic en Controles Avanzados aparece el cuadro de diálogo de Formato Condicional para personalizar la regla.
    • 654. Como consecuencia, tenemos dos reglas de formato condicional en la Matriz una para ingresos y otra para costos. Si no es muy clara la Escala de Color de Fuente para los Costos Totales, puedes desactivarla y cambiarla por la regla Barra de Datos.
    • 655. Para optimizar la regla, damos clic en Controles Avanzados para abrir el Cuadro de Diálogo y allí establecemos el valor mínimo como el número 38,000 y finalmente damos clic en Aceptar.
    • 656. Diseño y Personalización 4. En la Pestaña Formato, grupo Estilo de Matriz puedes cambiar el aspecto de la visualización. Esta visualización a diferencia de la Matriz configura los datos en un formato tabular y solo podemos agregar campos en un área de colocación. Creación 1. Dar clic sobre el icono de Tabla Tabla
    • 657. 2. Adicionar Columnas y Medidas en el área de colocación valores Primero, movemos el campo País y la medida Ingresos Totales a Valores A simple vista parece la visualización Matriz, aunque si agregamos el campo Tipo de Compra, las diferencias empiezan a marcarse.
    • 658. En la figura anterior, se ve claramente que el conjunto de datos tiene un Formato Tabular. Configuración Adicional 3. Para esta visualización, también podemos aplicar formato condicional ¡Advertencia! Ninguna de las visualizaciones del presente capítulo tiene opciones en la pestaña Analytics.
    • 659. CAPÍTULO 27 Cuando termines la lectura de este capítulo tú aprenderás: ▪ Como agregar un Gráfico Personalizado ▪ Configuración de Gráficos Personalizados ▪ Gráficos Personalizados recomendados A pesar de contar con un catálogo de gráficos bastante extenso y que aplican para casi cualquier escenario es muy probable que te surja la siguiente pregunta ¿Qué hacer si la visualización que necesito no se encuentra en el Panel de Visualizaciones? En Microsoft Excel tendrías que crearlo a partir de los gráficos que ya existen, pero esto no es una tarea fácil, en cambio, en Power BI la respuesta tiene nombre propio: Gráficos Personalizados, una característica que permite agregar más objetos visuales a nuestro arsenal. Es una opción que tiene el panel de visualizaciones y consiste en importar de la web, Objetos Visuales prediseñados para utilizar en nuestros reportes. Lo más interesante es que esta opción está en constante actualización por lo que la lista de posibilidades crece.
    • 660. ¿Como Agregar un Gráfico Personalizado? Descargar Desde la Web Primero debemos a ir a nuestro navegador y buscar la página de Visualizaciones Personalizadas para Power BI en el Office Store Luego, vas a encontrar una visualización que se ajuste a tus necesidades, por ejemplo, en la primera página está el objeto visual denominado Bullet Chart by OKViz.
    • 661. Para agregarlo a Power Bi Desktop, damos clic en Obtenerla Ahora, automáticamente aparece una ventana en la cual debes escribir una dirección de correo electrónico corporativa o educativa, posteriormente, clic en Iniciar Sesión. Después de Iniciar Sesión, el navegador te redirecciona a la ventana de descarga de la visualización, por esta razón damos clic Open in Power BI para iniciar la descarga del objeto visual.
    • 662. Con la visualización descargada en nuestro computador, es momento de agregarla a Power BI. Por esta razón, vamos a volver a la interfaz de Power BI Desktop y en el Panel de Visualizaciones encontraras la opción Importar un Objeto Visual Personalizado. Al dar clic sobre Importar un Objeto Visual Personalizado, aparecerán distintos caminos para agregar la nueva visualización, como nosotros la descargamos previamente, elegimos Importar desde Archivo. En la ventana emergente, definimos la ruta donde se ha descargado el archivo correspondiente, lo seleccionamos y clic en Abrir. Importar un Objeto Visual Personalizado
    • 663. El resultado de este proceso se evidencia en el Panel de Visualizaciones, porque como puedes ver, ahora hay un nuevo icono correspondiente al objeto visual Bullet Chart by OKViz
    • 664. Importar desde el Market Place Para descargar una nueva visualización directamente desde Power BI, vamos a dar clic en Importar un Objeto Visual Personalizado y en este caso seleccionamos Importar de Marketplace. Como consecuencia aparece la ventana del Marketplace.
    • 665. Una vez aquí, vas a buscar una visualización denominada Thermometer by MAQ Software y clic en Agregar. Como consecuencia, aparece un nuevo icono en el Panel de Visualizaciones de Power BI correspondiente a dicho objeto visual. ¡Advertencia! Si no has iniciado sesión, Power BI te la solicitara para abrir la ventana Marketplace. Nota También puedes abrir el Marketplace en la Pestaña Inicio, grupo Objetos Visuales Personalizados.
    • 666. El Bullet Chart es una visualización utilizada para contrastar un valor con respecto a una o varias metas que deseamos alcanzar, su composición es una combinación de un gráfico de barras, un gráfico de línea y un gráfico de termómetro, fue creado por Stephen Few con el principal objetivo de mostrar la mayor cantidad de información en un espacio pequeño. Aplicación ▪ Seguimiento de Datos ▪ Comparación Creación 1. Importar la Visualización desde el Marketplace a Power BI Desktop 2. Dar clic sobre el icono correspondiente en el panel de visualizaciones
    • 667. 3. Agregar Campos y Medidas en las áreas de colocación Luego de importar el nuevo Objeto Visual, vas a darte cuenta de que tienen el mismo principio que las visualizaciones nativas, debes arrastrar campos y medidas en las áreas de colocación del gráfico, en la pestaña Campos. Bullet Chart by OKViz Áreas de Colocación
    • 668. En este ejemplo, vamos a crear una visualización de tipo Bullet Chart para que nos indique si los ingresos del año 2015 superaron una meta establecida por nosotros y que, además, nos permita comparar el valor con los ingresos del año anterior, como consecuencia, creamos una medida con una constante denominada Objetivo con un valor de 350,000. Luego, arrastramos las medidas Ingresos Totales a Value, PY Ingresos a Comparision Value y Objetivo a Targets. Para que el Bullet Chart muestre valores correctos, vamos a agregar una Segmentación de Datos con el campo Año de la tabla de Calendario y seleccionamos 2015, de otra manera, las medidas
    • 669. Ingresos Totales y PY Ingresos calcularán los ingresos para todos los años y el Bullet no mostrará la información solicitada. Diseño y Personalización 4. Al igual que las visualizaciones por defecto, es posible modificar el aspecto del Bullet Chart en la pestaña Formato.
    • 670. Como su nombre lo indica, esta visualización tiene forma de termómetro y nos permite comparar una métrica o indicador con respecto a una meta que queremos alcanzar, y a medida que el valor aumenta, el termómetro se ira llenando. Aplicación ▪ Seguimiento de Datos ▪ Comparación Creación 1. Importar la visualización desde el Marketplace 2. Dar clic sobre el icono correspondiente, para agregar la visualización al lienzo 3. Agregar campos a las distintas áreas de colocación Thermometer by MAQ Software
    • 671. Para ver cómo trabaja el Termómetro, vamos a recrear el escenario anterior, una visualización que nos indique si hemos alcanzado una meta para el año 2015. Como consecuencia, arrastramos el campo Ingresos Totales a Temperature y la medida Objetivo a Target Value. Para que el objeto visual muestre los valores correspondientes a 2015, no olvides agregar una segmentación de datos y elegir dicho año.
    • 672. Configuración Adicional 4. En la Pestaña Formato, grupo Configurations, puedes establecer el valor mínimo y máximo que se mostrará en el Termómetro Esta visualización al igual que las anteriores, nos permite comparar un valor o indicador con respecto a una meta, lo más interesante es que podemos agregar niveles, y el objeto visual tiene la apariencia de un medidor de automóvil. Aplicación ▪ Seguimiento de Datos ▪ Comparación
    • 673. Creación 1. Importar el objeto visual desde el Marketplace 2. Dar clic sobre el icono de la visualización Tachometer
    • 674. 3. Configurar medidas y campos en las áreas de colocación Para ver cómo funciona el Tacómetro, emularemos el escenario anterior, es decir que vamos a crear una visualización que nos permita verificar el objetivo de ingresos para el año 2015.Por esta razón, movemos la medida Ingresos Totales a Value y la medida Objetivo a Target Value. Después, vamos a configurar los niveles del tacómetro creando dos medidas, la primera multiplicara la medida Objetivo por 0,5, quiere decir que este nivel señalará el 50% de la meta, la segunda, será una multiplicación del Objetivo por 0,9, que como ya lo habrás deducido señalara el 90% de la meta.
    • 675. Posteriormente, llevamos las medidas 50%Objetivo a Range2 Start Value y 90%Objetivo a Range3 Start Value. Para que la visualización muestre datos correctos, agregamos una Segmentación de Datos y filtramos el año 2015. Recuerda que hasta este punto la medida calcula los valores para todos los años.
    • 676. Diseño y Personalización 4. En la pestaña Formato, puedes ajustar el color de los niveles
    • 678. A continuación, te vamos a dar una lista de Gráficos Recomendados, la idea es que los explores por tu cuenta debido a que son bastante útiles en algunos escenarios. ▪ Synoptic Panel by OKViz ▪ Sparkline by OKViz ▪ Smartfilter by OKviz ▪ Candlestick Chart ▪ Box and Whiskers ▪ Chiclet Slicer ▪ Bullet Chart (Microsoft) ▪ Gantt ▪ Power KPI
    • 679. CAPÍTULO 28 Cuando termines la lectura de este capítulo tú aprenderás: ▪ Consejos de Diseño para Visualización de Datos El siguiente capítulo es una recopilación de consejos, tips y buenas prácticas para la visualización de datos y está basado en el trabajo de Stephen Few, experto y pionero en esta materia. Si quieres profundizar en esta temática te recomendamos el libro Information Dashboad Design del mismo autor. Para lograr una visualización que transmita la información de manera efectiva no existe una regla general, lo más importante como dice Stephen Few es “Mantenerlo Simple”, aunque podemos seguir ciertos parámetros para lograr este objetivo: ▪ Claridad ▪ Consistencia ▪ Legibilidad ▪ Balance ▪ Transmitir el Mensaje Apropiado ▪ Simplificar el Color
    • 680. Claridad 1. No sobrecargar el gráfico con Formatos innecesarios en las diferentes partes de la visualización 2. Las partes del gráfico no deben llamar la atención del usuario, recuerda que lo principal son los datos 3. EL título y las etiquetas de datos son importantes para darle un contexto a la visualización 4. No utilizar formato en 3D 5. Ordenar los valores del gráfico, ayuda a transmitir información adicional
    • 681. Consistencia 1. Mantener el tamaño uniforme en los diferentes elementos que componen el gráfico 2. Utilizar colores, para agrupar categorías y asociar ítems a través de las distintas visualizaciones.
    • 682. Legibilidad 1. No utilizar Fondos de Relleno 2. El tipo de letra, color, tamaño y orientación deben facilitar la lectura por parte del usuario final
    • 683. Balance 1. La representación visual de los puntos debe ser fácil de leer 2. No sobrecargar el gráfico con elementos innecesarios
    • 684. Transmitir el Mensaje Apropiado 1. Elegir el tipo de gráfico que mejor represente los datos y que transmita el mensaje apropiadamente. 2. En la mayoría de los casos, es recomendable qué el eje inicie desde 0, de esta forma evitamos que se mal interpreten los datos
    • 685. Simplificar el Color 1. Es recomendable utilizar una escala de grises para el color de las visualizaciones, ya que facilita la lectura y dado el caso, es posible resaltar un valor de interés.
    • 687. CAPÍTULO 29 Al finalizar la lectura de este capítulo tú aprenderás: ▪ Cómo configurar la página del reporte ▪ Para que sirve el Panel de Filtros ▪ Que son las interacciones Visuales Para analizar un conjunto de datos desde diferentes perspectivas y encontrar información adicional, puedes utilizar en equipo, las distintas visualizaciones con las que contamos en Power BI Desktop, aunque debes tener en cuenta ciertos aspectos de configuración para sacarle el máximo provecho a esta herramienta. Formato de Página En el capítulo 10 exploramos los distintos elementos de la Interfaz de Power BI Desktop, como podrás recordar, el Lienzo es el lugar donde agregamos las diferentes visualizaciones para representar los datos, y así como los objetos visuales, también podemos personalizarlo. Si das clic sobre el Lienzo, en la pestaña Formato aparecerán las opciones de configuración donde podrás editarlo.
    • 688. ▪ Tamaño de Página: En este grupo modificamos las dimensiones del Lienzo ▪ Información de Página: Aquí establecemos el nombre de la página ▪ Fondo de Página: es posible cambiar el relleno de la Página
    • 689. Para empezar con la construcción de nuestro reporte, dejamos la configuración de la página por defecto. Opciones de una Visualización Después, agregamos un Gráfico de Columnas Agrupadas, llevando el campo Categoría de Descuento al Eje y las medidas Ingresos Totales y Costos Totales a Valor. Modo de Enfoque Más Opciones
    • 690. Al seleccionar una visualización, aparecen en la parte superior derecha dos botones que nos permiten interactuar con los gráficos. ▪ Modo de Enfoque: Expande la visualización hasta ocupar todo el tamaño del lienzo ▪ Más Opciones: Tiene una lista de acciones que podemos realizar con los gráficos
    • 691. Exportar Datos: Consiste en exportar los valores numéricos que componen la visualización, en un Archivo CSV. Mostrar Datos: Muestra en la parte inferior del Lienzo, los valores numéricos que componen la visualización, es decir, que nos ayuda a ver el detalle del gráfico Quitar: Elimina la visualización. Destacados: Resalta la visualización en el Lienzo.
    • 692. Ordenar Por: Ordena los puntos del gráfico de acuerdo con la variable elegida y las opciones dependen de los campos y medidas agregadas.
    • 693. Después, vas a agregar las siguientes visualizaciones con la configuración establecida: ▪ Gráfico de Barras Agrupadas: Campo País al Eje, las medidas Ingresos Totales y Costos Totales a Valor ▪ Tarjeta: Vas a crear dos tarjetas, una para la medida Ingresos Totales y otra para la medida Costos Totales ▪ Gráfico de Columnas Agrupadas: el Campo Tipo de Compra al Eje, las medidas Ingresos Totales y Costos Totales a Valor
    • 694. ▪ Gráfico de Líneas: La columna Año de la Tabla de Calendario al Eje y las medidas Ingresos Totales y Costos Totales a Valor ▪ Segmentación de Datos: en este caso, vamos a crear dos Filtros, uno para el campo Año de la Tabla de Calendario y otro para el País
    • 695. Para finalizar, vamos a conformar un reporte con las visualizaciones recién creadas y su estructura es la siguiente: Interacciones Visuales Lo interesante de agregar varias visualizaciones al Lienzo es que todas están conectadas entre sí, por esta razón, si elegimos un punto de una visualización, en las demás, resalta la información
    • 696. relacionada a ese ítem. Por ejemplo, en el Gráfico de Barras Agrupadas, vas a dar clic sobre el punto correspondiente a los ingresos para Argentina. Como puedes ver, se muestra en todas las visualizaciones el porcentaje de Ingresos que corresponden a Argentina, si das clic sobre el mismo punto, el reporte vuelve a su estado original. Este comportamiento aplica para todas las visualizaciones, por esta razón, si eliges un punto de otro gráfico también resaltara los valores correspondientes. Nota Puedes hacer selección múltiple manteniendo la tecla Ctrl presionada.
    • 697. Para cambiar el tipo de interacción de un gráfico con respecto a los demás, primero debes elegirlo, como consecuencia, aparece la pestaña contextual Formato, y allí se encuentra el botón Editar Interacción. Al elegir este comando, aparecerán iconos sobre todas las visualizaciones excepto la que hemos elegido, dichos iconos, son el tipo de interacción que podemos configurar.
    • 698. ▪ Filtro: Como su nombre lo indica filtra los valores, quiere decir que quita del gráfico, los datos que no corresponden con el ítem elegido ▪ Resaltar: Muestra el Porcentaje, realzando el color para los valores correspondientes y es la configuración por defecto ▪ Ninguno: Elimina todo tipo de interacción con respecto a la visualización Filtro Resaltar Ninguno
    • 699. Muestra los Ingresos únicamente para Argentina Resalta los ingresos para Argentina
    • 700. Panel de Filtros Otro método para quitar valores en las diferentes visualizaciones es utilizar los Niveles de Filtro del reporte, en la parte inferior del Panel de Visualizaciones se encuentra esta sección que nos permite configurar que elementos queremos ver en los distintos objetos visuales. No tiene interacción alguna Niveles de Filtro
    • 701. Al elegir una visualización, cambian las opciones del Panel de Filtros. Aquí, podemos configurar el nivel para el cual el filtro tomara acción sin necesidad de agregar una Segmentación de Datos. ▪ Filtros de Nivel Visual: Filtra los valores de una visualización en particular, sin afectar los demás elementos. Al acercar el cursor sobre alguno de los campos o medidas que aparecen en los filtros de nivel visual surge una flecha, al dar clic sobre ella, desplegamos las opciones de filtro para ese campo. Campos y Medias del Gráfico
    • 702. Aquí, podemos optar por Filtro Avanzado, Filtro Básico o Top N, en nuestro escenario definimos Filtro Básico. Para ver cómo trabaja, habilitamos del año 2000 a 2004.
    • 703. Como consecuencia, la visualización muestra únicamente los ingresos y costos para los años establecidos. Si quisieras filtrar un ítem de un campo que no se encuentra en la visualización, lo puedes hacer arrastrando la columna directamente al nivel de filtro visual sin necesidad de ubicarlo previamente en las áreas de colocación del gráfico.
    • 704. Después, repetimos el procedimiento y filtramos la visualización por el código SKU: CB01 ▪ Filtros de Nivel de Página: Filtra todas las visualizaciones que están en la página, respetando el Filtro de Nivel Visual, es decir que, si hay un ítem seleccionado en este primer nivel, no afectara a dicho gráfico Con esto en mente, vamos a llevar el campo SKU de la tabla Pedidos a Filtros de Nivel de Página. Ingresos vs Costos, del año 2000 al 2004 para el producto CB01 Borrar Filtros
    • 705. Posteriormente, elegimos un ítem, por ejemplo, B03, al hacer esta acción todas las visualizaciones de la página muestran la información asociada a ese código de producto, excepto la que ya tenía un filtro a nivel de visualización aplicado. ▪ Filtro de Obtención de Detalle: Aquí podemos configurar otra hoja para que al dar clic sobre un punto, nos envié allí con los datos ya filtrados. Para configurar el Filtro de Obtención de detalle, vamos a agregar una nueva página, independiente al reporte que hemos venido trabajando, para ello, en la pestaña Inicio, grupo Insertar, damos clic sobre el comando Nueva Página.
    • 706. Aquí vamos a crear una sola visualización de tipo Tabla, con los campos Tipo de Compra, País, SKU de la tabla Pedidos, y las medidas Ingresos Totales y Costos Totales. En esta nueva página, con la tabla ya creada, nos dirigimos al Panel de Filtros y agregamos el campo País a Filtros de Obtención de Detalle.
    • 707. Posteriormente, volvemos a la página donde estamos trabajando nuestro reporte de Ingresos Vs Costos, si damos clic derecho sobre algún punto del Gráfico de Barras Agrupadas que contiene el campo País, se despliegan una lista de opciones. Para este caso realizamos la acción sobre el punto Venezuela. En la figura anterior, puedes ver que existe una opción denominada Obtención de Detalles y muestra la Página 1, al seleccionarla nos redirige a la página con la Tabla que recién creamos.
    • 708. Aunque cabe resaltar que la tabla se encuentra filtrada por Venezuela, el mismo país donde dimos clic derecho. Adicionalmente, contamos con un botón que se creó automáticamente y que nos permite volver al Reporte, en ese caso, mantenemos presionada la tecla CTRL y damos clic sobre él para regresar. ▪ Filtro de Nivel de Informe: Permite filtrar todas las páginas de un reporte de acuerdo con un valor establecido, siempre respetando los niveles anteriores.
    • 709. Marcadores Los Marcadores de Power BI, nos permiten guardar “estados” del reporte para que podamos mostrar una vista del informe con tan solo un clic. Para configurarlos, vamos a ir a la pestaña Formato y habilitamos la opción Panel Marcadores. Automáticamente, aparece el Panel de Marcadores en la interfaz de Power BI.
    • 710. Después, nos dirigimos al reporte y establecemos la vista que deseamos compartir, por ejemplo, filtramos el País Argentina y el Año 2015, utilizando las segmentaciones de datos que se encuentran en el informe. Con el estado definido, vamos al Panel de Marcadores y damos clic en el botón Agregar, automáticamente, crea el Marcador 1, asociado al estado que definimos previamente. Para cambiar el nombre del Marcador hacemos doble clic sobre él, y reescribimos su denominación.
    • 711. Para crear otro marcador, cambiamos los filtros del reporte definidos en ambas segmentaciones, en ese caso, seleccionamos el año 2014 y Brasil. Nuevamente, volvemos al Panel de Marcadores y damos clic en Agregar, no olvides renombrarlo.
    • 712. Por último, creamos un marcador para Colombia en el año 2013. Con los marcadores creados, puedes navegar entre ellos dando clic sobre su nombre, y así ver las vistas sin necesidad de utilizar las segmentaciones de datos. Para mostrar los estados de un modo similar a una presentación de Power Point, damos clic sobre la opción Vista en el Panel de Marcadores. Como consecuencia, aparece en la parte inferior de la página, una cinta que nos permite navegar entre los Marcadores del reporte.
    • 714. Preguntas y Respuestas Otra manera de analizar los datos es hablando con ellos, si, aunque parezca una locura, existe una opción en Power BI que nos permite utilizar lenguaje natural para hacer preguntas al informe y que nos responda a modo de visualización. Para activar esta característica, vamos a la pestaña Archivo, Opciones y Configuración, y damos clic sobre Opciones. En la ventana Opciones, nos dirigimos la pestaña Característica de Versión Preliminar y allí, habilitamos Preguntas y Respuestas, clic en Aceptar y reiniciamos Power BI de escritorio.
    • 715. Al abrir de nuevo Power BI, aparece en la pestaña Inicio, grupo Insertar, el botón Hacer una pregunta. Si damos clic sobre dicho comando, aparece en el lienzo un objeto visual con un cuadro de dialogo que nos invita a hacer una pregunta.
    • 716. En el cuadro de dialogo, vamos a preguntar cuáles fueron los ingresos discriminados por Tipo de Compra: Sum of Ingresos by tipo compra. ¡Advertencia! Hacer una pregunta, solo funciona con palabras en Ingles
    • 717. Como respuesta, obtenemos un Gráfico de Barras Agrupadas que nos muestra la información correspondiente. Si quieres profundizar en las palabras y otras características de la funcionalidad de Preguntas y Respuestas, te invitamos a que explores el Apendice C: Lista de Palabras para el Lenguaje Natural. Botones Para facilitar el manejo de nuestro reporte existe un conjunto de elementos que podemos agregar y que permiten al usuario interactuar con los objetos que lo componen. En la pestaña Inicio, grupo Insertar, se encuentra el conjunto de botones que podemos utilizar.
    • 718. Para nuestro informe, agregamos el botón Preguntas y Respuestas. Manteniendo la selección sobre el botón, vamos a ir al Panel de Visualizaciones y allí activamos el grupo Acción, por último, verificamos que el Tipo sea: Preguntas y Respuestas. Con la configuración establecida, el botón ya está listo para funcionar, si quieres activarlo debes mantener Ctrl presionado y dar clic sobre él. Automáticamente, aparece la acción correspondiente, un cuadro que nos permite agregar y guardar Preguntas y Respuestas predefinidas. Preguntas y Respuestas
    • 719. Después, vamos a agregar un botón de tipo Guardar como Marcador.
    • 720. Con el botón seleccionado, volvemos al Panel de Visualizaciones, desplegamos el grupo Acción, y allí establecemos el marcador a mostrar, por ejemplo, Argentina – 2015. Con la configuración del botón establecida, solo queda probarlo, para ello, mantenemos la tecla Ctrl presionada y damos clic sobre él.
    • 721. Para añadir un título a nuestro informe, vamos a ir a la Pestaña Inicio, grupo insertar , y damos clic sobre el Comando Cuadro de Texto. En el cuadro de texto escribimos Ingresos Vs Costos. Como paso final en la creación del reporte, cambiamos la paleta de color de la mayoría de las visualizaciones utilizando el color gris para los ingresos y para los costos, el color rojo.
    • 722. Si quieres compartir el reporte, puedes “subirlo” a Power BI Services dando clic sobre el botón Publicar que se encuentra en la parte superior derecha de la pestaña Inicio en la interfaz, con la sesión ya iniciada. Nota Puedes Activar el Panel de Selección, para ocultar elementos del reporte sin necesidad de eliminarlos
    • 723. Para configurar la vista del reporte en dispositivos móviles, puedes ir a la pestaña Vista, grupo Vista y damos clic sobre Diseño de Teléfono. Como consecuencia, cambia la interfaz para que podamos diseñar la vista en dispositivos móviles.
    • 725. Esta parte contiene tres apéndices bastantes útiles, el primero toda las referencias y bibliografía para complementar y apoyar el aprendizaje, el segundo una utilidad gratuita en la web para las fórmulas DAX y el tercero un resumen de las palabras que podemos implementar en Q&A. EN ESTA PARTE Apéndice A Referencias y Bibliografía Apéndice B DAX Formatter Apéndice C Palabras Claves para Lenguaje Natural
    • 727. Anexo Existen libros que recomendamos para que tengas en tu biblioteca y así fortalecer tu conocimiento en inteligencia de negocios, los títulos a continuación no sólo sirvieron de gran apoyo y referencia a los autores, sino que también te ayudarán a ti a profundizar y seguir indagando sobre este mundo. M is for (Data) Monkey Ken Plus & Miguel Escobar Un libro obligado en la bibliografía para la preparación de datos, este libro es una guía para el manejo y trucos de limpieza de datos con Power Query para Excel. The Definitive Guide To DAX Marco Russo & Alberto Ferrari Es uno de lo mejore libros para el aprendizaje del lenguaje DAX en su totalidad a nivel mundial, enfocado con inteligencia de negocios, modelamiento de datos y análisis. Power Pivot and Power BI Rob Collue & Avichal Singhi Gran libro para aprender Power Pivot, su sencillez y forma amena de abordar la temática lo hacen fácil de comprender, un libro que va desde cero hasta aspectos avanzados.
    • 728. Information Dashboard Design Stephen Few Un libro que enseña las habilidades para el diseño visual que se necesita para crear cuadros de mandos que comuniquen de forma clara y rápida la información que se desea transmitir. Aprendizaje Guiado de Power BI Microsoft La página oficial de Power BI brinda una serie de lecciones de forma escrita y vídeo para aprender los fundamentos de Power BI. El ADN de Power Pivot Miguel Caballero & Fabian Torres Libro sobre la interfaz de Power Pivot en Excel y una guía paso a paso sobre el lenguaje DAX y aplicaciones BI Tablas Dinámicas La Quinta Dimensión Miguel Caballero & Fabian Torres Este libro tiene como objetivo brindar un conjunto de trucos y macros enfocados a tablas dinámicas
    • 729. Anexo El DAX Formatter es una herramienta gratuita creada por el equipo de SQLBI que transforma una expresión DAX en un formato limpio y organizado para su lectura ágil, ampliamente recomendada para los usuarios constantes del lenguaje para el análisis de datos (DAX). Para acceder a ella debemos ir la siguiente página web: https://www.daxformatter.com/ – Interfaz de la Web DAX Formatter Aquí podemos seleccionar el separador de lista Oscuro o claro la interfaz Para ayudar a mejorar este recurso gratuito podemos enviar errores que detectemos cuando lo estemos utilizando Dar formato a código DAX Interfaz simple de web Cuerpo del DAX Formatter, donde se pega la expresión DAX raw
    • 730. – Caso de Uso Pegamos una expresión DAX Clic en FORMAT Las reglas de formato creadas por el equipo de SQL BI pueden ser consultadas aquí: https://www.sqlbi.com/articles/rules-for-dax-code-formatting/
    • 731. Anexo Las siguientes tablas son una recopilación de palabras que reconoce la funcionalidad Q&A de Power BI, clasificadas por categoría. Valores Acumulados o Agregados Acumulados Aggregates Total Total Sum Suma Amount Cantidad - Monto Number Número Quantity Cantidad - Unidades Count Enumerar Average Promedio Most Más - Máximo Least Menos Fewest Algunos Largest Mayor - Grande Smallest Pequeño Highest Superior - Mas Alto Biggest Más Grande Maximum Máximo Max Max Greatest Mayor - Gran Lowest Más Bajo Littlest El Más Pequeño Minimum Mínimo Min Min
    • 732. Comparaciones entre Categorías Conjunciones Lógicas Rangos - Igualdad Comparaciones Comparisions Vs Vs Versus Versus En Comparación con Compared to/Compare with Conjunciones Conjunctions Y And O Or Cada uno de Each of Con With Versus Versus & & Pero But Ni Nor Junto con Along With Además de In addition to Igualdad Equality En In Igual A Equal To = = Después After Es Más que Is More ThaN Entre Between Antes Before
    • 733. Rangos – Diferencias Rangos Range Mayor Greater Más More Más Grande Larger Encima Above Por Encima Over Menos Less Menor Smaller Fewer Menos Abajo Below Debajo Under Al menos At Least No Menos que No Less Than Como Máximo At Most No Más Que No More Than En I n Entre Between En el Intervalo de In The range of Desde From Posterior Later Más Temprana Earlier Cuant Antes Sooner Después After A A t Más Tarde Que Later Than Desde Since Empezando con Starting With Empezando desde Starting From Terminando Con Ending With
    • 734. Rangos – Símbolos Consultas Símbolos > < >= <=
    • 735. Top Comandos de Consulta Query Comands Ordenar Sorted Ordenar Por Sort by Dirección Direction Grupo Group Agrupar Por Group by Por By Mostrar Show Lista de Visualización List Display Dame Give Me Nmbre Name Sólo Just Solamente Only Organizar Arrange Rango Rank Comparar Compare A To Con With En Contra Against Alfabéticamente Alphabetically Ascendente Ascending Descendente Descending Orden Order
    • 736. Fechas Fechas Relativas Top N Top N Superior Top Más Abajo Bottom Elevado Highest Más Bajo - Deficiente Lowest Primero First Último Last Siguiente Next Más Temprano Earliest Más Reciente Newest Más Antiguo Oldest Último Latest Más Reciente Most Recent Fechas Dates Decada Decade Año Year Trimestre Quarter Mes Mont Semana Week Día Day
    • 737. Relación y Frecuencia Fechas Relátivas Relatives Dates Hoy Today Ahora Mismo Right Now Hora Actual Current Time Ayer Yesterday Mañana Tomorrow El Presente The current Siguiente Next Próximo The Coming Último Last Anterior Previous Hace Ago Antes de Ahora Before Now Mas Pronto Que Sooner Than Después After Más Tarde Que Later Than Desde/De From A A t En On Desde Ahora From Now Después de Ahora After Now En el Futuro In The Future Pasado Past Dentro Within En I n Encima Over N Días Atrás N Days Ago N Días a Partir de Ahora N Days From Now Una Vez Once Dos Veces Twice
    • 738. Pronombres Artículos Relación - Frecuencia Relation / Frequency Cuando When Dónde Where Cual Which Quien Who Quíen Whom Cuántos How Many Cuanto Cuesta How Much Cuantas Veces How Many Times Cuan A menudo How Often Con que Frecuencia How Frequently La Cantidad Amount Número Number Cantidad/Cifra Quantify Cuánto Tiempo How Long Qué What Pronombres Pronouns Él He de Él / a El Him El mismo Himself Su His Ella She Sí misma Herself Su Her Suyo Hers Eso It Sí Mismo Itself Sus Its Ellos They Su/sus Their Ellos Them
    • 739. Otras Reglas a Tener en Cuenta • Para definir el tipo de gráfico, solo basta con agregar la palabra AS + (El tipo de Gráfico, al final de la oración: Sum of precio de venta by país As bar chart • Si damos clic sobre el cuadro de preguntas y respuestas, en la parte superior de la interfaz aparecen preguntas determinadas y los campos de las tablas, al elegir alguna, se crea una visualización lista para ser Anclada en los diferentes paneles. • Si al escribir una palabra en el Cuadro de preguntas, toma un color gris claro significa que Power BI no la reconoce. Artículos Articles A Un/Una A n Un/ Una The Los/La/Las/El/Lo


    • Previous
    • Next
    • f Fullscreen
    • esc Exit Fullscreen