Power BI

Tabla de hechos en Power BI: diseña tu modelo de ventas

noviembre 5, 2026 Tuto Excel 13 min read
Tabla de hechos en Power BI: diseña tu modelo de ventas

Una tabla de hechos en Power BI es la tabla que guarda eventos medibles, como ventas, pedidos o pagos. La usaremos para separar cada venta de las descripciones de productos, clientes y fechas, crear relaciones y evitar que los totales se multipliquen.

El proceso puede preparedse en Excel con Power Query, disponible desde Excel 2016, o directamente en Power BI Desktop. Al terminar, el lector tendrá un modelo en esquema estrella listo para analizar.

Nota: las fórmulas de Excel de este tutorial usan punto y coma. En Excel configurado con punto decimal, usa coma como separador.

Qué es una tabla de hechos y qué información contiene

La tabla de hechos contiene los datos que se analizan mediante medidas. En una tienda, cada fila puede representar una venta: fecha, factura, producto, cliente, cantidad e importe. Los importes son medidas que Power BI puede sumar, promediar o comparar.

Las tablas de dimensiones explican los elementos de esa venta. Productos contiene código y nombre; Clientes, identificador y ciudad; Calendario, fecha y sus componentes como año o mes.

Tabla Ejemplo de información Función en el modelo
Ventas Fecha, factura, producto, cliente, cantidad, importe Guardar eventos medibles
Productos IDProducto, nombre del producto Describir y agrupar productos
Clientes IDCliente, cliente, ciudad Describir y filtrar clientes
Calendario Fecha, año, mes, nombre del mes Filtrar ventas por periodo

La tabla de hechos no debe repetir descripciones que cambian infrequently. La separación evita datos redundantes y facilita conectar varias tablas de hechos con dimensiones comunes.

Las partes de un modelo con tabla de hechos

Un modelo dimensional organiza los hechos alrededor de una tabla central y distribuye sus claves entre dimensiones. En nuestro libro, Ventas será esa tabla central. Cada venta conservará el identificador del producto, del cliente y la fecha.

Parte En Ventas En la dimensión
Clave de producto IDProducto IDProducto
Clave de cliente IDCliente IDCliente
Clave de fecha Fecha Fecha
Medidas Cantidad, Importe No se necesitan para identificar

La relación debe ser uno a varios: una fila de Productos se relaciona con muchas ventas del mismo producto; una fila de Clientes, con muchas ventas; una fila de Calendario, con muchas ventas registradas ese día.

La clave que identifica cada hecho

La clave de hecho no identifica por sí sola una venta; conecta la venta con sus dimensiones. IDProducto debe ser único en Productos, IDCliente debe ser único en Clientes y Fecha debe existir una sola vez en Calendario.

A2fxV-001
A B C D E F
1 IDVenta Fecha IDProducto IDCliente Cantidad Importe
2 V-001 03/01/2026 P-01 C-01 2 30,00
3 V-002 03/01/2026 P-02 C-01 1 18,50
4 V-003 04/01/2026 P-01 C-02 3 45,00
5 V-004 05/01/2026 P-03 C-02 1 12,00
6 V-005 05/01/2026 P-01 C-01 2 30,00
7 V-006 06/01/2026 P-02 C-03 4 74,00
8 V-007 07/01/2026 P-03 C-03 1 12,00
Ventas

Una venta puede tener su propio IDVenta para distinguirla. Si una factura contiene varias líneas, el grano debe ser la línea de factura, no la factura completa.

Las medidas que puedes analizar

Cantidad e Importe son medidas. En una medida DAX, Ventas Importe = SUM ( Ventas[Importe] ) suma los importes. Una medida también puede contar facturas: Ventas Facturas = DISTINCTCOUNT ( Ventas[IDVenta] ).

La granularidad determina el resultado: si una fila es una línea de venta, la suma de Importe será el total de todas las líneas. Si dos filas describen la misma venta, el total será incorrecto.

Columna Tipo Uso recomendado
Cantidad Número entero SUM para unidades vendidas
Importe Número decimal SUM para ingresos
IDVenta Texto DISTINCTCOUNT para contar ventas

Preparar una tabla de ventas en Excel

Creamos el libro Ventas_tienda.xlsx con cuatro hojas. La primera contiene los eventos; las otras serán dimensiones. Para este ejercicio, Excel 2016 permite preparar y transformar los datos con Power Query.

  1. Abre Excel y crea un libro nuevo.
  2. Cambia el nombre de la Hoja1 por Ventas.
  3. Escribe los encabezados IDVenta, Fecha, IDProducto, IDCliente, Cantidad e Importe.
  4. Copia los siete registros de la hoja siguiente.
  5. Formatea la columna B como Fecha corta.
  6. Formatea la columna F como Número con dos decimales.
  7. Guarda el libro como Ventas_tienda.xlsx.
A1fxIDVenta
A B C D E F
1 IDVenta Fecha IDProducto IDCliente Cantidad Importe
2 V-001 03/01/2026 P-01 C-01 2 30,00
3 V-002 03/01/2026 P-02 C-01 1 18,50
4 V-003 04/01/2026 P-01 C-02 3 45,00
5 V-004 05/01/2026 P-03 C-02 1 12,00
6 V-005 05/01/2026 P-01 C-01 2 30,00
7 V-006 06/01/2026 P-02 C-03 4 74,00
8 V-007 07/01/2026 P-03 C-03 1 12,00
Ventas
Comprueba: la hoja Ventas contiene siete filas de datos, una columna Fecha y dos columnas numéricas para analizar.

Identificar el grano de cada venta

El grano actual es una línea de venta. IDVenta identifica esa línea; IDProducto, IDCliente y Fecha indican con qué registros puede relacionarse.

Para comprobarlo:

  1. Selecciona A2:A8.
  2. Usa Datos > Herramientas de datos > Eliminar duplicados.
  3. Confirma que Excel informa que quedan siete registros.
  4. Revisa que cada fila tenga producto, cliente, cantidad e importe.
  5. Si una factura tuviera tres productos, escribe tres IDVenta diferentes, uno por línea.
A2fxV-001
A B C D E F
1 IDVenta Fecha IDProducto IDCliente Cantidad Importe
2 V-001 03/01/2026 P-01 C-01 2 30,00
3 V-002 03/01/2026 P-02 C-01 1 18,50
4 V-003 04/01/2026 P-01 C-02 3 45,00
5 V-004 05/01/2026 P-03 C-02 1 12,00
6 V-005 05/01/2026 P-01 C-01 2 30,00
7 V-006 06/01/2026 P-02 C-03 4 74,00
8 V-007 07/01/2026 P-03 C-03 1 12,00
Ventas
Comprueba: no hay IDVenta repetidos y cada fila corresponde a una venta, no a una factura completa.

Convertir los datos en una tabla de Excel

Convertimos el rango en una tabla para conservar encabezados y facilitar su lectura en Power Query.

  1. Selecciona A1:F8.
  2. Abre la pestaña Insertar.
  3. En el grupo Tablas, pulsa Tabla.
  4. Acepta que el rango tenga encabezados.
  5. En Propiedades de tabla, conserva Ventas como nombre.
  6. Guarda el libro.
InsertarTablasTabla
A1fxIDVenta
A B C D E F
1 IDVenta Fecha IDProducto IDCliente Cantidad Importe
2 V-001 03/01/2026 P-01 C-01 2 30,00
3 V-002 03/01/2026 P-02 C-01 1 18,50
4 V-003 04/01/2026 P-01 C-02 3 45,00
5 V-004 05/01/2026 P-03 C-02 1 12,00
6 V-005 05/01/2026 P-01 C-01 2 30,00
7 V-006 06/01/2026 P-02 C-03 4 74,00
8 V-007 07/01/2026 P-03 C-03 1 12,00
Ventas
Comprueba: aparecen los filtros en el encabezado y el rango se muestra como tabla Ventas.

Separar ventas de productos, clientes y fechas

Ahora añadimos las dimensiones. Productos y Clientes contendrán una clave única y atributos descriptivos. Calendario tendrá una fila por día, desde el 1 hasta el 7 de enero de 2026.

Hoja Clave Atributos
Productos IDProducto NombreProducto
Clientes IDCliente Cliente, Ciudad
Calendario Fecha Año, Mes, NombreMes

Las claves deben conservar exactamente el mismo tipo y formato que sus columnas equivalentes en Ventas. Si IDProducto es texto, también lo será en Productos.

Crear la tabla de productos

  1. Crea una hoja llamada Productos.
  2. Escribe IDProducto y NombreProducto en A1 y B1.
  3. Copia estas tres combinaciones.
  4. Selecciona A1:B4.
  5. En Insertar > Tablas, pulsa Tabla.
  6. Asigna el nombre Productos.
A2fxP-01
A B
1 IDProducto NombreProducto
2 P-01 Cuaderno
3 P-02 Lapiz
4 P-03 Goma
Productos

Cada código aparece una sola vez. Si dos productos comparten nombre, reciben códigos distintos.

Comprueba: Productos contiene tres claves únicas y todos sus códigos aparecen en Ventas.

Crear la tabla de clientes

  1. Crea una hoja llamada Clientes.
  2. Escribe IDCliente, Cliente y Ciudad en A1, B1 y C1.
  3. Copia los tres registros.
  4. Selecciona A1:C4.
  5. En Insertar > Tablas, pulsa Tabla.
  6. Asigna el nombre Clientes.
A2fxC-01
A B C
1 IDCliente Cliente Ciudad
2 C-01 almacen Norte Medellin
3 C-02 libreria Centro Medellin
4 C-03 papeleria Sur Bogota
Clientes

No incluyas Ciudad como parte de la clave: un mismo cliente puede tener varias ubicaciones en el futuro y debe conservar su historial de ventas.

Comprueba: cada IDCliente aparece una sola vez y puede relacionarse con varias ventas.

Crear la tabla de fechas

Construimos Calendario con siete fechas. Para el ejemplo, escribimos las fechas y después calculamos Año, Mes y NombreMes.

  1. Crea una hoja llamada Calendario.
  2. Escribe Fecha, Año, Mes y NombreMes en A1:D1.
  3. Escribe 01/01/2026 en A2 y 07/01/2026 en A8.
  4. Selecciona A2:A8 y usa el controlador de relleno.
  5. En B2 escribe =AÑO(A2) y arrastra hasta B8.
  6. En C2 escribe =MES(A2) y arrastra hasta C8.
  7. En D2 escribe =TEXTO(A2;"mmmm") y arrastra hasta D8.
  8. Selecciona A1:D8 y crea la tabla Calendario.

=AÑO(A2)
=MES(A2)
=TEXTO(A2;"mmmm")
A2fx01/01/2026
A B C D
1 Fecha Año Mes NombreMes
2 01/01/2026 2026 1 Enero
3 02/01/2026 2026 1 Enero
4 03/01/2026 2026 1 Enero
5 04/01/2026 2026 1 Enero
6 05/01/2026 2026 1 Enero
7 06/01/2026 2026 1 Enero
8 07/01/2026 2026 1 Enero
Calendario
Comprueba: Calendario tiene una fila por día, sin fechas repetidas, y cada fecha de Ventas aparece en la columna Fecha.

Cargar las tablas separadas en Power BI

Para crear el modelo en Power BI Desktop, abres Obtener datos > Excel y seleccionas Ventas_tienda.xlsx. Power Query importará la hoja Ventas; después duplicas consultas y reduces cada copia a su dimensión.

Nota: Power Query está integrado en Excel 2016, Microsoft 365, 2021 y 2024. En Excel 2010 y 2013 se instala como complemento. La web y Mac ofrecen menos conectores.
  1. Abre Power BI Desktop.
  2. Selecciona Obtener datos > Excel.
  3. Elige Ventas_tienda.xlsx.
  4. En el Navegador, abre la hoja Ventas.
  5. Pulsa Transformar datos.
  6. En Power Query, usa Inicio > Eliminar filas > Eliminar duplicados donde corresponda.
  7. Carga las cuatro tablas como consultas separadas.
  8. En Power BI, abre Vista > Vista de modelo.
Obtener datosExcel

La hoja original queda intacta; las consultas de Power BI producen tablas que pueden actualizarse con Actualizar cuando cambien los datos.

Limpiar las tablas en Power Query

La limpieza debe dejar una clave única en cada dimensión. Si una fuente no trae IDCliente, puedes generar una clave suplente mediante Agregar columna > Columna de índice, pero debes deduplicar antes yymmetricar esa clave con la columna que se conservará.

Consulta Columnas conservadas Transformación
Ventas Todas Estandarizar encabezados
Productos IDProducto, NombreProducto Eliminar duplicados
Clientes IDCliente, Cliente, Ciudad Eliminar duplicados
Calendario Fecha y periodo Conservar una fila por fecha

Para estandarizar, ve a Inicio > Transformar > Dar formato a los datos y elige las opciones appropriately. Revisa los encabezados en Transformar > Usar la primera fila como encabezados.

Cuidado: quitar duplicados por toda la fila puede eliminar dos ventas legítimamente iguales. En Ventas, usa IDVenta; en las dimensiones, la clave y sus atributos.

Comprobar los tipos de las claves

En Power Query, ve a Vista > Mostrar vista sin datos o usa Editar > Detectar tipo de columna. Los tipos deben coincidir:

