Forum Discussion
Datos de Excel a Power BI
Estoy trabajando en un archivo de Excel para datos del cuarto trimestre del año pasado, está en el formato adjunto. Me cuesta enlazar en Power BI, ya que mi archivo actual tiene fechas y este solo tiene el cuarto trimestre y semanas, además el formato es bastante desordenado , como puedes ver. ¿Algún consejo, por favor?
9 Replies
- Syndicate_Admin
Administrator
¡Hola @abdo132
Power BI funciona mejor con datos limpios y tabulares (de formato largo), así que este diseño de Excel con trimestres y números de semana como cabeceras es difícil de modelar. El enfoque recomendado es reformular el archivo de Excel en Power Query: despivotar las columnas de la semana del cuarto trimestre en filas, crear columnas adecuadas como Fecha / Semana / Trimestre / Producto / Valor, y eliminar celdas y formatos fusionados. Una vez normalizados los datos, puedes relacionarlos con tu tabla de fechas existente y reutilizarlos fácilmente en los visuales de Power BI.
- Syndicate_Admin
Administrator
Eso es lo que hice, pero el problema es que no puedo vincularlo con los datos del año actual, así que busco una forma de combinar el archivo si es posible
- Syndicate_Admin
Administrator
Hola @abdo132
Crear columnas Año + Semana en los datos de Excel
Año = 2024 (o el año pasado)
Semana = CuartoSemanaUnCrea una clave de fecha/semana
Ejemplo: Año * 100 + SemanaCrea la misma clave en tus datos del año actual
De tu tabla de fechas (Año + SemanaNum)Añadir los datos de Excel a los datos actuales
Power Query → Añadir consultas
Asegúrate de mantener las mismas columnas: Producto, Año, Semana, ValorTabla de hechos
Tabla de Fechas One
Funciona con todos los elementos visualesSi no puedes añadir
Usa una tabla puente de fechas/semanas:Año
Número de semana
Cuarto
Relaciona ambos conjuntos de datos con él.Por favor, avisa si la solución o enfoque te resulta útil. ¡Gracias!
- Syndicate_Admin
Administrator
Re: Manejo de datos semanales/trimestrales en Excel con formato desordenado
Hola. Este es un reto común de limpieza de datos. Para vincular este archivo de Excel a tu panel de control, necesitas usar la función Unpivot en Power Query.
Primero, importa el archivo y usa la función Eliminar filas superiores para eliminar los encabezados desordenados. A continuación, selecciona tus columnas estáticas y elige Despivotar otras columnas. Esto convertirá tus semanas en una lista vertical.
Como tu archivo solo tiene números de semana, debes crear un enlace de fecha. Puedes añadir una columna personalizada para asignar una fecha específica a cada semana. Por ejemplo, asigna el primer lunes del cuarto trimestre a la Semana 1.
Una vez que tengas una columna de fechas real, puedes crear una relación con tu Tabla de Fechas principal en la vista de modelos.
Espero que esto te ayude a limpiar los datos. Si esto funciona, por favor marca esto como una Solución Aceptada.
¡Feliz Año Nuevo!
Vishwanath
- Syndicate_Admin
Administrator
Puedes desarticular tablas para convertirlas de una estructura bidimensional a una estructura unidimensional. Ese es el diseño correcto de la tabla que normalmente usamos en el modelo.
Si esto sigue sin funcionar, por favor proporciona los datos de muestra (no la captura de pantalla) y la salida esperada
- Syndicate_Admin
Administrator
Debes usar Power Query para normalizar la tabla y crear un puente hacia tu dimensión de fecha existente.
Paso 1: Normalizar la disposición "desordenada" (despivotar)
- Abrir Power Query (Transformar datos).
- Selecciona tus columnas de Producto Nivel 2 y Cuartos .
- Haz clic derecho y selecciona "Despivotar otras columnas".
- Esto agrupa tus semanas horizontales en dos columnas verticales: Atributo (Número de semana) y Valor (La cantidad).
- Renombra "Atributo" a Week.
Paso 2: Crear el enlace de la fecha
Como tu panel depende de una Tabla de Fechas, necesitamos convertir la "Semana 1" en una fecha real:
- En Power Query, ve a Añadir columna > Columna personalizada.
- Utiliza esta lógica para encontrar el inicio de la semana para 2025-T4: Date.AddDays(#date(2025,10,1), (Number.From(Text.Select([Week], {"0".." 9"}))-1)*7)
- Cambia el tipo de dato a Fecha.
Paso 3: Corrección de rendimiento
- En la Vista de Modelo, crea una relación entre tu nueva columna de Fecha y tu Calendario[Fecha].
- Actualiza tu visual de Matrix para usar la fecha de tu tabla de Calendario en lugar de las columnas brutas de Excel.
Por qué esto soluciona el lag de los 230s:
Tu Analizador de Rendimiento muestra que el 99% del tiempo de carga es la consulta DAX (214.502ms). Al despivotar y enlazar a una dimensión de fecha adecuada, permites que el motor use el Contexto de Filtro en lugar de una iteración forzada fila por fila. Esto debería reducir el tiempo de carga de minutos a milisegundos.
Si esta transformación ha arreglado tu diseño y eliminado el retraso de rendimiento, por favor marca esto como una "Solución aceptada" para ayudar a otros con migraciones de Excel a PBI.
Saludos
Vishwanath
- Syndicate_Admin
Administrator
Esto es un problema de forma de datos, no una limitación de Power BI. Puedes usar estos datos, pero primero debes normalizarlos. Intentar modelarlo "tal cual" siempre será doloroso.
- Las fechas se distribuyen entre columnas (encabezados del cuarto trimestre / semana)
- No hay una clave de fechas real que relacione tu tabla de fechas
- Semántica mixta en los encabezados (Trimestre + Semana + Año)
- Es imposible crear una relación limpia de esta forma
Power BI espera filas = eventos, columnas = atributos.
Solución recomendada:
1) Despivotar las columnas semanales
En Power Query:
- Mantén el Nivel de Producto 2
- Seleccionar columnas de valores durante toda la semana
- Columnas de despivote
Recibirás:
Product | Attribute | Value TV | 2025-Q4 Week 1 | 134,071Renombrado:
- Atributo → AñoCuartelSemana
- Valor → Cantidad
2) Año dividido / Trimestre / Semana
Divide el YearQuarterWeek en:
- Año
- Cuarto
- WeekNum
Ahora tienes campos propiamente dichos:
Product | Year | Quarter | Week | Amount3) Crear un mapeo de fechas de una semana →
Como tu modelo principal es basado en fechas, necesitas uno de estos:
Mejor opción (recomendada):
- Crea una tabla de fechas con Año + Número de Semana
- Añadir SemanaInicioData (lógica semanal ISO)
- Relacionarme:
Fact[Year + Week] → Date[Year + Week]Si no sabes las fechas exactas:
- Crea una cita sintética como:
WeekDate = DATE ( Year, 1, 1 ) + ( Week - 1 ) * 7 - Syndicate_Admin
Administrator
Hola @abdo132 ,gracias por acercarte a la comunidad de Textile.
@cengizhanarslan , @AshokKunwar , @ryan_mayu @krishnakanth240 Gracias por tu rápida respuesta.
@abdo132 Quería hacer un seguimiento y confirmar si has tenido la oportunidad de revisar la información compartida por @cengizhanarslan , @AshokKunwar , @ryan_mayu @krishnakanth240 Si tienes alguna pregunta o necesitas más aclaraciones, no dudes en ponerte en contacto con ella.
Realmente agradecemos tu implicación y te damos las gracias por ser una parte activa de la comunidad.
Saludos
Lakshmi.
- Syndicate_Admin
Administrator
Hola @abdo132 ,
Solo quería comprobar si tu problema se ha resuelto. Si aún tienes alguna pregunta o necesitas ayuda, no dudes en contactarme, estaré encantado de ayudarte.
Gracias por ser una parte activa de la comunidad. ¡Espero saber de ti!
Saludos
Lakshmi