MSI Micro School Informática
NIVEL BÁSICO · EDICIÓN 2.0

Power BI
De cero a profesional

Manual práctico de MSI Micro School Informática. Cada procedimiento incluye una captura visual de referencia, pasos numerados y ejercicios construidos con datos reales de una empresa.

Empresa de práctica: Microsoft Corporation

Durante todo el manual trabajaremos con información publicada por Microsoft Corporation. Así el alumno aprende Power BI resolviendo un caso empresarial real, en lugar de practicar con números inventados.

Datos base — millones de dólares, excepto cuando se indique lo contrario.
Año fiscalIngresosMargen brutoResultado operativoResultado neto
2023211.915146.05288.52372.361
2024245.122171.008109.43388.136
2025281.724193.893128.528101.832

Fuente: Microsoft Annual Report 2025. Los ejercicios fiscales indicados terminan el 30 de junio.

1. Introducción a Power BI

Power BI Desktop permite conectarse a datos, transformarlos, crear un modelo y construir informes. Esta ruta sigue el flujo recomendado por la documentación oficial de Microsoft Learn.

Conectar

Traer datos desde Excel, bases de datos y otros orígenes.

Transformar

Limpiar y preparar información con Power Query.

Visualizar

Crear gráficos, tarjetas, tablas y filtros.

Regla del curso: cada vez que aprendamos una herramienta, la utilizaremos inmediatamente sobre el caso real de Microsoft.

2. Conectar Excel con Power BI

Microsoft documenta el flujo Inicio → Obtener datos → Excel → Conectar. citeturn0search1turn0search0

Paso 1 — Obtener datos

Power BI Desktop
ArchivoInicioInsertarModeladoVista Obtener datos Transformar datos
1. Obtener datos
Datos
▾ Ventas
 ☑ Año
 ☑ Ingresos
 ☑ Segmento
 ☑ Resultado Neto
1
Abre Power BI Desktop.
2
En Inicio, selecciona Obtener datos.
3
Selecciona Excel.

Paso 2 — Elegir el archivo

Power BI Desktop
ArchivoInicioInsertarModeladoVista Obtener datos Transformar datos
2. Seleccionar Excel

Obtener datos

▣ Excel
Archivo Excel (.xlsx)
Datos
▾ Ventas
 ☑ Año
 ☑ Ingresos
 ☑ Segmento
 ☑ Resultado Neto
1
Busca el archivo Excel que contiene los datos de Microsoft.
2
Selecciona Abrir y espera la ventana Navegador.

Paso 3 — Seleccionar la tabla

Power BI Desktop
ArchivoInicioInsertarModeladoVista Obtener datos Transformar datos
3. Navegador

Navegador

☑ Datos_Microsoft
☐ Segmentos
☐ Estados financieros
Vista previa

Año   Ingresos   Resultado Neto
2023   211.915   72.361
2024   245.122   88.136
2025   281.724   101.832
Datos
▾ Ventas
 ☑ Año
 ☑ Ingresos
 ☑ Segmento
 ☑ Resultado Neto
1
Marca la tabla que contiene los datos.
2
Revisa la vista previa.
3
Para este primer ejercicio, selecciona Cargar.
Ejercicio real 01 — Evolución de Microsoft
  1. Crea un Excel con los datos 2023, 2024 y 2025.
  2. Importa la tabla siguiendo los pasos anteriores.
  3. Crea una tarjeta con los ingresos de 2025.
  4. Crea un gráfico de columnas con ingresos por año.
  5. Escribe una conclusión de dos líneas sobre la evolución.

3. Power Query

Power Query sirve para transformar los datos antes de utilizarlos en el modelo. Microsoft indica que desde Power BI se puede seleccionar Transformar datos para abrir el Editor de Power Query. citeturn0search3turn0search10

Power BI Desktop
ArchivoInicioInsertarModeladoVista Obtener datos Transformar datos
4. Editor de Power Query
Consultas

Ventas

Segmentos

Pasos aplicados
✓ Origen
✓ Tipo cambiado
✓ Filas filtradas
AñoIngresosResultado Neto
2023211.91572.361
2024245.12288.136
2025281.724101.832
Datos
▾ Ventas
 ☑ Año
 ☑ Ingresos
 ☑ Segmento
 ☑ Resultado Neto
1
Selecciona Transformar datos.
2
Comprueba que Año sea numérico y que los importes sean números.
3
Elimina columnas que no se utilizarán.
4
Cuando termines, utiliza Cerrar y aplicar.
Ejercicio real 02 — Limpieza de información

Agrega a propósito un espacio en “2025”, una columna innecesaria y un duplicado. Luego corrige los tres problemas con Power Query. El resultado debe coincidir con los datos publicados.

Ejercicios Prácticos de Dashboards

Tres casos de negocio completos con estructura de datos en Excel, requerimientos de limpieza con Power Query, medidas DAX y entregables visuales interactivos simulados con Chart.js para evaluar cómo debe verse el reporte final.

01 · Dashboard de Ventas

Empresa: Comercial del Paraguay S.A. · Nivel: Básico · Excel: ventas_comercial.xlsx

Power Query DAX (SUM, DISTINCTCOUNT, DIVIDE) Tarjetas KPI Gráfico de Líneas Gráfico de Barras Segmentadores (Slicers)
Herramientas a utilizar: En este dashboard inicial utilizarás Power Query para importar y validar los datos de Excel, Medidas DAX para calcular indicadores clave (Ventas Totales, Facturas, Productos y Ticket Promedio), Tarjetas KPI para presentación de totales, Gráficos de Líneas y Barras para análisis de tendencias y distribuciones, y Segmentadores (Slicers) interactivos para filtrar por fecha, categoría o vendedor.

Datos del Excel

FechaFacturaClienteProductoCategoríaVendedorCantidadTotal
02/01/2026F001-001Supermercado CentralNotebook HPInformáticaJuan29.000.000
03/01/2026F001-002Librería NorteMouse LogitechAccesoriosMaría101.500.000
05/01/2026F001-003Comercial LópezTeclado LogitechAccesoriosPedro51.100.000
08/01/2026F001-004Supermercado CentralMonitor SamsungInformáticaJuan35.400.000
10/01/2026F001-005Comercial LópezNotebook LenovoInformáticaMaría15.200.000

Para la práctica completa, ampliar a 50-100 registros y varios meses.

Medidas DAX

Ventas Totales = SUM(Ventas[Total])

Productos Vendidos = SUM(Ventas[Cantidad])

Cantidad Facturas = DISTINCTCOUNT(Ventas[Factura])

Ticket Promedio =
DIVIDE([Ventas Totales], [Cantidad Facturas])

Dashboard esperado (Simulación Interactiva)

DASHBOARD DE VENTAS — COMERCIAL DEL PARAGUAY Simulación Power BI
VENTAS TOTALES₲ 22.200.000
FACTURAS5
PRODUCTOS21
TICKET PROMEDIO₲ 4.440.000
📈 Evolución de Ventas por Mes
📊 Ventas por Categoría (₲)
Consigna:
  1. Importa el Excel.
  2. Comprueba los tipos de datos en Power Query.
  3. Crea las 4 medidas DAX calculadas.
  4. Construye las tarjetas KPI y los gráficos de evolución y distribución.
  5. Agrega segmentadores (slicers) de fecha, categoría y vendedor.
Desafío empresarial: ¿Qué vendedor tiene mejor desempeño y qué categoría genera más ingresos? Justifica ambas respuestas.

02 · Dashboard de Inventario

Empresa: Distribuidora Salem · Nivel: Intermedio · Excel: 3 archivos relacionados

Power Query Modelo Estrella / Relaciones DAX (SUMX & RELATED) Formato Condicional / Alertas Tarjetas KPI Gráfico Comparativo
Herramientas a utilizar: En este dashboard de inventario utilizarás Power Query para la ingesta de múltiples tablas, la Vista de Modelo de Power BI para crear relaciones 1 a N entre Productos, Stock y Movimientos, la función DAX SUMX + RELATED para valuar el inventario físico cruzando datos entre tablas, y Formato Condicional para generar alertas visuales de productos por debajo del stock mínimo.

Excel 1 · productos.xlsx

IDProductoCategoríaMarcaCompraVenta
001Aromatizante TextilLimpiezaSaphirus25.00038.000
002Difusor de AromaAromatizaciónSaphirus35.00055.000
003Limpiador MultiusoLimpiezaX18.00029.000
004DesinfectanteLimpiezaX15.00025.000

Excel 2 · stock.xlsx

IDStock ActualStock MínimoStock Máximo
0014520100
00281580
00312030150
0041225100

Excel 3 · movimientos.xlsx

FechaIDTipoCantidad
02/01/2026001Entrada50
03/01/2026002Entrada30
05/01/2026002Salida22
06/01/2026001Salida5
MODELO DE RELACIONES:
PRODUCTOS (1) ──── (*) STOCK
PRODUCTOS (1) ──── (*) MOVIMIENTOS

Medida sugerida

Valor Inventario =
SUMX(
    Stock,
    Stock[Stock Actual] * RELATED(Productos[Compra])
)

Dashboard esperado (Simulación Interactiva)

DASHBOARD DE CONTROL DE STOCK — DISTRIBUIDORA SALEM Simulación Power BI
ITEMS TOTALES185 Unid.
VALOR INVENTARIO₲ 4.545.000
BAJO STOCK MÍNIMO2 Productos
ROTACIÓN MES27 Salidas
📦 Stock Actual vs. Stock Mínimo por Producto
🔄 Movimientos del Periodo (Entradas vs Salidas)
Consigna:
  1. Importa los 3 Excel.
  2. Limpia los datos con Power Query y verifica tipos numéricos.
  3. Relaciona las tablas en el modelo mediante ID de producto.
  4. Crea las medidas de valor de stock y alertas.
  5. Crea gráficos de stock por categoría y entradas vs. salidas.
  6. Identifica y resalta visualmente los productos por debajo del stock mínimo.
Desafío empresarial: ¿Qué productos deben comprarse primero? Ordena los productos críticos por prioridad de reposición.

03 · Dashboard de Recursos Humanos

Empresa: Empresa Tecnológica PY S.A. · Nivel: Intermedio/Avanzado · Excel: empleados.xlsx

Power Query DAX (DISTINCTCOUNT, AVERAGE, SUM) Tarjetas KPI Gráfico de Donut Gráfico de Barras Filtros de Plantilla
Herramientas a utilizar: En este dashboard de RRHH utilizarás Power Query para la estructuración del legajo de personal, DAX para métricas de masa salarial, promedio de ingresos y conteo de personal, Gráficos de Donut y Barras para analizar la distribución por área y nivel jerárquico, y Segmentadores geográficos y de estado para auditar la plantilla de empleados activos e inactivos.

Datos del Excel

IDNombreDepartamentoCargoIngresoSalarioEstadoCiudad
001Carlos BenítezSistemasProgramador15/02/20217.500.000ActivoAsunción
002María GonzálezAdministraciónContadora10/03/20226.500.000ActivoSan Lorenzo
003Pedro LópezSistemasAnalista20/06/20208.200.000ActivoLuque
004Ana TorresMarketingDiseñadora05/01/20245.500.000ActivoAsunción
005José RamírezVentasEjecutivo12/09/20235.800.000ActivoCapiatá

Para la práctica completa, ampliar a 100-300 empleados.

Medidas DAX

Total Empleados = DISTINCTCOUNT(Empleados[ID])

Salario Promedio = AVERAGE(Empleados[Salario])

Masa Salarial = SUM(Empleados[Salario])

Dashboard esperado (Simulación Interactiva)

DASHBOARD ANALÍTICO DE RR.HH. — TECNOLÓGICA PY Simulación Power BI
PLANTILLA TOTAL5 Empleados
SALARIO PROMEDIO₲ 6.700.000
MASA SALARIAL₲ 33.500.000
TASA ACTIVOS100%
👥 Distribución de Empleados por Departamento
💰 Salario Promedio por Departamento (₲)
Consigna:
  1. Importa empleados.xlsx.
  2. Revisa fechas y formato de salarios.
  3. Crea los 3 indicadores clave (Total, Promedio y Masa Salarial).
  4. Analiza la composición de la empresa por departamento y ciudad.
  5. Agrega segmentadores por departamento, cargo, ciudad y estado.
Desafío empresarial: ¿Qué departamento tiene el mayor costo salarial? ¿Cuál tiene el salario promedio más alto? Explica por qué pueden ser diferentes.

Comparación de Proyectos

ProyectoExcelNivelHabilidades Clave Desarrolladas
📊 Ventas1 archivo planoBásicoLimpieza inicial + Dashboard + DAX básico
📦 Inventario3 archivosIntermedioPower Query ETL + Modelo relacional estrella
👥 RR.HH.1 archivo detalladoIntermedio/AvanzadoKPIs analíticos + Segmentación multicriterio

Criterios de Evaluación

  1. Selección de Visualizaciones: ¿Por qué elegiste cada tipo de gráfico según el dato a comunicar?
  2. Lógica DAX: ¿Qué medida DAX fue determinante y cómo se estructuró?
  3. Filtros y Segmentadores: ¿Qué interacción aporta mayor valor al usuario de negocio?
  4. Toma de Decisiones: ¿Qué decisión empresarial concreta respalda el dashboard?
  5. Iteración y Mejora: ¿Qué optimización técnica o visual añadirías en una siguiente versión?
Criterio MSI: el estudiante debe ser capaz de explicar el dashboard con soltura y defender sus conclusiones basándose exclusivamente en los datos visualizados.
MSIPOWER BI · NIVEL 2

Dashboards Interactivos y Herramientas Modernas

Segunda serie de prácticas para pasar de dashboards estáticos a soluciones interactivas, dinámicas y orientadas a decisiones empresariales.

Ruta de aprendizaje

04 · Interacción

Segmentadores, botones, marcadores y navegación.

05 · Gestión

KPI, metas, formato condicional y semáforos.

06 · Exploración

Drill-through y tooltips personalizados.

07 · Dinamismo

Parámetros de campos para cambiar el análisis.

08 · Tiempo

Calendario, YTD, YoY y crecimiento.

09 · Geografía

Mapas, jerarquías y drill-down.

Metodología MSI: cada práctica introduce una herramienta nueva y termina con una pregunta empresarial.

04 · Dashboard de Ventas Interactivo

Empresa: Comercial del Paraguay S.A. · Nivel: Intermedio

SegmentadoresFiltrosBotonesMarcadoresNavegación
Herramientas a utilizar: En este laboratorio interactivo utilizarás Segmentadores (Slicers) sincronizados entre páginas, Botones de Acción y Navegación, Marcadores (Bookmarks) para alternar vistas sin cambiar de página, y el Panel de Selección para controlar la visibilidad de elementos.

Excel: ventas_comercial.xlsx

FechaFacturaClienteProductoCategoríaVendedorCantidadTotal (₲)
02/01/2026F001-001Supermercado CentralNotebook HPInformáticaJuan29.000.000
03/01/2026F001-002Librería NorteMouse LogitechAccesoriosMaría101.500.000
05/01/2026F001-003Comercial LópezTeclado LogitechAccesoriosPedro51.100.000
08/01/2026F001-004Supermercado CentralMonitor Samsung 24"InformáticaJuan35.400.000
10/01/2026F001-005Comercial LópezNotebook LenovoInformáticaMaría15.200.000
12/01/2026F001-006Farmacia San JoséImpresora EpsonOficinaPedro23.600.000
15/01/2026F001-007Librería NorteAuriculares SonyAccesoriosJuan62.700.000
18/01/2026F001-008Distribuidora GuaraníDisco SSD 1TBComponentesMaría43.200.000
22/01/2026F001-009Supermercado CentralSilla ErgonómicaOficinaPedro34.500.000
26/01/2026F001-010Comercial LópezProyector EpsonOficinaJuan16.800.000
Consigna:
  1. Importa el Excel.
  2. Crea las páginas Resumen, Vendedores y Productos.
  3. Agrega segmentadores de año, mes, vendedor y categoría.
  4. Crea botones de navegación.
  5. Usa marcadores para alternar vistas.
DASHBOARD DE VENTAS · VISTA INTERACTIVA
VENTAS₲ 22,2 M
FACTURAS5
PRODUCTOS21
TICKET₲ 4,44 M
Evolución
Filtros

Año ▼ · Mes ▼ · Vendedor ▼

Desafío: navegar Resumen → Vendedores → Productos manteniendo el contexto de filtros.

05 · Dashboard Ejecutivo

Empresa: Distribuidora Salem · Nivel: Intermedio

TarjetasKPIFormato condicionalMetasSemáforos
Herramientas a utilizar: En este dashboard ejecutivo utilizarás Tarjetas de KPI, Medidas DAX de Cumplimiento (% Meta), Formato Condicional por Reglas (Colores e Iconos de Semáforo) en tablas y matrices, y Barras de Datos para evaluar el estado financiero en segundos.

Excel: ventas_ejecutivas.xlsx

IDProductoCategoríaVentas Realizadas (₲)Meta de Ventas (₲)% CumplimientoEstado
P01Aromatizante Textil 250mlAromatización18.500.00015.000.000123,3%🟢 Alcanzada
P02Difusor de Aroma VarillasAromatización12.800.00014.000.00091,4%🟡 En Proceso
P03Desinfectante Multiuso 5LLimpieza24.600.00020.000.000123,0%🟢 Alcanzada
P04Limpiador Concentrado 1LLimpieza7.200.00010.000.00072,0%🔴 Crítico
P05Detergente Industrial 20LInstitucional16.400.00015.000.000109,3%🟢 Alcanzada
P06Jabón Líquido Manos 5LHigiene9.500.00012.000.00079,2%🔴 Crítico
P07Alcohol en Gel 70% 1LHigiene11.200.00011.000.000101,8%🟢 Alcanzada
P08Lava Vajillas ConcentradoLimpieza8.900.0009.500.00093,7%🟡 En Proceso
P09Cera Autobrillo Pisos 5LTratamiento Pisos6.300.0008.500.00074,1%🔴 Crítico
P10Desengrasante Potente 5LInstitucional14.100.00013.000.000108,5%🟢 Alcanzada

Meta mensual global: ₲ 100.000.000.

Meta Ventas = 100000000

Cumplimiento =
DIVIDE([Ventas Totales], [Meta Ventas])
CumplimientoEstadoSignificado
≥ 100%🟢Meta alcanzada
80%–99,99%🟡Cerca
< 80%🔴Por debajo
Consigna: crea tarjeta de cumplimiento, KPI con meta y tabla de productos con barras de datos e iconos.
Desafío: el gerente debe saber en menos de 5 segundos si la empresa cumple la meta.

06 · Dashboard con Drill-through y Tooltips

Empresa: Comercial del Paraguay S.A. · Nivel: Intermedio/Avanzado

Drill-throughTooltips personalizadosPágina de detalle
Herramientas a utilizar: En este dashboard de exploración avanzada configurarás el campo Drill-through (Obtención de Detalles) para navegar dinámicamente desde un resumen al detalle individual de un vendedor o cliente, y diseñarás Páginas de Tooltip Personalizadas (Informes Emergentes) al pasar el cursor sobre cualquier elemento.

Excel: ventas_detalle_vendedores.xlsx

FechaFacturaVendedorClienteProductoCantidadTotal (₲)Margen
02/01/2026F001-001JuanSupermercado CentralNotebook HP29.000.00022%
03/01/2026F001-002MaríaLibrería NorteMouse Logitech101.500.00035%
05/01/2026F001-003PedroComercial LópezTeclado Logitech51.100.00030%
08/01/2026F001-004JuanSupermercado CentralMonitor Samsung 24"35.400.00025%
10/01/2026F001-005MaríaComercial LópezNotebook Lenovo15.200.00020%
12/01/2026F001-006PedroFarmacia San JoséImpresora Epson23.600.00028%
15/01/2026F001-007JuanLibrería NorteAuriculares Sony62.700.00032%
18/01/2026F001-008MaríaDistribuidora GuaraníDisco SSD 1TB43.200.00026%
22/01/2026F001-009PedroSupermercado CentralSilla Ergonómica34.500.00024%
26/01/2026F001-010JuanComercial LópezProyector Epson16.800.00021%
Ranking
Vendedor
Detalle

Página de detalle

  • Ventas del vendedor
  • Clientes atendidos
  • Productos vendidos
  • Evolución mensual
  • Top clientes y productos
