Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Hola
Estoy tratando de comparar 2 tablas con fechas para confirmar si hemos recibido un artículo
He intentado menos las 2 tablas relacionadas de la siguiente manera:
Status =
SUMX('Reporting Schedule',
(DISTINCTCOUNT('Reporting Schedule'[Submission Period +1]))
-
(DISTINCTCOUNT(_A_Combined[spm_reporting_period]))
)
La expectativa (o esperanza) es que recibiría
Solved! Go to Solution.
Ok, a ver si esto es lo que necesitas.
Por cierto, las relaciones entre la tabla Date y las tablas de hechos son de varios a varios (que pueden generar resultados inesperados y deben evitarse).
Puesto que estamos viendo los períodos, he agregado una tabla de períodos como una tabla tenue para ambas tablas de hechos que se utilizarán en los objetos visuales (evitando así las temidas relaciones de varios a varios de la tabla Date).
Las nuevas medidas utilizadas:
1) Sobresaliente:
Outstanding (New) =
VAR Sched = SUMMARIZE('Reporting Schedule', 'Reporting Schedule'[Contract Number], 'Reporting Schedule'[Reporting Period])
VAR _Received = SUMMARIZE('Received', 'Received'[Contract Number], 'Received'[Reporting Period])
RETURN
COUNTROWS(EXCEPT(Sched, _Received))
2) Recibido:
Received (New) =
VAR Sched = SUMMARIZE('Reporting Schedule', 'Reporting Schedule'[Contract Number], 'Reporting Schedule'[Reporting Period])
VAR _Received = SUMMARIZE('Received', 'Received'[Contract Number], 'Received'[Reporting Period])
RETURN
COUNTROWS(INTERSECT(Sched, _Received))
3) Inesperado:
Unexpected New =
VAR Sched = SUMMARIZE('Reporting Schedule', 'Reporting Schedule'[Contract Number], 'Reporting Schedule'[Reporting Period])
VAR _Received = SUMMARIZE('Received', 'Received'[Contract Number], 'Received'[Reporting Period])
RETURN
COUNTROWS(EXCEPT(_Received, Sched))
Y este es el resultado final:
Vea si este es el resultado final que necesita.
Se adjunta el nuevo archivo PBIX
No @Oneill1 ,
Echamos un vistazo a tu modelo de datos y parece que hay muchas cosas que hay que corregir. Pocos de ellos son:
1) La tabla Recibido no contiene la fecha exacta, así que ¿qué será el indicador si el producto ha sido recibido?
2) La relación entre la tabla Esperada y Recibida debe basarse en el contrato y no en las fechas. Actualmente es entre el período de informes que es de tipo de datos de texto y fecha que tiene tipo de datos DateTime que no tiene ningún sentido en absoluto.
Por lo tanto, en conclusión, tendrá que buscar una columna única en ambas tablas en función de la cual se puede formar la relación para llevar a cabo más operaciones.
Y los tipos de datos de las columnas deben corregirse. Además, mire la información necesaria de la fecha de recepción para que pueda obtener el resultado deseado.
Gracias por la respuesta
He actualizado el modelo ligeramente, ya que no estaba realmente reflejando lo que está disponible en el archivo y los enlaces.
para tratar de articular lo que estoy tratando de lograr.
Tenemos un cronograma para cada contrato, ya que el presente el equipo rellena manualmente una hoja de Excel con la fecha en que se reciben los envíos
Esta tabla es entonces unpivoted in powerbi para dejar 2 columnas, eliminando todas aquellas que no tienen contenido
Dentro de la base de datos dinámica. los datos contendrán una línea para cada métrica y tipo de contrato, número de contrato y período de
Están vinculados entre sí a través de
Lo que estoy tratando de lograr es como sigue
lo que estamos tratando de lograr es cuánto trabajo queda para que el equipo comte. Si hay otra manera im falta, por favor hágamelo saber, pensé que esta puede ser la manera más fácil, ya que ambos tendrán el período de reporte en el mismo formato.
Gracias de nuevo
Según mi entendimiento de que soy capaz de obtener la información proporcionada, sugeriría crear una columna única que se usará para un atributo común en la tabla De recepción e informes.
Creé una nueva columna en ambas tablas como:
Gracias por las respuestas. He actualizado el dax ligeramente, como he lanzado el schdule de informes sólo tendría 1 valor y el archivo recibido contendrá mutiple y requerirá distinctcount creo (una línea para cada métrica), sin embargo, todavía experienciando algunos problemas.
Status =
SUMX('Reporting Schedule',
(COUNT('Reporting Schedule'[Expected date]))-
(DISTINCTCOUNT('Received'[Reporting Period]))
)
Enlaces a los archivos a continuación, las relaciones i miedo estoy atascado con ya que hay muchas más tablas vinculadas a este archivo, ya que extrae datos de 3 fuente principal (Dinámica para los datos de rendimiento y 2 tablas maestras que se basan en la actualidad para las finanzas)
Relación de archivo real
Archivo adjunto
No estoy muy seguro de qué es exactamente lo que está tratando de identificar. He construido lo siguiente bajo el supuesto de que está comparando Contratos, tipo y períodos entre las dos tablas:
1) Para calcular los Contratos Programados pero no recibidos:
Scheduled not received =
VAR Sched = SELECTCOLUMNS('Reporting Schedule', "Contract", 'Reporting Schedule'[Contract Number], "Type", 'Reporting Schedule'[Type], "Period", 'Reporting Schedule'[Reporting Period])
VAR _Received = SELECTCOLUMNS('Received', "Contract", 'Received'[Contract Number], "Type", 'Received'[Type], "Period", 'Received'[Reporting Period])
RETURN
COUNTROWS(EXCEPT(Sched, _Received))
2) Para calcular los contratos programados y recibidos:
Scheduled & received =
VAR Sched = SELECTCOLUMNS('Reporting Schedule', "Contract", 'Reporting Schedule'[Contract Number], "Type", 'Reporting Schedule'[Type], "Period", 'Reporting Schedule'[Reporting Period])
VAR _Received = SELECTCOLUMNS('Received', "Contract", 'Received'[Contract Number], "Type", 'Received'[Type], "Period", 'Received'[Reporting Period])
RETURN
COUNTROWS(INTERSECT(Sched, _Received))
3) Para calcular los contratos recibidos pero no programados:
Received not Scheduled =
VAR Sched = SELECTCOLUMNS('Reporting Schedule', "Contract", 'Reporting Schedule'[Contract Number], "Type", 'Reporting Schedule'[Type], "Period", 'Reporting Schedule'[Reporting Period])
VAR _Received = SELECTCOLUMNS('Received', "Contract", 'Received'[Contract Number], "Type", 'Received'[Type], "Period", 'Received'[Reporting Period])
RETURN
COUNTROWS(EXCEPT(_Received, Sched))
Lo que te consigue esto:
Proud to be a Super User!
Paul on Linkedin.
No @PaulDBrown
Creo que puede haber más complicado en la primera solicitud
Tenemos un rastreador de envíos cuando los envíos deben ser recibidos, el encabezado de la columna es el período del informe
Tenemos base de datos de lo que se recibe.
Estos están vinculados entre sí por el número de contrato (tarea de trabajo) y una tabla de fechas.
Estamos tratando de confirmar
Lo que está en el rastreador de envío y presente
El URN entre cada tabla es la tarea Número de contrato /Trabajo
Sólo nos interesa si hemos recibido una presentación, no el volumen de envíos recibidos en un mes determinado que coincidan con la URN.
Usando el ejemplo:
Las tablas de horarios confirman cuándo estaríamos esperando una entrega / envío. La tabla recibida (la base de datos) confirma cuándo se ha recibido la entrega y el número de elementos (métricas).
¿Es posible utilizar medidas para
He actualizado los archivos de origen para, con suerte, pintar una mejor imagen
Ok, a ver si esto es lo que necesitas.
Por cierto, las relaciones entre la tabla Date y las tablas de hechos son de varios a varios (que pueden generar resultados inesperados y deben evitarse).
Puesto que estamos viendo los períodos, he agregado una tabla de períodos como una tabla tenue para ambas tablas de hechos que se utilizarán en los objetos visuales (evitando así las temidas relaciones de varios a varios de la tabla Date).
Las nuevas medidas utilizadas:
1) Sobresaliente:
Outstanding (New) =
VAR Sched = SUMMARIZE('Reporting Schedule', 'Reporting Schedule'[Contract Number], 'Reporting Schedule'[Reporting Period])
VAR _Received = SUMMARIZE('Received', 'Received'[Contract Number], 'Received'[Reporting Period])
RETURN
COUNTROWS(EXCEPT(Sched, _Received))
2) Recibido:
Received (New) =
VAR Sched = SUMMARIZE('Reporting Schedule', 'Reporting Schedule'[Contract Number], 'Reporting Schedule'[Reporting Period])
VAR _Received = SUMMARIZE('Received', 'Received'[Contract Number], 'Received'[Reporting Period])
RETURN
COUNTROWS(INTERSECT(Sched, _Received))
3) Inesperado:
Unexpected New =
VAR Sched = SUMMARIZE('Reporting Schedule', 'Reporting Schedule'[Contract Number], 'Reporting Schedule'[Reporting Period])
VAR _Received = SUMMARIZE('Received', 'Received'[Contract Number], 'Received'[Reporting Period])
RETURN
COUNTROWS(EXCEPT(_Received, Sched))
Y este es el resultado final:
Vea si este es el resultado final que necesita.
Se adjunta el nuevo archivo PBIX
Esto es genial, empiezo a entenderlo un poco más ahora. es una curva de aprendizaje empinada que estoy aprendiendo más cada día.
Gracias, realmente aprecio la ayuda.
Lee
No @Oneill1 ,
La lógica de la expresión DAX que ha aplicado se ve bien y debe resolver el propósito, sin embargo, fallará en varias condiciones como: valores nulos o en blanco en cualquiera de las columnas
Proporcione los datos de ejemplo para probar la implementación. Además, explique claramente qué problema se enfrenta aquí.
No @Oneill1
¿Puede mostrar una muestra de sus 2 mesas?
Por favor, marque la pregunta resuelta cuando haya terminado y considere dar un pulgar hacia arriba si las publicaciones son útiles.
Póngase en contacto conmigo de forma privada para obtener asistencia con cualquier necesidad de BI a gran escala, tutoría, etc.
Salud
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |