Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateJoin us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.
Tengo los dos conjuntos de datos adjuntos para el mes de abril. Tienen campos comunes en la tarea de servicio y las órdenes de trabajo, pero estos van a tener duplicados en ambas tablas, y ese es el problema que tengo. En última instancia, quiero poder agregar un segmentador/filtro en mi panel de control para poder mostrar la cantidad de trabajo que realiza la tarea de servicio para el campo "Motivo de la reparación". ¿Alguna idea?
https://drive.google.com/file/d/1yAdyhhglkfUPXtYypQctelhC7xtEfkow/view?usp=drive_link
https://drive.google.com/file/d/1rBjuKsqeHL_eg7uI7mnakEJiqGzEwnqb/view?usp=drive_link
Solved! Go to Solution.
Hola @ChrisAZ ,
Gracias por la información detallada y la captura de pantalla, realmente ayuda a aclarar el problema. Para abordar completamente las entradas duplicadas en los datos de "Tarea de servicio" y "Órdenes de trabajo" y habilitar una segmentación confiable para "Motivo de reparación", recomiendo crear una tabla de dimensiones en Power Query. Cargue ambas tablas de origen, seleccione los campos relevantes ("Tarea de servicio" y "Motivo de la reparación"), elimine los duplicados, añada los resultados y vuelva a eliminar los duplicados para asegurarse de que tiene una lista única de combinaciones. Asigne a esta tabla el nombre DimServiceTask. En la vista de modelo, cree relaciones unidireccionales desde DimServiceTask[Service Task] hasta el campo "Service Task" correspondiente en cada tabla de hechos (por ejemplo, las tablas de mano de obra del taller). Esto evita problemas de filtrado bidireccional. A continuación, defina una medida DAX como:
Trabajo total por tarea de servicio =
CALCULAR(
SUMX(
VALUES(DimServiceTask[Tarea de servicio]),
CALCULAR(SUMA('Mano de obra de taller - Plásticos' [Costo de mano de obra]) + SUM('Mano de obra - Contabilidad'[Costo de mano de obra]))
),
CROSSFILTER('Mano de obra de taller - Plásticos'[Tarea de servicio], DimServiceTask[Tarea de servicio], AMBOS),
CROSSFILTER('Mano de obra de taller - Contabilidad'[Tarea de servicio], DimServiceTask[Tarea de servicio], AMBOS)
)
Esto garantiza que está agregando el trabajo en todas las tablas sin doble recuento. Use DimServiceTask[Reason for Repair] en la segmentación de datos y coloque DimServiceTask[Service Task] con la nueva medida en el objeto visual. Esto le permitirá filtrar el tablero con precisión por motivo de reparación y mostrar los valores de mano de obra correctos por tarea de servicio. Por último, verifique los resultados con los datos de origen originales mediante un objeto visual de tabla para validar la precisión. Hágame saber cómo va o si desea ayuda para adaptar la solución a su modelo.
Si mi respuesta resuelve su consulta, considere aceptarla como solución.
Saludos
Pallavi.
Hola @ChrisAZ ,
Gracias por la información detallada y la captura de pantalla, realmente ayuda a aclarar el problema. Para abordar completamente las entradas duplicadas en los datos de "Tarea de servicio" y "Órdenes de trabajo" y habilitar una segmentación confiable para "Motivo de reparación", recomiendo crear una tabla de dimensiones en Power Query. Cargue ambas tablas de origen, seleccione los campos relevantes ("Tarea de servicio" y "Motivo de la reparación"), elimine los duplicados, añada los resultados y vuelva a eliminar los duplicados para asegurarse de que tiene una lista única de combinaciones. Asigne a esta tabla el nombre DimServiceTask. En la vista de modelo, cree relaciones unidireccionales desde DimServiceTask[Service Task] hasta el campo "Service Task" correspondiente en cada tabla de hechos (por ejemplo, las tablas de mano de obra del taller). Esto evita problemas de filtrado bidireccional. A continuación, defina una medida DAX como:
Trabajo total por tarea de servicio =
CALCULAR(
SUMX(
VALUES(DimServiceTask[Tarea de servicio]),
CALCULAR(SUMA('Mano de obra de taller - Plásticos' [Costo de mano de obra]) + SUM('Mano de obra - Contabilidad'[Costo de mano de obra]))
),
CROSSFILTER('Mano de obra de taller - Plásticos'[Tarea de servicio], DimServiceTask[Tarea de servicio], AMBOS),
CROSSFILTER('Mano de obra de taller - Contabilidad'[Tarea de servicio], DimServiceTask[Tarea de servicio], AMBOS)
)
Esto garantiza que está agregando el trabajo en todas las tablas sin doble recuento. Use DimServiceTask[Reason for Repair] en la segmentación de datos y coloque DimServiceTask[Service Task] con la nueva medida en el objeto visual. Esto le permitirá filtrar el tablero con precisión por motivo de reparación y mostrar los valores de mano de obra correctos por tarea de servicio. Por último, verifique los resultados con los datos de origen originales mediante un objeto visual de tabla para validar la precisión. Hágame saber cómo va o si desea ayuda para adaptar la solución a su modelo.
Si mi respuesta resuelve su consulta, considere aceptarla como solución.
Saludos
Pallavi.
https://drive.google.com/file/d/1IH5dXc52ndj-7Gs4BH_tkZ4EoOb6Q1AZ/view?usp=drive_link
Así que he añadido esta lógica al modelo, pero los números no cuadran y algo sigue sin estar alineado correctamente. Puedo decir esto cuando miro los totales, así como cuando selecciono una categoría individual y luego la comparo con lo que está en la fuente de datos. Aquí está ese enlace nuevamente como referencia para la comparación.
https://drive.google.com/file/d/1yAdyhhglkfUPXtYypQctelhC7xtEfkow/view?usp=drive_link
¿De alguna manera puedas explicarlo?
He añadido mi PBIX. Creé la tabla WorkOrder y creo que tengo mis relaciones configuradas como usted indicó. Cuando intento usar la segmentación para el motivo de la reparación, todavía no muestra los datos.
https://drive.google.com/file/d/1IH5dXc52ndj-7Gs4BH_tkZ4EoOb6Q1AZ/view?usp=drive_link
Así que veo el modelo, pero ¿cuál sería el proceso para crear la tabla WO separada?
Más información sobre la normalización. Busque los atributos de filtro comunes y normalícelos en tablas de dimensiones sin duplicados. A continuación, cree un modelo de datos en el que controle las dos tablas originales de las mismas tablas de dimensiones.
Check out the July 2025 Power BI update to learn about new features.
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.