Tooltip: al pasar el mouse mostrar ventas, facturas, ticket promedio y participación.
Consigna: configura Vendedor como campo de drill-through y crea una página de tooltip.
Desafío: la misma página debe funcionar automáticamente para cualquier vendedor.

07 · Dashboard Dinámico con Parámetros de Campos

Empresa: Empresa Comercial PY S.A. · Nivel: Avanzado

Parámetros de camposMétrica dinámicaDimensión dinámica
Herramientas a utilizar: En este dashboard dinámico utilizarás la funcionalidad de Parámetros de Campos (Field Parameters) de Power BI para permitir al usuario cambiar dinámicamente tanto la métrica analizada (Ventas, Cantidad, Margen) como el eje de análisis (Producto, Vendedor, Ciudad) desde un solo gráfico interactivo.

Excel: matriz_dinamica_comercial.xlsx

FechaVendedorCategoríaCiudadCantidadVentas (₲)Costo (₲)Margen (₲)
05/01/2026JuanInformáticaAsunción29.000.0007.020.0001.980.000
07/01/2026MaríaAccesoriosFernando de la Mora101.500.000975.000525.000
10/01/2026PedroAccesoriosSan Lorenzo51.100.000770.000330.000
12/01/2026JuanInformáticaAsunción35.400.0004.050.0001.350.000
14/01/2026MaríaInformáticaCiudad del Este15.200.0004.160.0001.040.000
16/01/2026PedroOficinaLuque23.600.0002.592.0001.008.000
19/01/2026JuanAccesoriosAsunción62.700.0001.836.000864.000
21/01/2026MaríaComponentesEncarnación43.200.0002.368.000832.000
24/01/2026PedroOficinaAsunción34.500.0003.420.0001.080.000
28/01/2026JuanOficinaSan Lorenzo16.800.0005.372.0001.428.000
SelectorOpciones
MétricaVentas · Cantidad · Margen · Ticket promedio
Analizar porProducto · Categoría · Vendedor · Ciudad
Consigna: crea un solo gráfico que cambie según la métrica y dimensión seleccionadas.
Desafío: construir un “Explorador Comercial” en una sola página.

08 · Dashboard de Evolución Temporal

Empresa: Distribuidora Salem · Nivel: Avanzado

CalendarioYTDYoYMes anteriorCrecimiento %
Herramientas a utilizar: En este dashboard de inteligencia temporal crearás una Tabla de Calendario Personalizada en DAX, utilizarás funciones Time Intelligence como SAMEPERIODLASTYEAR y TOTALYTD para calcular comparaciones interanuales (YoY) y acumuladas, y construirás gráficos de línea para analizar el % de crecimiento mensual.

Excel: evolucion_historica_ventas.xlsx

MesPeríodoVentas 2025 (₲)Ventas 2026 (₲)Crecimiento (₲)Crecimiento %
Enero2025 vs 202675.000.00088.500.000+13.500.000+18,0%
Febrero2025 vs 202668.000.00081.200.000+13.200.000+19,4%
Marzo2025 vs 202682.000.00095.000.000+13.000.000+15,9%
Abril2025 vs 202671.500.00084.600.000+13.100.000+18,3%
Mayo2025 vs 202690.000.000106.500.000+16.500.000+18,3%
Junio2025 vs 202685.000.00099.800.000+14.800.000+17,4%
Julio2025 vs 202678.000.00092.400.000+14.400.000+18,5%
Agosto2025 vs 202688.000.000104.200.000+16.200.000+18,4%
Septiembre2025 vs 202692.500.000110.000.000+17.500.000+18,9%
Octubre2025 vs 202696.000.000115.000.000+19.000.000+19,8%
Ventas Año Anterior =
CALCULATE([Ventas Totales],
SAMEPERIODLASTYEAR(Calendario[Fecha]))

Crecimiento % =
DIVIDE([Ventas Totales]-[Ventas Año Anterior],
[Ventas Año Anterior])
Consigna: crea calendario, comparación 2025 vs 2026, crecimiento y vista YTD.
Desafío: encontrar mejor mes, peor mes y período de mayor crecimiento.

09 · Dashboard Geográfico

Empresa: Distribuidora Nacional PY · Nivel: Avanzado

MapasJerarquíasDrill-downDepartamentoCiudad
Herramientas a utilizar: En este dashboard geográfico utilizarás el objeto visual Mapa de Burbujas / Coroplético de Power BI, configurarás Jerarquías Geográficas (Departamento → Ciudad → Cliente) con navegación por Drill-down (Profundización), y aplicarás filtros de área territorial para evaluar expansión comercial en Paraguay.

Excel: distribucion_geografica_py.xlsx

ClienteDepartamentoCiudadVentas (₲)Meta (₲)Puntos de Venta
Supermercado CentralCentralSan Lorenzo45.000.00040.000.0004
Comercial El SolCapitalAsunción62.000.00055.000.0006
Distribuidora del EsteAlto ParanáCiudad del Este78.500.00070.000.0005
Comercial SurItapúaEncarnación38.000.00035.000.0003
Farmacia San JoséCentralLuque29.500.00028.000.0002
Comercial NorteConcepciónConcepción22.000.00025.000.0002
Agroquímica ChacoBoquerónFiladelfia31.000.00030.000.0001
Casa de la MúsicaCaaguazúCoronel Oviedo19.800.00020.000.0002
Librería del CentroCordilleraCaacupé15.400.00015.000.0001
Importadora MisionesMisionesSan Juan Bautista18.200.00017.500.0001
Paraguay
Departamento
Ciudad → Cliente
Consigna: crea mapa y jerarquía geográfica para analizar departamento, ciudad y cliente.
Desafío: ¿dónde debería abrirse el próximo punto de distribución? Justifica con datos.

10 · Proyecto Integrador — Dashboard Empresarial

Nivel: Avanzado · Excel: clientes.xlsx, productos.xlsx, ventas.xlsx, vendedores.xlsx, stock.xlsx

Power QueryDAXKPISegmentadoresBotonesMarcadoresDrill-throughTooltipsParámetrosTiempoMapas
Herramientas a utilizar: En el proyecto final integrador consolidarás un Modelo Multitabla en Power Query, aplicarás Medidas DAX Avanzadas (Margen %, Utilidad, Cumplimiento), estructurarás un Sistema Multi-Página de Navegación (Gerencia, Ventas, Inventario, Geografía y Detalle), y combinarás Drill-through, Tooltips, Marcadores y Filtros Temporales para crear una solución analítica de nivel profesional.

Excel: proyecto_integrador_empresarial.xlsx

IDSucursalDepartamentoUnidadesVentas (₲)Costo (₲)Utilidad (₲)Margen %Cumplimiento
S01Sucursal CentralCapital1.450185.000.000135.000.00050.000.00027,0%🟢 105%
S02Sucursal San LorenzoCentral1.120142.000.000103.600.00038.400.00027,0%🟢 101%
S03Sucursal CDEAlto Paraná1.680215.000.000154.800.00060.200.00028,0%🟢 108%
S04Sucursal EncarnaciónItapúa890112.000.00082.880.00029.120.00026,0%🟡 95%
S05Sucursal LuqueCentral940118.000.00086.140.00031.860.00027,0%🟢 102%
S06Sucursal Coronel OviedoCaaguazú65078.000.00057.720.00020.280.00026,0%🟡 92%
S07Sucursal Pedro JuanAmambay81098.000.00071.540.00026.460.00027,0%🟢 100%
S08Sucursal ConcepciónConcepción54064.000.00048.000.00016.000.00025,0%🔴 88%
S09Sucursal PilarÑeembucú42051.000.00038.250.00012.750.00025,0%🔴 85%
S10Sucursal FiladelfiaBoquerón73089.000.00064.970.00024.030.00027,0%🟢 104%
PáginaContenido
GerenciaVentas, meta, crecimiento, margen y KPIs
VentasProductos, categorías, vendedores y clientes
InventarioStock, críticos y rotación
GeografíaDepartamentos, ciudades y clientes
DetalleDrill-through y tooltips
Desafío final: la gerencia debe poder responder en menos de un minuto: ¿cómo estamos?, ¿qué funciona? y ¿qué decisión debemos tomar?

4. Modelado de datos

Ahora agregaremos una segunda tabla con los segmentos de Microsoft.

Segmento20242025
Productivity and Business Processes106.820120.810
Intelligent Cloud87.464106.265
More Personal Computing50.83854.649

Fuente: Microsoft Annual Report 2025, información por segmentos.

Ejercicio real 03 — Modelo

Construye una tabla Año y una tabla Segmentos. Identifica qué campo puede servir para relacionarlas y crea un gráfico que compare 2024 y 2025.

5. DAX inicial

Una medida permite realizar cálculos que responden al contexto de filtros del informe.

Ingresos Totales = SUM(Microsoft[Ingresos])

Resultado Neto = SUM(Microsoft[Resultado Neto])

Margen Neto =
DIVIDE([Resultado Neto], [Ingresos Totales])
Ejercicio real 04 — Indicadores financieros
  1. Crea las tres medidas anteriores.
  2. Agrega una tarjeta para cada indicador.
  3. Formatea Margen Neto como porcentaje.
  4. Agrega un segmentador por año.
  5. Comprueba qué sucede al seleccionar 2024 y luego 2025.

6. Visualizaciones y dashboard

Tarjeta

Ingresos 2025.

Línea

Ingresos 2023–2025.

Columnas

Ingresos por segmento.

Ejercicio real 05 — Dashboard ejecutivo

Construye una página que permita a un gerente responder:

  • ¿Cuánto ingresó Microsoft en 2025?
  • ¿Cómo evolucionaron los ingresos?
  • ¿Cuál segmento tuvo mayor ingreso?
  • ¿Cuál fue el resultado neto?

Incluye 3 tarjetas, 2 gráficos y un segmentador.

Proyecto final — Microsoft Corporation

  1. Preparar los datos en Excel.
  2. Importarlos a Power BI.
  3. Limpiarlos con Power Query.
  4. Crear el modelo.
  5. Crear medidas DAX.
  6. Construir el dashboard.
  7. Presentar 3 conclusiones empresariales basadas en los datos.
Evaluación: se valorará especialmente que el estudiante pueda explicar por qué realizó cada paso, no solamente que consiga que el gráfico aparezca.
MSI BASES DE DATOS · NIVEL 1

MySQL + HeidiSQL

Manual práctico para aprender bases de datos desde cero: conceptos fundamentales, lenguaje SQL, diseño de tablas, relaciones de integridad, consultas avanzadas con JOIN y un proyecto comercial completo listo para conectar con Power BI.

01 · ¿Qué es una base de datos?

Una base de datos es un sistema organizado para almacenar información de manera estructurada, segura y eficiente, permitiendo que los datos puedan ser consultados, modificados y relacionados entre sí en tiempo real.

Tabla

Estructura bidimensional de filas y columnas que almacena un conjunto de datos homogéneo (ej. Clientes, Productos).

Registro (Fila)

Representa una entidad o transacción individual con todos sus atributos específicos.

Campo (Columna)

Representa una característica o atributo particular de la entidad con un tipo de dato definido.

BASE DE DATOS
TABLAS
REGISTROS
CAMPOS
Ejemplo de arquitectura comercial: CLIENTES PRODUCTOS PROVEEDORES VENTAS DETALLE_VENTA USUARIOS

02 · ¿Qué es MySQL?

MySQL es el sistema gestor de bases de datos relacionales (RDBMS) de código abierto más popular del mundo empresarial y web.

Concepto clave: MySQL es el motor servidor que procesa las peticiones, gestiona el almacenamiento físico en disco y garantiza la integridad de los datos.
  • Crear bases de datos y esquemas de tablas optimizados.
  • Insertar grandes volúmenes de información empresarial.
  • Consultar (SELECT), actualizar (UPDATE) y eliminar (DELETE) registros con filtros precisos.
  • Definir claves primarias (PK) y foráneas (FK) para relacionar tablas.
  • Crear vistas analíticas, procedimientos almacenados y triggers.

03 · ¿Qué es HeidiSQL?

HeidiSQL es un cliente gráfico ligero y potente para administrar servidores MySQL/MariaDB de forma visual, intuitiva y rápida.

HeidiSQL (Cliente GUI)
Conexión TCP/IP (Puerto 3306)
Servidor MySQL
Bases de Datos y Tablas
Capacidades en HeidiSQL: Conectarse localmente (XAMPP) o a servidores remotos, crear bases y tablas con asistentes visuales, examinar y editar registros en grillas interactivas, ejecutar scripts SQL y realizar copias de seguridad (DUMP).

04 · Ejercicio 01 — Crear nuestra primera base

El primer paso consiste en crear el contenedor lógico donde residirán todas nuestras tablas de negocio.

CREATE DATABASE comercial_py;

USE comercial_py;
Actividad práctica: Abre HeidiSQL, conéctate a tu servidor local de MySQL (localhost / usuario root), escribe y ejecuta estas instrucciones en la pestaña de consulta y comprueba en el árbol lateral izquierdo que aparezca la base de datos comercial_py.
Glosario esencial:
  • Servidor: La máquina o proceso que corre el motor MySQL.
  • Base de datos: El contenedor con el conjunto de tablas de un sistema.
  • Tabla: La entidad estructurada (ej. clientes).

05 · Ejercicio 02 — Tabla Clientes

Definición de la estructura de clientes con tipos de datos estándar y clave primaria autoincremental.

CREATE TABLE clientes (
    id_cliente INT AUTO_INCREMENT PRIMARY KEY,
    nombre VARCHAR(100) NOT NULL,
    apellido VARCHAR(100) NOT NULL,
    telefono VARCHAR(30),
    email VARCHAR(150),
    ciudad VARCHAR(100),
    fecha_registro DATE
);

Conceptos de tipos y restricciones en SQL

INT · Entero VARCHAR · Texto variable DATE · Fecha (AAAA-MM-DD) PRIMARY KEY · Clave única AUTO_INCREMENT · Contador auto NOT NULL · Obligatorio

06 · Ejercicio 03 — Inserción de Datos (INSERT)

Poblamos la tabla con clientes de prueba de diversas ciudades del Paraguay.

INSERT INTO clientes
(nombre, apellido, telefono, email, ciudad, fecha_registro)
VALUES
('Carlos', 'Benítez', '0981123456', 'carlos@gmail.com', 'Asunción', '2026-01-10'),
('María', 'González', '0982123456', 'maria@gmail.com', 'Luque', '2026-01-12'),
('Pedro', 'López', '0983123456', 'pedro@gmail.com', 'San Lorenzo', '2026-01-15'),
('Ana', 'Torres', '0984123456', 'ana@gmail.com', 'Itauguá', '2026-01-20');
Desafío: Agrega al menos 10 registros de clientes adicionales con ciudades como Fernando de la Mora, Capiatá, Ciudad del Este y Encarnación para enriquecer futuros análisis.

07 · Ejercicio 04 — Consultas de Datos (SELECT & WHERE)

Aprender a extraer y filtrar información específica según condiciones de negocio.

-- 1. Consultar todos los campos de todos los clientes
SELECT * FROM clientes;

-- 2. Consultar solo columnas de contacto
SELECT nombre, apellido, ciudad, telefono
FROM clientes;

-- 3. Filtrar clientes por ciudad específica
SELECT *
FROM clientes
WHERE ciudad = 'Luque';

-- 4. Filtrar por fecha de registro
SELECT *
FROM clientes
WHERE fecha_registro >= '2026-01-15';
Ejercicios de consulta:
  1. Listar todos los clientes que residan en Asunción o Itauguá.
  2. Obtener nombre completo y teléfono de clientes ordenados alfabéticamente por apellido.

08 · Ejercicio 05 — Tabla Productos

Definimos el catálogo de artículos con control de precios en guaraníes, stock físico y estado.

CREATE TABLE productos (
    id_producto INT AUTO_INCREMENT PRIMARY KEY,
    nombre VARCHAR(150) NOT NULL,
    categoria VARCHAR(100),
    precio DECIMAL(12,2) NOT NULL,
    stock INT DEFAULT 0,
    estado VARCHAR(20) DEFAULT 'ACTIVO'
);

INSERT INTO productos
(nombre, categoria, precio, stock, estado)
VALUES
('Notebook HP 15', 'Informática', 4500000, 10, 'ACTIVO'),
('Notebook Lenovo', 'Informática', 5200000, 8, 'ACTIVO'),
('Mouse Logitech', 'Accesorios', 150000, 50, 'ACTIVO'),
('Teclado Logitech', 'Accesorios', 220000, 30, 'ACTIVO'),
('Monitor Samsung 24', 'Monitores', 1800000, 15, 'ACTIVO');

09 · Ejercicio 06 — Ordenamiento y Rangos (ORDER BY & Filtros)

Clasificación de productos por precios, categorías y disponibilidad de inventario.

-- Productos ordenados del más caro al más económico
SELECT *
FROM productos
ORDER BY precio DESC;

-- Artículos de gama alta con precio superior a ₲ 1.000.000
SELECT *
FROM productos
WHERE precio > 1000000
ORDER BY precio DESC;

-- Productos con bajo stock crítico (menor a 10 unidades)
SELECT nombre, stock, precio
FROM productos
WHERE stock < 10;
Desafíos para el alumno:
  • Obtener el producto más costoso y el más económico del inventario.
  • Listar todos los productos pertenecientes a la categoría 'Informática' con stock disponible.
  • Filtrar productos con precio comprendido entre ₲ 500.000 y ₲ 3.000.000.

10 · Ejercicio 07 — Actualización de Datos (UPDATE)

Modificación segura de registros existentes en la base de datos.

-- Actualizar precio del producto 1
UPDATE productos
SET precio = 4700000
WHERE id_producto = 1;

-- Incrementar el stock tras recibir un lote de 10 unidades
UPDATE productos
SET stock = stock + 10
WHERE id_producto = 1;
⚠️ Regla Crítica de Seguridad: Ejecutar un UPDATE sin la cláusula WHERE modificará todos los registros de la tabla irremediablemente.
-- ¡PELIGROSO! Modifica toda la tabla
UPDATE productos SET precio = 500000;

-- SEGURO: Afecta únicamente al registro deseado
UPDATE productos
SET precio = 500000
WHERE id_producto = 3;

11 · Ejercicio 08 — Eliminación Controlada (DELETE)

Procedimiento profesional para eliminar registros sin riesgos de pérdida accidental.

-- Paso 1: Verificar primero qué registro coincide con el criterio
SELECT *
FROM productos
WHERE id_producto = 5;

-- Paso 2: Ejecutar la eliminación con exactamente el mismo WHERE
DELETE FROM productos
WHERE id_producto = 5;
Buena práctica profesional: En entornos empresariales de producción se prefiere el Soft Delete (Borrado Lógico) cambiando el campo estado = 'INACTIVO' en lugar de borrar la fila física.

12 · Ejercicio 09 — Modelo Relacional (1 a N y Claves Foráneas)

Estructuración del circuito de ventas mediante cabecera y detalle para garantizar integridad referencial.

CLIENTES (1)
→ 1:N →
VENTAS (*)
→ 1:N →
DETALLE_VENTA (*)

Tabla de Cabecera: Ventas

CREATE TABLE ventas (
    id_venta INT AUTO_INCREMENT PRIMARY KEY,
    id_cliente INT NOT NULL,
    fecha DATETIME NOT NULL,
    total DECIMAL(12,2) DEFAULT 0,
    FOREIGN KEY (id_cliente)
    REFERENCES clientes(id_cliente)
);

Tabla de Detalle: Detalle_Venta

CREATE TABLE detalle_venta (
    id_detalle INT AUTO_INCREMENT PRIMARY KEY,
    id_venta INT NOT NULL,
    id_producto INT NOT NULL,
    cantidad INT NOT NULL,
    precio DECIMAL(12,2) NOT NULL,
    FOREIGN KEY (id_venta) REFERENCES ventas(id_venta),
    FOREIGN KEY (id_producto) REFERENCES productos(id_producto)
);
PK · Primary Key (Clave Primaria) FK · Foreign Key (Clave Foránea) Relación 1 a N (Uno a Muchos)

13 · Ejercicio 10 — Consultas Relacionales con INNER JOIN

Combinación de múltiples tablas en una sola vista analítica consolidada.

-- 1. Unir ventas con clientes
SELECT
    v.id_venta,
    v.fecha,
    c.nombre,
    c.apellido,
    v.total
FROM ventas v
INNER JOIN clientes c
    ON c.id_cliente = v.id_cliente;

Consulta Multitabla Completa (Ventas + Clientes + Detalle + Productos)

SELECT
    v.id_venta,
    v.fecha,
    CONCAT(c.nombre, ' ', c.apellido) AS cliente,
    p.nombre AS producto,
    d.cantidad,
    d.precio,
    (d.cantidad * d.precio) AS subtotal_linea
FROM ventas v
INNER JOIN clientes c
    ON c.id_cliente = v.id_cliente
INNER JOIN detalle_venta d
    ON d.id_venta = v.id_venta
INNER JOIN productos p
    ON p.id_producto = d.id_producto
ORDER BY v.fecha DESC;
Desafío: Agrupa por producto y calcula el total facturado por cada artículo usando SUM(d.cantidad * d.precio) y GROUP BY p.nombre.

14 · Proyecto Final — Comercial PY

Objetivo: Construir y validar el esquema relacional completo de comercial_py para que funcione como origen de datos en proyectos de PHP y dashboards de Power BI.
                 COMERCIAL_PY
                       │
          ┌────────────┼────────────┐
          │            │            │
      CLIENTES      PRODUCTOS    USUARIOS
          │            │
          └────── VENTAS ──────────┐
                       │            │
                       ▼            │
                 DETALLE_VENTA ◄───┘
  

Preguntas de Negocio que debe responder el alumno con SQL y Power BI:

  • ¿Cuánto facturó la empresa en el período?
  • ¿Cuál es el producto líder en ventas por unidades y por ingresos?
  • ¿Qué cliente representa el mayor volumen de compras?
  • ¿Qué productos se encuentran en stock crítico de reposición?
  • ¿Cuál es el ticket promedio por transacción?
Siguiente etapa de aprendizaje: Conectar MySQL directamente como origen en Power BI Desktop (Obtener Datos → Base de datos MySQL), importar el modelo relacional y construir tableros ejecutivos interactivos en tiempo real.
MSI INTEGRACIÓN · MYSQL + POWER BI

De la Base de Datos al Dashboard

Aprende a conectar la base comercial_py creada en MySQL/HeidiSQL con Power BI Desktop, transformar los datos con Power Query, construir el modelo relacional, crear medidas DAX y publicar con On-premises data gateway.

01 · La unión completa de arquitectura

En este módulo aprenderás el flujo técnico de extremo a extremo: cómo los datos transaccionales de MySQL viajan hacia el motor analítico de Power BI.

MySQL (DB)
Connector/NET
Power Query (ETL)
Modelo VertiPaq
Dashboard Power BI
1. Motor MySQL

Almacena de forma persistente y segura las tablas transaccionales de clientes, productos y ventas.

2. Power Query

Se conecta vía TCP/IP, valida tipos de datos, limpia registros y prepara el esquema analítico.

3. Power BI Desktop

Modela relaciones 1 a N, calcula métricas con DAX y diseña visualizaciones interactivas de negocio.

Idea clave: HeidiSQL administra y consulta la base; Power BI consume esos datos para analizarlos. HeidiSQL no es el puente: la conexión la realiza Power BI directamente mediante el conector de MySQL.

02 · Requisitos antes de comenzar

  • Power BI Desktop instalado y actualizado en Windows.
  • Servidor MySQL (XAMPP o standalone) iniciado y escuchando en el puerto 3306.
  • Base de datos comercial_py creada y con datos cargados en sus tablas.
  • Usuario y contraseña de MySQL con permisos de lectura (SELECT).
  • Conector oficial Oracle MySQL Connector/NET instalado en el equipo.
Importante: Microsoft documenta que el conector nativo de MySQL para Power BI Desktop requiere Oracle MySQL Connector/NET instalado en la máquina local (y en la máquina del Gateway para actualizaciones automáticas en la nube).

03 · Instalar el conector de MySQL (Connector/NET)

Power BI incluye Base de datos MySQL entre sus orígenes nativos. Para habilitar la comunicación de bajo nivel, se requiere el paquete oficial de Oracle.

Paso a paso de instalación:
  1. Descargar e instalar el paquete MSI de MySQL Connector/NET.
  2. Cerrar completamente Power BI Desktop si estaba abierto.
  3. Volver a abrir Power BI Desktop para que reconozca los ensamblados del proveedor.
Diferencia clave: HeidiSQL es una herramienta visual de administración para desarrolladores; Connector/NET es el controlador de sistema que permite a Power BI comunicarse con el motor MySQL.

04 · Paso 1 — Obtener datos desde MySQL

1
Abre Power BI Desktop y sitúate en la pestaña Inicio.
2
Haz clic en Obtener datos y selecciona Más... o directamente Base de datos MySQL.
3
Presiona Conectar para abrir el cuadro de diálogo de configuración.
Power BI Desktop · Obtener datos
Inicio Obtener datos ▾ Transformar datos

Obtener datos

▣ Base de datos MySQL
Conectar a una base de datos MySQL relacional local o remota.

05 · Paso 2 — Indicar Servidor y Base de Datos

Ingresa los parámetros de conexión correspondientes a tu entorno:

ParámetroValor Local (XAMPP)Servidor Remoto
Servidorlocalhost o 127.0.0.1:3306IP_SERVIDOR:PUERTO
Base de datoscomercial_pycomercial_py
Modo de conectividadImportar (Recomendado)DirectQuery (Opcional)
Configuración de Origen

Base de datos MySQL

Comprobación previa: Si usas XAMPP, asegúrate de que el módulo MySQL tenga el botón en verde (Running) en el Panel de Control.

06 · Paso 3 — Autenticación y Credenciales

Power BI solicitará el método de autenticación. Selecciona la pestaña Base de datos e ingresa tus credenciales de MySQL:

Nombre de usuario

root (por defecto en XAMPP) o tu usuario creado con permisos.

Contraseña

En blanco (por defecto en XAMPP) o la clave configurada en el servidor.

Nivel de aplicación

Seleccionar el nivel del servidor (ej. localhost:3306) y hacer clic en Conectar.

07 · Paso 4 — Selección de Tablas en el Navegador

El Navegador listará todas las tablas disponibles en el esquema comercial_py:

TablaRol en el ModeloCampos Principales
clientesDimensión de Clientesid_cliente, nombre, apellido, ciudad, email
productosDimensión de Productosid_producto, nombre, categoria, precio, stock
ventasTabla de Hechos (Cabecera)id_venta, id_cliente, fecha, total
detalle_ventaTabla de Hechos (Líneas)id_detalle, id_venta, id_producto, cantidad, precio
Recomendación MSI: Marca las 4 casillas de verificación y haz clic en Transformar datos para abrir el Editor de Power Query y validar formatos antes de cargar.

08 · Paso 5 — Transformación y Limpieza con Power Query

Antes del modelado, revisamos y optimizamos las consultas importadas de MySQL:

  • Tipos de Datos: Asegurar que fecha sea tipo Fecha/Hora, precio y total sean Número decimal fijo (Moneda), y cantidad sea Número entero.
  • Columna Cliente Completo: Crear una columna personalizada o combinada [nombre] & " " & [apellido].
  • Eliminar columnas innecesarias: Quitar campos de auditoría técnica que no aporten valor analítico.
  • Cerrar y aplicar: Hacer clic en Cerrar y aplicar para cargar los datos en el modelo tabular VertiPaq.

09 · Paso 6 — Creación del Modelo Relacional

En la Vista de Modelo de Power BI, verifica y configura las relaciones 1 a N entre las tablas:

  ┌──────────────┐                  ┌──────────────┐
  │   CLIENTES   │                  │  PRODUCTOS   │
  │ (id_cliente) │                  │(id_producto) │
  └──────┬───────┘                  └──────┬───────┘
         │ 1                               │ 1
         │                                 │
         │ *                               │ *
  ┌──────┴───────┐                  ┌──────┴───────┐
  │    VENTAS    │ 1              * │DETALLE_VENTA │
  │  (id_venta)  ├──────────────────┤ (id_detalle) │
  └──────────────┘                  └──────────────┘
  

Medidas DAX Fundamentales

Total Ventas =
SUM(ventas[total])

Cantidad Transacciones =
COUNTROWS(ventas)

Unidades Vendidas =
SUM(detalle_venta[cantidad])

Ticket Promedio =
DIVIDE([Total Ventas], [Cantidad Transacciones], 0)

Margen Estimado =
SUMX(
    detalle_venta,
    detalle_venta[cantidad] * (detalle_venta[precio] * 0.25)
)

10 · Paso 7 — Construcción del Dashboard en Power BI

Diseñamos los objetos visuales para componer un reporte ejecutivo completo:

Tarjetas KPI

Total Ventas (₲), Cantidad de Facturas, Unidades y Ticket Promedio.

Gráfico de Barras

Ranking de Ventas por Categoría y Top Productos más vendidos.

Gráfico de Líneas

Evolución de ventas en el tiempo (por Día o Mes).

Segmentadores (Slicers)

Filtros interactivos por Ciudad de cliente, Categoría y Rango de Fechas.

Tabla Detallada

Matriz de ventas con cliente, fecha, producto, cantidad e importe.

Indicador de Stock

Gráfico de columnas con existencias actuales vs stock mínimo.

11 · Ejercicio Práctico — Caso Comercial PY

Escenario empresarial: La gerencia de Comercial PY necesita monitorear el desempeño de ventas conectando Power BI directamente a la base de datos operativa MySQL.
Guía de implementación:
  1. Verificar datos en HeidiSQL ejecutando un SELECT * FROM ventas;.
  2. Conectar Power BI Desktop a localhost:3306 / comercial_py.
  3. Cargar las 4 tablas e implementar las medidas DAX solicitadas.
  4. Construir la página Resumen Ejecutivo con KPIs y gráficos de distribución.
  5. Construir la página Detalle Operativo con matriz de transacciones y filtros por cliente y ciudad.

12 · ¿Qué pasa cuando cambia MySQL? (Actualización / Refresh)

Cuando el sistema transaccional registra una nueva venta en MySQL mediante un INSERT:

INSERT INTO ventas (id_cliente, fecha, total)
VALUES (2, NOW(), 3250000);
INSERT en MySQL
Dato guardado en disco
Clic en 'Actualizar'
Power Query reejecuta query
Dashboard actualizado
Principio clave: En modo Import, al presionar el botón Actualizar en la cinta de opciones de Power BI Desktop, el motor vuelve a consultar MySQL e incorpora automáticamente las nuevas filas al reporte.

13 · Del PC Local a Power BI Service (On-premises Data Gateway)

Para publicar el informe en la nube (app.powerbi.com) y programar actualizaciones automáticas sin intervención manual:

  MYSQL LOCAL (XAMPP / Servidor On-Premise)
                  │
                  ▼
  ON-PREMISES DATA GATEWAY (Modo Estándar)
                  │ (Túnel HTTPS Seguro Saliente)
                  ▼
  POWER BI SERVICE (Nube Microsoft 365)
                  │
                  ▼
  ACTUALIZACIÓN PROGRAMADA (Ej. Diario a las 08:00 hs)
                  │
                  ▼
  DASHBOARD WEB / MOBILE PARA LA GERENCIA
  
Requisitos de Gateway para MySQL:
  • Instalar On-premises data gateway (Modo Estándar) en la máquina donde reside MySQL o en la red local.
  • Instalar MySQL Connector/NET en la misma máquina donde corre el Gateway.
  • Configurar el origen de datos en Administrar puertas de enlace asegurando coincidencia exacta de nombre de servidor y base.

14 · Solución de Problemas Frecuentes (Troubleshooting)

Error / SíntomaCausa ProbableSolución Recomendada
No aparece el conector de MySQL Versión antigua de Power BI Desktop. Actualizar Power BI Desktop a la última versión disponible desde la Microsoft Store o sitio oficial.
Error de proveedor / Ensamblado no encontrado Falta instalar Oracle MySQL Connector/NET. Descargar e instalar MySQL Connector/NET MSI, reiniciar Power BI Desktop.
No conecta a localhost (Error de conexión) MySQL no está iniciado o puerto bloqueado. Verificar XAMPP (MySQL en verde) y que no haya firewalls bloqueando el puerto 3306.
Access denied for user 'root'@'localhost' Usuario o contraseña incorrectos. Comprobar credenciales de acceso probando primero la conexión en HeidiSQL.
Error al actualizar en Power BI Service Falta Gateway o desajuste de credenciales. Configurar Gateway estándar con Connector/NET y validar credenciales en la nube.

15 · Criterios de Evaluación del Módulo

30% · Conectividad

Configuración correcta y conexión exitosa entre MySQL y Power BI Desktop.

25% · Modelo Relacional

Definición de claves, relaciones 1:N y tipos de datos limpios en Power Query.

25% · Lógica DAX y Visuales

Construcción de medidas analíticas, tarjetas KPI, gráficos interactivos y segmentadores.

20% · Análisis de Negocio

Capacidad de explicar el flujo de actualización y responder preguntas gerenciales con los datos.

MSI PROYECTOS PRÁCTICOS

10 Ejercicios de MySQL + Power BI

Crear una base de datos, trabajarla con HeidiSQL, conectarla a Power BI y construir un dashboard para cada escenario empresarial.

Ruta de trabajo

01 · MySQL

Crear base, tablas, claves y relaciones.

02 · HeidiSQL

Cargar, revisar y consultar datos.

03 · Power BI

Transformar, modelar, calcular y visualizar.

Progresión: comenzar con ventas simples y terminar con un proyecto Comercio 360° que integra ventas, clientes, productos, stock, canales y rentabilidad.
EJERCICIO 01

Tienda informática

Base de datos: ventas_informatica

Objetivo: crear la base en MySQL/HeidiSQL, cargar datos ficticios realistas, conectarla a Power BI y construir un dashboard empresarial.

1. Crear la base de datos

CREATE DATABASE ventas_informatica;
USE ventas_informatica;

CREATE TABLE clientes (
 id_cliente INT AUTO_INCREMENT PRIMARY KEY,
 nombre VARCHAR(100) NOT NULL,
 ciudad VARCHAR(80)
);

CREATE TABLE productos (
 id_producto INT AUTO_INCREMENT PRIMARY KEY,
 producto VARCHAR(120) NOT NULL,
 categoria VARCHAR(80),
 precio DECIMAL(12,2),
 stock INT
);

CREATE TABLE ventas (
 id_venta INT AUTO_INCREMENT PRIMARY KEY,
 id_cliente INT,
 id_producto INT,
 fecha DATE,
 cantidad INT,
 total DECIMAL(12,2),
 FOREIGN KEY (id_cliente) REFERENCES clientes(id_cliente),
 FOREIGN KEY (id_producto) REFERENCES productos(id_producto)
);

2. Cargar datos

Cargar como mínimo 20 registros en las tablas principales y suficientes movimientos para generar análisis. Utilizar nombres, ciudades y valores realistas de Paraguay.

Antes de Power BI: ejecutar al menos 3 consultas SQL que permitan comprobar y analizar los datos.

3. Conectar con Power BI

  1. Power BI Desktop → Obtener datosMySQL database.
  2. Servidor: localhost:3306.
  3. Seleccionar la base ventas_informatica.
  4. Ingresar las credenciales de MySQL.
  5. Seleccionar las tablas.
  6. Elegir Transformar datos y revisar Power Query.
  7. Cargar el modelo.

4. Medidas DAX

Total = SUM(Ventas[Total])

Cantidad = COUNTROWS(Ventas)

Promedio = AVERAGE(Ventas[Total])

Adaptar nombres de tablas y columnas al ejercicio. En modelos con detalle de ventas, calcular los indicadores desde el nivel correcto para evitar duplicaciones.

5. Dashboard requerido

Indicadores
  • Total de ventas
  • Unidades vendidas
  • Ventas por categoría
  • Ventas por ciudad
  • Top 5 productos
Visualizaciones
  • KPI
  • Barras
  • Línea temporal
  • Segmentadores
  • Tabla detallada
Interactividad
  • Filtro de fecha
  • Segmentador principal
  • Filtros cruzados
  • Título del dashboard
Desafío: presentar al menos 5 conclusiones de negocio obtenidas del dashboard.
EJERCICIO 02

Distribuidora — inventario

Base de datos: inventario_distribuidora

Objetivo: crear la base en MySQL/HeidiSQL, cargar datos ficticios realistas, conectarla a Power BI y construir un dashboard empresarial.

1. Crear la base de datos

CREATE DATABASE inventario_distribuidora;
USE inventario_distribuidora;

CREATE TABLE categorias (
 id_categoria INT AUTO_INCREMENT PRIMARY KEY,
 nombre VARCHAR(80) NOT NULL
);

CREATE TABLE productos (
 id_producto INT AUTO_INCREMENT PRIMARY KEY,
 nombre VARCHAR(120) NOT NULL,
 id_categoria INT,
 costo DECIMAL(12,2),
 precio DECIMAL(12,2),
 stock INT,
 stock_minimo INT,
 FOREIGN KEY (id_categoria) REFERENCES categorias(id_categoria)
);

CREATE TABLE movimientos (
 id_movimiento INT AUTO_INCREMENT PRIMARY KEY,
 id_producto INT,
 fecha DATE,
 tipo VARCHAR(20),
 cantidad INT,
 FOREIGN KEY (id_producto) REFERENCES productos(id_producto)
);

2. Cargar datos

Cargar como mínimo 20 registros en las tablas principales y suficientes movimientos para generar análisis. Utilizar nombres, ciudades y valores realistas de Paraguay.

Antes de Power BI: ejecutar al menos 3 consultas SQL que permitan comprobar y analizar los datos.

3. Conectar con Power BI

  1. Power BI Desktop → Obtener datosMySQL database.
  2. Servidor: localhost:3306.
  3. Seleccionar la base inventario_distribuidora.
  4. Ingresar las credenciales de MySQL.
  5. Seleccionar las tablas.
  6. Elegir Transformar datos y revisar Power Query.
  7. Cargar el modelo.

4. Medidas DAX

Total = SUM(Ventas[Total])

Cantidad = COUNTROWS(Ventas)

Promedio = AVERAGE(Ventas[Total])

Adaptar nombres de tablas y columnas al ejercicio. En modelos con detalle de ventas, calcular los indicadores desde el nivel correcto para evitar duplicaciones.

5. Dashboard requerido

Indicadores
  • Valor del stock
  • Productos con stock bajo
  • Entradas vs salidas
  • Stock por categoría
  • Productos sin movimiento
Visualizaciones
  • KPI
  • Formato condicional
  • Columnas
  • Barras
  • Segmentador
Interactividad
  • Filtro de fecha
  • Segmentador principal
  • Filtros cruzados
  • Título del dashboard
Desafío: presentar al menos 5 conclusiones de negocio obtenidas del dashboard.
EJERCICIO 03

Restaurante — pedidos

Base de datos: restaurante

Objetivo: crear la base en MySQL/HeidiSQL, cargar datos ficticios realistas, conectarla a Power BI y construir un dashboard empresarial.

1. Crear la base de datos

CREATE DATABASE restaurante;
USE restaurante;

CREATE TABLE clientes (
 id_cliente INT AUTO_INCREMENT PRIMARY KEY,
 nombre VARCHAR(120)
);

CREATE TABLE platos (
 id_plato INT AUTO_INCREMENT PRIMARY KEY,
 nombre VARCHAR(120),
 categoria VARCHAR(80),
 precio DECIMAL(10,2)
);

CREATE TABLE pedidos (
 id_pedido INT AUTO_INCREMENT PRIMARY KEY,
 id_cliente INT,
 fecha DATETIME,
 forma_pago VARCHAR(40),
 total DECIMAL(10,2),
 FOREIGN KEY (id_cliente) REFERENCES clientes(id_cliente)
);

CREATE TABLE detalle_pedido (
 id_detalle INT AUTO_INCREMENT PRIMARY KEY,
 id_pedido INT,
 id_plato INT,
 cantidad INT,
 subtotal DECIMAL(10,2),
 FOREIGN KEY (id_pedido) REFERENCES pedidos(id_pedido),
 FOREIGN KEY (id_plato) REFERENCES platos(id_plato)
);

2. Cargar datos

Cargar como mínimo 20 registros en las tablas principales y suficientes movimientos para generar análisis. Utilizar nombres, ciudades y valores realistas de Paraguay.

Antes de Power BI: ejecutar al menos 3 consultas SQL que permitan comprobar y analizar los datos.

3. Conectar con Power BI

  1. Power BI Desktop → Obtener datosMySQL database.
  2. Servidor: localhost:3306.
  3. Seleccionar la base restaurante.
  4. Ingresar las credenciales de MySQL.
  5. Seleccionar las tablas.
  6. Elegir Transformar datos y revisar Power Query.
  7. Cargar el modelo.

4. Medidas DAX

Total = SUM(Ventas[Total])

Cantidad = COUNTROWS(Ventas)

Promedio = AVERAGE(Ventas[Total])

Adaptar nombres de tablas y columnas al ejercicio. En modelos con detalle de ventas, calcular los indicadores desde el nivel correcto para evitar duplicaciones.

5. Dashboard requerido

Indicadores
  • Facturación total
  • Pedidos
  • Ticket promedio
  • Platos más vendidos
  • Ventas por forma de pago
Visualizaciones
  • Tarjetas
  • Línea
  • Top 10
  • Donut
  • Filtro de fecha
Interactividad
  • Filtro de fecha
  • Segmentador principal
  • Filtros cruzados
  • Título del dashboard
Desafío: presentar al menos 5 conclusiones de negocio obtenidas del dashboard.
EJERCICIO 04

Taller mecánico

Base de datos: taller_mecanico

Objetivo: crear la base en MySQL/HeidiSQL, cargar datos ficticios realistas, conectarla a Power BI y construir un dashboard empresarial.

1. Crear la base de datos

CREATE DATABASE taller_mecanico;
USE taller_mecanico;

CREATE TABLE clientes (
 id_cliente INT AUTO_INCREMENT PRIMARY KEY,
 nombre VARCHAR(100),
 telefono VARCHAR(30)
);

CREATE TABLE vehiculos (
 id_vehiculo INT AUTO_INCREMENT PRIMARY KEY,
 id_cliente INT,
 marca VARCHAR(60),
 modelo VARCHAR(60),
 anio INT,
 FOREIGN KEY (id_cliente) REFERENCES clientes(id_cliente)
);

CREATE TABLE servicios (
 id_servicio INT AUTO_INCREMENT PRIMARY KEY,
 descripcion VARCHAR(150),
 precio DECIMAL(12,2)
);

CREATE TABLE ordenes (
 id_orden INT AUTO_INCREMENT PRIMARY KEY,
 id_vehiculo INT,
 id_servicio INT,
 fecha DATE,
 estado VARCHAR(30),
 total DECIMAL(12,2),
 FOREIGN KEY (id_vehiculo) REFERENCES vehiculos(id_vehiculo),
 FOREIGN KEY (id_servicio) REFERENCES servicios(id_servicio)
);

2. Cargar datos

Cargar como mínimo 20 registros en las tablas principales y suficientes movimientos para generar análisis. Utilizar nombres, ciudades y valores realistas de Paraguay.

Antes de Power BI: ejecutar al menos 3 consultas SQL que permitan comprobar y analizar los datos.

3. Conectar con Power BI

  1. Power BI Desktop → Obtener datosMySQL database.
  2. Servidor: localhost:3306.
  3. Seleccionar la base taller_mecanico.
  4. Ingresar las credenciales de MySQL.
  5. Seleccionar las tablas.
  6. Elegir Transformar datos y revisar Power Query.
  7. Cargar el modelo.

4. Medidas DAX

Total = SUM(Ventas[Total])

Cantidad = COUNTROWS(Ventas)

Promedio = AVERAGE(Ventas[Total])

Adaptar nombres de tablas y columnas al ejercicio. En modelos con detalle de ventas, calcular los indicadores desde el nivel correcto para evitar duplicaciones.

5. Dashboard requerido

Indicadores
  • Ingresos
  • Órdenes abiertas
  • Órdenes terminadas
  • Servicios más solicitados
  • Ingresos mensuales
Visualizaciones
  • KPI
  • Embudo
  • Barras
  • Línea
  • Tabla
Interactividad
  • Filtro de fecha
  • Segmentador principal
  • Filtros cruzados
  • Título del dashboard
Desafío: presentar al menos 5 conclusiones de negocio obtenidas del dashboard.
EJERCICIO 05

Clínica — turnos

Base de datos: clinica_turnos

Objetivo: crear la base en MySQL/HeidiSQL, cargar datos ficticios realistas, conectarla a Power BI y construir un dashboard empresarial.

1. Crear la base de datos

CREATE DATABASE clinica_turnos;
USE clinica_turnos;

CREATE TABLE pacientes (
 id_paciente INT AUTO_INCREMENT PRIMARY KEY,
 nombre VARCHAR(120),
 ciudad VARCHAR(80)
);

CREATE TABLE profesionales (
 id_profesional INT AUTO_INCREMENT PRIMARY KEY,
 nombre VARCHAR(120),
 especialidad VARCHAR(100)
);

CREATE TABLE turnos (
 id_turno INT AUTO_INCREMENT PRIMARY KEY,
 id_paciente INT,
 id_profesional INT,
 fecha DATE,
 estado VARCHAR(30),
 importe DECIMAL(10,2),
 FOREIGN KEY (id_paciente) REFERENCES pacientes(id_paciente),
 FOREIGN KEY (id_profesional) REFERENCES profesionales(id_profesional)
);

2. Cargar datos

Cargar como mínimo 20 registros en las tablas principales y suficientes movimientos para generar análisis. Utilizar nombres, ciudades y valores realistas de Paraguay.

Antes de Power BI: ejecutar al menos 3 consultas SQL que permitan comprobar y analizar los datos.

3. Conectar con Power BI

  1. Power BI Desktop → Obtener datosMySQL database.
  2. Servidor: localhost:3306.
  3. Seleccionar la base clinica_turnos.
  4. Ingresar las credenciales de MySQL.
  5. Seleccionar las tablas.
  6. Elegir Transformar datos y revisar Power Query.
  7. Cargar el modelo.

4. Medidas DAX

Total = SUM(Ventas[Total])

Cantidad = COUNTROWS(Ventas)

Promedio = AVERAGE(Ventas[Total])

Adaptar nombres de tablas y columnas al ejercicio. En modelos con detalle de ventas, calcular los indicadores desde el nivel correcto para evitar duplicaciones.

5. Dashboard requerido

Indicadores
  • Turnos totales
  • Turnos atendidos
  • Cancelaciones
  • Ingresos por especialidad
  • Profesionales con más turnos
Visualizaciones
  • KPI
  • Donut
  • Barras
  • Ranking
  • Línea
Interactividad
  • Filtro de fecha
  • Segmentador principal
  • Filtros cruzados
  • Título del dashboard
Desafío: presentar al menos 5 conclusiones de negocio obtenidas del dashboard.
EJERCICIO 06

Hotel — reservas

Base de datos: hotel_reservas

Objetivo: crear la base en MySQL/HeidiSQL, cargar datos ficticios realistas, conectarla a Power BI y construir un dashboard empresarial.

1. Crear la base de datos

CREATE DATABASE hotel_reservas;
USE hotel_reservas;

CREATE TABLE clientes (
 id_cliente INT AUTO_INCREMENT PRIMARY KEY,
 nombre VARCHAR(120),
 pais VARCHAR(80)
);

CREATE TABLE habitaciones (
 id_habitacion INT AUTO_INCREMENT PRIMARY KEY,
 numero VARCHAR(10),
 tipo VARCHAR(60),
 tarifa DECIMAL(10,2)
);

CREATE TABLE reservas (
 id_reserva INT AUTO_INCREMENT PRIMARY KEY,
 id_cliente INT,
 id_habitacion INT,
 entrada DATE,
 salida DATE,
 estado VARCHAR(30),
 total DECIMAL(12,2),
 FOREIGN KEY (id_cliente) REFERENCES clientes(id_cliente),
 FOREIGN KEY (id_habitacion) REFERENCES habitaciones(id_habitacion)
);

2. Cargar datos

Cargar como mínimo 20 registros en las tablas principales y suficientes movimientos para generar análisis. Utilizar nombres, ciudades y valores realistas de Paraguay.

Antes de Power BI: ejecutar al menos 3 consultas SQL que permitan comprobar y analizar los datos.

3. Conectar con Power BI

  1. Power BI Desktop → Obtener datosMySQL database.
  2. Servidor: localhost:3306.
  3. Seleccionar la base hotel_reservas.
  4. Ingresar las credenciales de MySQL.
  5. Seleccionar las tablas.
  6. Elegir Transformar datos y revisar Power Query.
  7. Cargar el modelo.

4. Medidas DAX

Total = SUM(Ventas[Total])

Cantidad = COUNTROWS(Ventas)

Promedio = AVERAGE(Ventas[Total])

Adaptar nombres de tablas y columnas al ejercicio. En modelos con detalle de ventas, calcular los indicadores desde el nivel correcto para evitar duplicaciones.

5. Dashboard requerido

Indicadores
  • Ingresos
  • Habitaciones ocupadas
  • Noches vendidas
  • Ocupación por tipo
  • Ingresos mensuales
Visualizaciones
  • KPI
  • Barras
  • Línea
  • Matriz
  • Segmentador
Interactividad
  • Filtro de fecha
  • Segmentador principal
  • Filtros cruzados
  • Título del dashboard
Desafío: presentar al menos 5 conclusiones de negocio obtenidas del dashboard.
EJERCICIO 07

Logística — entregas

Base de datos: logistica_entregas

Objetivo: crear la base en MySQL/HeidiSQL, cargar datos ficticios realistas, conectarla a Power BI y construir un dashboard empresarial.

1. Crear la base de datos

CREATE DATABASE logistica_entregas;
USE logistica_entregas;

CREATE TABLE clientes (
 id_cliente INT AUTO_INCREMENT PRIMARY KEY,
 nombre VARCHAR(120),
 ciudad VARCHAR(80)
);

CREATE TABLE envios (
 id_envio INT AUTO_INCREMENT PRIMARY KEY,
 id_cliente INT,
 fecha DATE,
 origen VARCHAR(80),
 destino VARCHAR(80),
 estado VARCHAR(30),
 costo DECIMAL(12,2),
 FOREIGN KEY (id_cliente) REFERENCES clientes(id_cliente)
);

CREATE TABLE repartidores (
 id_repartidor INT AUTO_INCREMENT PRIMARY KEY,
 nombre VARCHAR(120)
);