Relación Tipo en Ventas Tipo en dimensión
IDProducto Texto Texto
IDCliente Texto Texto
Fecha Fecha Fecha
Nota: una clave como P-01 es texto, no número. Si un lado contiene 2026 como número y el otro como texto, la relación no será válida.

Conectar la tabla de hechos con sus dimensiones

En la vista de modelo de Power BI, arrastra IDProducto de Productos hasta IDProducto de Ventas. Repite con IDCliente y Fecha. Power BI detectará la cardinalidad y la dirección del filtro.

Origen Destino Cardinalidad Lado de filtro
Productos[IDProducto] Ventas[IDProducto] 1 a muchos Productos a Ventas
Clientes[IDCliente] Ventas[IDCliente] 1 a muchos Clientes a Ventas
Calendario[Fecha] Ventas[Fecha] 1 a muchos Calendario a Ventas
  1. Arrastra IDProducto hasta IDProducto.
  2. Repite la operación con IDCliente.
  3. Arrastra Fecha desde Calendario hasta Fecha de Ventas.
  4. Confirma que cada relación sea uno a muchos.
  5. Crea una medida: Ventas Importe = SUM ( Ventas[Importe] ).
  6. Coloca Ciudad, NombreProducto y Ventas Importe en un gráfico de columnas.
  7. Filtra Ciudad por Medellin.

El total esperado es 111,50: 30,00 + 18,50 + 45,00 + 18,00. No son 150,00 porque C-02 no pertenece a Medellin.

Comprueba: filtrar Medellin muestra solo ventas de C-01 y C-02 y suma 111,50, sin multiplicar importes.

Configurar la dirección del filtro

La dirección predeterminada de una relación uno a muchos filtra la tabla de hechos desde la dimensión. Es la opción adecuada para nuestro modelo.

  1. Selecciona la línea entre Clientes y Ventas.
  2. Abre Editar relación.
  3. Comprueba Uno (1) en Clientes y Varios (*) en Ventas.
  4. Mantén la dirección de filtro simple, de Clientes hacia Ventas.
  5. Cierra el cuadro.
  6. Vuelve a filtrar la ciudad.
Configuración Resultado esperado
Filtro simple La ciudad de Clientes filtra Ventas
Filtro bidireccional Puede ser útil, pero exige revisar su impacto
Relación Many-to-many Puede aumentar filas yurring la cardinalidad
Cuidado: la opción bidireccional no corrige claves duplicadas. Puede propagar filtros en ambas direcciones y soltar el filtro de la relación principal.

Por qué los totales se duplican al modelar

La duplicación aparece cuando una venta encuentra más de una fila de dimensión. También puede ocurrir si la relación usa columnas incompatibles o si una dimensión contiene dos filas con la misma clave.

Un error típico es tener dos clientes con IDCliente C-01, ambos llamados Almacen Norte. Al relacionarlos, la venta C-01 coincide con dos filas y el total se multiplica.

Problema Síntoma Corrección
Clave repetida Importes inflados Mantener una sola fila por clave
Relación incorrecta Totales inesperados Revisar cardinalidad y columnas
Datos descriptivos en Ventas Repetición y ambigüedad Moverlos a dimensiones
Datos sin relación Registros excluidos Crear clave y relación

Repartir las ventas entre fechas y clientes

Supongamos que Clientes contiene dos filas C-01. Esa fila inválida hace que V-001 y V-005 se contabilicen dos veces.

A5fxC-01
A B C
1 IDCliente Cliente Ciudad
2 C-01 almacen Norte Medellin
3 C-02 libreria Centro Medellin
4 C-03 papeleria Sur Bogota
5 C-01 almacen Norte Medellin
Clientes
  1. En Clientes, selecciona A1:C5.
  2. Usa Datos > Herramientas de datos > Eliminar duplicados.
  3. Conserva solo las filas A2:C4.
  4. Reaplica o comprueba la relación con Ventas.
  5. Revisa que el filtro Medellin dé 111,50.

La misma revisión debe hacerse con Productos y Calendario: cada clave de dimensión debe ser única. Si una venta aparece duplicada en Ventas, corrige el origen antes de crear relaciones.

Comprueba: cada IDCliente, IDProducto y Fecha se relaciona con una sola fila de su dimensión y el total por ciudad no cambia al filtrar.

Qué conviene preparar antes de usar un modelo grande

Para.un conjunto pequeño, Power Query y Power BI Desktop permiten preparar el modelo directamente. Si el volumen crece, las actualizaciones se ralentizan o se necesitan dimensiones de variación lenta, conviene usar un almacén de datos con procesos de extracción, transformación y carga (ETL) y conectar después el modelo semántico.

