Don't miss your chance to take the Fabric Data Engineer (DP-600) exam for FREE! Find out how by attending the DP-600 session on April 23rd (pacific time), live or on-demand.
Learn moreNext up in the FabCon + SQLCon recap series: The roadmap for Microsoft SQL and Maximizing Developer experiences in Fabric. All sessions are available on-demand after the live show. 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.
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.
Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.