Microsoft is giving away 50,000 FREE Microsoft Certification exam vouchers!
Enter the sweepstakes now!Prepping for a Fabric certification exam? Join us for a live prep session with exam experts to learn how to pass the exam. Register now.
Hola buen día alguien puede ayudarme en mi mesa, lo que requería es que si la columna de horas del plan aún no se inició, la columna ganada debe ser 0.
Código de columna Mis ganados:
RESULTADO: ya que mi proyecto comenzará recién el 05 de mayo de 2025
Gracias
¿Puedo preguntarle si ha resuelto este problema? Si es así, marque la respuesta útil y acéptela como la solución. Esto será útil para que otros miembros de la comunidad que tengan problemas similares lo resuelvan más rápido.
Gracias.
Hola
Comparta algunos datos sin procesar con los que trabajar y muestre el resultado esperado. Comparta datos en un formato que se pueda pegar en un archivo de MS Excel.
Gracias por ponerse en contacto con el foro de la comunidad de Microsoft Fabric.
En función de sus requisitos, desea que el valor acumulado se establezca en 0 hasta la fecha de inicio del proyecto (5 de mayo de 2025) y, a continuación, calcule el valor acumulado utilizando la lógica existente a partir de ese momento.
Para ello, puede modificar la medida Earned agregando una condición que compruebe si PlanDate es anterior a la fecha de inicio. A continuación, se muestra una versión actualizada de la medida Earned (Ganado):
Earned =
IF (
MAX('Tabl02'[PlanDate]) < DATE(2025, 5, 5),
0,
CALCULATE (
SUM ( 'Table'[Earned] ),
FILTER (
ALL ( 'Table' ),
'Table'[Progress Date] = EARLIER ( 'Tabl02'[PlanDate] )
&& 'Table'[Location] = EARLIER ( 'Tabl02'[TaskNo] )
&& 'Table'[Mode] = EARLIER ( 'Tabl02'[A -Mode] )
)
)
)
Con esta modificación: Si PlanDate es anterior al 5 de mayo de 2025, el valor acumulado se establecerá en 0. Si PlanDate es el 5 de mayo de 2025 o después, la lógica existente calculará el valor acumulado según lo previsto.
Como alternativa, si prefiere un enfoque más dinámico, en el que la comparación se basa en la fecha actual en lugar de en una fecha fija, puede utilizar la siguiente fórmula:
Earned =
IF (
MAX('Tabl02'[PlanDate]) < TODAY(),
0,
CALCULATE (
SUM ( 'Table'[Earned] ),
FILTER (
ALL ( 'Table' ),
'Table'[Progress Date] = EARLIER ( 'Tabl02'[PlanDate] )
&& 'Table'[Location] = EARLIER ( 'Tabl02'[TaskNo] )
&& 'Table'[Mode] = EARLIER ( 'Tabl02'[A -Mode] )
)
)
)
Esta versión utiliza la función TODAY() para calcular dinámicamente el valor acumulado en función de la fecha actual.
Espero que esto resuelva su problema, si necesita más ayuda, no dude en comunicarse.
Si esta publicación ayuda, felicitarnos y considerar Acéptalo como una solución para ayudar a los demás miembros a encontrarlo más rápidamente.
Gracias.
Hola @v-tsaipranay muchas gracias por la respuesta, pero cuando pruebo la solución, todavía se refleja algo de valor en mi columna Earned
Gracias por sus comentarios y le agradezco que pruebe la solución sugerida.
Según su aclaración, parece que la condición principal para mostrar Earned = 0 está vinculada directamente a la columna Plan Hrs específicamente cuando el valor es cero (lo que indica que la tarea no se ha iniciado). Es posible que la lógica anterior basada en la fecha no solucione completamente este problema.
Pruebe la siguiente medida revisada del DAX que incluye una verificación de las horas del plan:
Earned =
IF (
'Tabl02'[Plan Hrs] = 0,
0,
CALCULATE (
SUM ( 'Table'[Earned] ),
FILTER (
ALL ( 'Table' ),
'Table'[Progress Date] = EARLIER ( 'Tabl02'[PlanDate] )
&& 'Table'[Location] = EARLIER ( 'Tabl02'[TaskNo] )
&& 'Table'[Mode] = EARLIER ( 'Tabl02'[A -Mode] )
)
)
)
Con esta actualización:
Por favor, hágamelo saber si esto ahora se alinea con sus expectativas o si se necesitan más ajustes.
Si esto ayuda, considere amablemente marcar esto como una solución para futuras referencias a otros también.
¡Gracias!
Hola @AllanBerces ,
Quería comprobar si ha tenido la oportunidad de revisar la información proporcionada. No dude en ponerse en contacto con nosotros si tiene más preguntas. Si mi respuesta ha abordado su consulta, acéptela como una solución y dé un 'Felicitaciones' para que otros miembros puedan encontrarla fácilmente.
Gracias.
Hola @v-tsaipranay gracias por la respuesta, pero desafortunadamente hay veces que mi plan es 0 pero ejecutan el trabajo temprano que necesitan reflejarse en mis horas ganadas.
Tienes razón, usar Plan Hrs = 0 para decidir si una tarea ha comenzado no siempre funciona, especialmente si el trabajo comienza temprano sin horas planificadas.
Por lo tanto, en lugar de verificar las horas del plan, solo debemos devolver 0 en la columna Ganado si aún no se ha registrado ningún trabajo real.
Esta es una medida actualizada que hace precisamente eso:
Earned =
VAR EarnedCalc =
CALCULATE (
SUM ( 'Table'[Earned] ),
FILTER (
ALL ( 'Table' ),
'Table'[Progress Date] = EARLIER ( 'Tabl02'[PlanDate] ) &&
'Table'[Location] = EARLIER ( 'Tabl02'[TaskNo] ) &&
'Table'[Mode] = EARLIER ( 'Tabl02'[A -Mode] )
)
)
RETURN
IF (
ISBLANK(EarnedCalc),
0,
EarnedCalc
)
Esto mostrará 0 solo si no se encuentra ninguna hora ganada. Si se realiza algún trabajo, mostrará el valor real.
Si el problema persiste después de hacer lo anterior, proporcione datos de muestra como se menciona en @Ashish_Excel .
Si esta publicación ayuda, felicitarnos y considerar Acéptalo como una solución para ayudar a los demás miembros a encontrarlo más rápidamente.
Gracias.
Hola @AllanBerces ,
Quería comprobar si ha tenido la oportunidad de revisar la información proporcionada. No dude en ponerse en contacto con nosotros si tiene más preguntas. Si mi respuesta ha abordado su consulta, acéptela como una solución y dé un 'Felicitaciones' para que otros miembros puedan encontrarla fácilmente.
Gracias.
O puede actualizar mi código, el valor ganado se capturará solo cuando mi proyecto comience el 5 de mayo de 2025 en adelante.
Check out the May 2025 Power BI update to learn about new features.
Explore and share Fabric Notebooks to boost Power BI insights in the new community notebooks gallery.