Necesidad Preparación recomendada
Actualizaciones frecuentes ETL programado
Historial de cambios de clientes o productos Dimensión de variación lenta
Muchas fuentes Consolidación antes del modelo
Gran volumen Almacén de datos
Equipos de análisis Modelo semántico publicado

En Excel, Power Query no sustituye un almacén cuando los datos ya no caben cómodamente o las transformaciones requieren programmeación. Mantén las reglas de claves y tipos, pero mueve la preparación a una plataforma de datos. La guía oficial de Microsoft sobre esquema estrella en Power BI explica este enfoque.

Nota: una tabla de hechos puede ser grande. Lo decisivo es su granularidad, la unicidad de las claves y las relaciones; no el número de filas por sí solo.

Lo que ya sabes hacer con la tabla de hechos

  • Identificar en una tabla de hechos los eventos medibles, sus claves y sus medidas.
  • Separar Ventas de las dimensiones Productos, Clientes y Calendario.
  • Definir una clave única para cada producto, cliente y fecha.
  • Crear relaciones uno a muchos desde las dimensiones hacia Ventas.
  • Filtrar ventas por ciudad, producto o periodo sin duplicar los importes.
  • Detectar y corregir claves repetidas antes de crear el modelo.
  • Preparar las tablas en Excel con Power Query y cargarlas en Power BI Desktop.
  • Reconocer cuándo conviene trasladar la preparación ETL a un almacén de datos.

El siguiente paso es abrir Ventas_tienda.xlsx en Power BI Desktop, crear las tres relaciones y comprobar que el total de Ventas por ciudad coincide con los datos de origen. Los datos están comprobados en octubre de 2026.

Dudas al crear una tabla de hechos en Power BI

1. ¿Cómo se establecen relaciones entre tablas en Power BI?

En Power BI Desktop, abre Vista > Vista de modelo y arrastra la clave de cada dimensión hasta la columna equivalente de Ventas. Configura la relación como uno a varios, con la dimensión en el lado uno, y activa el filtro bidireccional solo si es necesario.

2. ¿Qué es una tabla de tiempo o calendario en Power BI?

Es la tabla de fechas que contiene una fila por día y columnas como año, mes, nombre del mes y trimestre. Se relaciona con Ventas mediante una clave de fecha, y permite filtrar y agrupar las ventas por cualquier periodo.

3. ¿Qué diferencia hay entre tablas de hechos y tablas relacionales en Power BI?

Las tablas de hechos guardan eventos medibles, como ventas, con claves y medidas numéricas. Las tablas de dimensiones guardan sus descripciones, como producto, cliente o fecha. Ambas se conectan mediante relaciones uno a muchos.

4. ¿Cómo creo una tabla de fechas en Power BI?

Puedes crearla con una columna de fecha continua y después enrichment columns, o generarla desde una tabla de fechas en Power Query. Debe incluir una fila por día y una clave compatible con la fecha usada en Ventas.

5. ¿Cómo funcionan las tablas relacionadas en Power BI?

Las tablas relacionadas permiten que un filtro de una dimensión afecte a los hechos. Por ejemplo, filtrar Clientes por una ciudad debe reducir las ventas de esa ciudad sin modificar la tabla Ventas ni duplicar su importe.

6. ¿Cómo puedo descargar una tabla de calendario para Power BI?

Exporta Calendario como archivo CSV desde Excel y, en Power BI Desktop, usa Obtener datos > Archivo de texto/CSV. Después comprueba que la columna de fecha tenga el tipo Fecha y que cubra todo el periodo de Ventas.

7. ¿Por qué se duplican los totales al crear relaciones en Power BI?

Suele ocurrir porque una dimensión contiene claves repetidas o porque se creó una relación incorrecta. Revisa la cardinalidad, la dirección del filtro y la unicidad de las claves; una venta debe relacionarse con una sola fila de cada dimensión.

Fuentes

  1. MicrosoftComprender el esquema de estrella y su importancia para Power BIconsultado el 28/10/2026
  2. MicrosoftPOTENCIA — documentación oficialconsultado el 28/10/2026
  3. MicrosoftPower Query (Obtener y transformar datos) — documentación oficialconsultado el 28/10/2026
  4. MicrosoftBUSCARV — documentación oficialconsultado el 28/10/2026
  5. MicrosoftCAMBIAR — documentación oficialconsultado el 28/10/2026