CREATE TABLE entregas (
 id_entrega INT AUTO_INCREMENT PRIMARY KEY,
 id_envio INT,
 id_repartidor INT,
 fecha_entrega DATE,
 estado VARCHAR(30),
 FOREIGN KEY (id_envio) REFERENCES envios(id_envio),
 FOREIGN KEY (id_repartidor) REFERENCES repartidores(id_repartidor)
);

2. Cargar datos

Cargar como mínimo 20 registros en las tablas principales y suficientes movimientos para generar análisis. Utilizar nombres, ciudades y valores realistas de Paraguay.

Antes de Power BI: ejecutar al menos 3 consultas SQL que permitan comprobar y analizar los datos.

3. Conectar con Power BI

  1. Power BI Desktop → Obtener datosMySQL database.
  2. Servidor: localhost:3306.
  3. Seleccionar la base logistica_entregas.
  4. Ingresar las credenciales de MySQL.
  5. Seleccionar las tablas.
  6. Elegir Transformar datos y revisar Power Query.
  7. Cargar el modelo.

4. Medidas DAX

Total = SUM(Ventas[Total])

Cantidad = COUNTROWS(Ventas)

Promedio = AVERAGE(Ventas[Total])

Adaptar nombres de tablas y columnas al ejercicio. En modelos con detalle de ventas, calcular los indicadores desde el nivel correcto para evitar duplicaciones.

5. Dashboard requerido

Indicadores
  • Cantidad de envíos
  • Costo total
  • Entregas exitosas
  • Envíos por destino
  • Rendimiento por repartidor
Visualizaciones
  • KPI
  • Barras
  • Donut
  • Ranking
  • Línea
Interactividad
  • Filtro de fecha
  • Segmentador principal
  • Filtros cruzados
  • Título del dashboard
Desafío: presentar al menos 5 conclusiones de negocio obtenidas del dashboard.
EJERCICIO 08

Recursos humanos

Base de datos: rrhh_empresa

Objetivo: crear la base en MySQL/HeidiSQL, cargar datos ficticios realistas, conectarla a Power BI y construir un dashboard empresarial.

1. Crear la base de datos

CREATE DATABASE rrhh_empresa;
USE rrhh_empresa;

CREATE TABLE departamentos (
 id_departamento INT AUTO_INCREMENT PRIMARY KEY,
 nombre VARCHAR(100)
);

CREATE TABLE empleados (
 id_empleado INT AUTO_INCREMENT PRIMARY KEY,
 nombre VARCHAR(120),
 id_departamento INT,
 cargo VARCHAR(100),
 salario DECIMAL(12,2),
 fecha_ingreso DATE,
 estado VARCHAR(30),
 FOREIGN KEY (id_departamento) REFERENCES departamentos(id_departamento)
);

CREATE TABLE asistencias (
 id_asistencia INT AUTO_INCREMENT PRIMARY KEY,
 id_empleado INT,
 fecha DATE,
 estado VARCHAR(30),
 FOREIGN KEY (id_empleado) REFERENCES empleados(id_empleado)
);

2. Cargar datos

Cargar como mínimo 20 registros en las tablas principales y suficientes movimientos para generar análisis. Utilizar nombres, ciudades y valores realistas de Paraguay.

Antes de Power BI: ejecutar al menos 3 consultas SQL que permitan comprobar y analizar los datos.

3. Conectar con Power BI

  1. Power BI Desktop → Obtener datosMySQL database.
  2. Servidor: localhost:3306.
  3. Seleccionar la base rrhh_empresa.
  4. Ingresar las credenciales de MySQL.
  5. Seleccionar las tablas.
  6. Elegir Transformar datos y revisar Power Query.
  7. Cargar el modelo.

4. Medidas DAX

Total = SUM(Ventas[Total])

Cantidad = COUNTROWS(Ventas)

Promedio = AVERAGE(Ventas[Total])

Adaptar nombres de tablas y columnas al ejercicio. En modelos con detalle de ventas, calcular los indicadores desde el nivel correcto para evitar duplicaciones.

5. Dashboard requerido

Indicadores
  • Empleados
  • Masa salarial
  • Empleados por departamento
  • Ausencias
  • Antigüedad promedio
Visualizaciones
  • KPI
  • Barras
  • Matriz
  • Línea
  • Segmentador
Interactividad
  • Filtro de fecha
  • Segmentador principal
  • Filtros cruzados
  • Título del dashboard
Desafío: presentar al menos 5 conclusiones de negocio obtenidas del dashboard.
EJERCICIO 09

Academia — cursos

Base de datos: academia_cursos

Objetivo: crear la base en MySQL/HeidiSQL, cargar datos ficticios realistas, conectarla a Power BI y construir un dashboard empresarial.

1. Crear la base de datos

CREATE DATABASE academia_cursos;
USE academia_cursos;

CREATE TABLE alumnos (
 id_alumno INT AUTO_INCREMENT PRIMARY KEY,
 nombre VARCHAR(120),
 ciudad VARCHAR(80)
);

CREATE TABLE cursos (
 id_curso INT AUTO_INCREMENT PRIMARY KEY,
 nombre VARCHAR(120),
 categoria VARCHAR(80),
 precio DECIMAL(10,2)
);

CREATE TABLE matriculas (
 id_matricula INT AUTO_INCREMENT PRIMARY KEY,
 id_alumno INT,
 id_curso INT,
 fecha DATE,
 estado VARCHAR(30),
 importe DECIMAL(10,2),
 FOREIGN KEY (id_alumno) REFERENCES alumnos(id_alumno),
 FOREIGN KEY (id_curso) REFERENCES cursos(id_curso)
);

2. Cargar datos

Cargar como mínimo 20 registros en las tablas principales y suficientes movimientos para generar análisis. Utilizar nombres, ciudades y valores realistas de Paraguay.

Antes de Power BI: ejecutar al menos 3 consultas SQL que permitan comprobar y analizar los datos.

3. Conectar con Power BI

  1. Power BI Desktop → Obtener datosMySQL database.
  2. Servidor: localhost:3306.
  3. Seleccionar la base academia_cursos.
  4. Ingresar las credenciales de MySQL.
  5. Seleccionar las tablas.
  6. Elegir Transformar datos y revisar Power Query.
  7. Cargar el modelo.

4. Medidas DAX

Total = SUM(Ventas[Total])

Cantidad = COUNTROWS(Ventas)

Promedio = AVERAGE(Ventas[Total])

Adaptar nombres de tablas y columnas al ejercicio. En modelos con detalle de ventas, calcular los indicadores desde el nivel correcto para evitar duplicaciones.

5. Dashboard requerido

Indicadores
  • Ingresos
  • Alumnos
  • Cursos más vendidos
  • Alumnos por ciudad
  • Matrículas por mes
Visualizaciones
  • KPI
  • Barras
  • Segmentador
  • Línea
  • Donut
Interactividad
  • Filtro de fecha
  • Segmentador principal
  • Filtros cruzados
  • Título del dashboard
Desafío: presentar al menos 5 conclusiones de negocio obtenidas del dashboard.
EJERCICIO 10

Comercio 360° — proyecto integrador

Base de datos: comercio_360

Objetivo: crear la base en MySQL/HeidiSQL, cargar datos ficticios realistas, conectarla a Power BI y construir un dashboard empresarial.

1. Crear la base de datos

CREATE DATABASE comercio_360;
USE comercio_360;

CREATE TABLE clientes (
 id_cliente INT AUTO_INCREMENT PRIMARY KEY,
 nombre VARCHAR(120),
 ciudad VARCHAR(80)
);

CREATE TABLE categorias (
 id_categoria INT AUTO_INCREMENT PRIMARY KEY,
 nombre VARCHAR(80)
);

CREATE TABLE productos (
 id_producto INT AUTO_INCREMENT PRIMARY KEY,
 nombre VARCHAR(120),
 id_categoria INT,
 precio DECIMAL(12,2),
 costo DECIMAL(12,2),
 stock INT,
 FOREIGN KEY (id_categoria) REFERENCES categorias(id_categoria)
);

CREATE TABLE ventas (
 id_venta INT AUTO_INCREMENT PRIMARY KEY,
 id_cliente INT,
 fecha DATE,
 canal VARCHAR(40),
 total DECIMAL(12,2),
 FOREIGN KEY (id_cliente) REFERENCES clientes(id_cliente)
);

CREATE TABLE detalle_venta (
 id_detalle INT AUTO_INCREMENT PRIMARY KEY,
 id_venta INT,
 id_producto INT,
 cantidad INT,
 precio DECIMAL(12,2),
 FOREIGN KEY (id_venta) REFERENCES ventas(id_venta),
 FOREIGN KEY (id_producto) REFERENCES productos(id_producto)
);

2. Cargar datos

Cargar como mínimo 20 registros en las tablas principales y suficientes movimientos para generar análisis. Utilizar nombres, ciudades y valores realistas de Paraguay.

Antes de Power BI: ejecutar al menos 3 consultas SQL que permitan comprobar y analizar los datos.

3. Conectar con Power BI

  1. Power BI Desktop → Obtener datosMySQL database.
  2. Servidor: localhost:3306.
  3. Seleccionar la base comercio_360.
  4. Ingresar las credenciales de MySQL.
  5. Seleccionar las tablas.
  6. Elegir Transformar datos y revisar Power Query.
  7. Cargar el modelo.

4. Medidas DAX

Total = SUM(Ventas[Total])

Cantidad = COUNTROWS(Ventas)

Promedio = AVERAGE(Ventas[Total])

Adaptar nombres de tablas y columnas al ejercicio. En modelos con detalle de ventas, calcular los indicadores desde el nivel correcto para evitar duplicaciones.

5. Dashboard requerido

Indicadores
  • Ventas totales
  • Margen bruto
  • Ticket promedio
  • Ventas por canal
  • Top productos
  • Clientes principales
  • Stock crítico
  • Ventas mensuales
Visualizaciones
  • KPI
  • Barras
  • Línea
  • Donut
  • Tabla
  • Segmentadores
  • Drill-through
Interactividad
  • Filtro de fecha
  • Segmentador principal
  • Filtros cruzados
  • Título del dashboard
Desafío: presentar al menos 5 conclusiones de negocio obtenidas del dashboard.