Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

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.

Reply
Syndicate_Admin
Administrator
Administrator

Múltiples declaraciones if

hola

Estoy tratando de crear una fórmula que mostrará si los empleados están asistiendo a una visita en los momentos acordados con el cliente y si llegan dentro de los 30 minutos de la hora programada / planificada.

pardeepd84_0-1618432544810.png

¿Cómo se haría esto con varias instrucciones if.

2 ACCEPTED SOLUTIONS

No puedo usar los datos de prueba que has puesto como fotos, pero creo que esto debería resolver lo que te falta

Result = 
IF ( ISBLANK( [Actual Start Time] ), BLANK(),
  IF ( ABS ( [Actual Start Time] - [Planned Start Time] ) <= (30/60)/24, "OK", "NOT" ) ) )

Básicamente envolver valor absoluto (ABS) alrededor de la diferencia de tiempo por lo que sólo estará bien para

-30 < Diff < 30

También puede haber problemas con la forma en que se almacenan las horas de inicio reales y planificadas (tipo de datos). Si se trata de un tipo de datos Datetime formateado para que parezca una hora, puede actuar de forma diferente a un tipo de datos Time. Siempre puede crear una columna para [Hora de inicio real] - [Hora de inicio planificada] solo para ver cómo PBI está calculando ese valor.

Espero que esto ayude

David

View solution in original post

Hola David,

Esto funcionó, gracias por todo su apoyo.

View solution in original post

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

No @pardeepd84,

Creo que probablemente entiendo a lo que te refieres. Podemos usar datediff dax para calcular el intervalo de tiempo entre [Hora de inicio real] y [Hora de inicio planificada], a continuación, juzgar si el intervalo de tiempo es inferior a 30 . Si es así, devolver "OK", si no, devolver "NO".

Columna calculada:

tiempo diff = DATEDIFF(schedual[Tiempo de inicio real],schedual[Hora de inicio planificada],MINUTE)

si el resultado = IF(schedual[Tiempo de inicio real]=BLANK(),BLANK(),IF(schedual[time diff]<30,"OK","NOT"))

También puede utilizar SWITCH DAX , Es el mismo resultado que si dax , y no necesita ser anidado.

Resultado del switch = SWITCH(TRUE(),schedual[Tiempo de inicio real]=BLANK(),BLANK(),schedual[time diff]<30,"OK","NOT")

El efecto es como se muestra:

Ailsa-msft_0-1618566814048.png

Saludos

Equipo de Apoyo a la Comunidad _ Ailsa Tao

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.

Syndicate_Admin
Administrator
Administrator

No @pardeepd84 -

Creo * Entiendo lo que está tratando de hacer aquí, pero si esto no es todo, por favor indique sus condiciones en un párrafo o viñetas en lugar de una fórmula de Excel (y proporcione datos de prueba copiables).

Result = 
IF ( ISBLANK( [Actual Start Time] ), BLANK(),
  IF ( [Actual Start Time] - [Planned Start Time] <= (30/60)/24, "OK", "NOT" ) ) )

(NOTA que es Real - Planificado < 0 también va a ser menos de 30 minutos, así que razón para probar ambos)

Espero que esto ayude

David

No @dedelman_clng

He intentado su sugerencia, pero no obtenga los mismos resultados. Por favor, consulte más explicaciones a continuación de mi consulta:

  • Si la hora de inicio real está en blanco, no introduzca nada en la columna.

sin embargo

  • Si la hora de inicio real está dentro de los 30 minutos de la hora de inicio prevista, escriba "Ok"
  • Si la hora de inicio real no está dentro de los 30 minutos de la hora de inicio prevista, escriba "No"

Vea los datos de muestra a continuación

pardeepd84_0-1618507304742.png

He intentado el cálculo como se sugiere, pero no da los resultados deseados. Por favor, podría tener ayuda con esto, gracias.

pardeepd84_1-1618507327648.png

No puedo usar los datos de prueba que has puesto como fotos, pero creo que esto debería resolver lo que te falta

Result = 
IF ( ISBLANK( [Actual Start Time] ), BLANK(),
  IF ( ABS ( [Actual Start Time] - [Planned Start Time] ) <= (30/60)/24, "OK", "NOT" ) ) )

Básicamente envolver valor absoluto (ABS) alrededor de la diferencia de tiempo por lo que sólo estará bien para

-30 < Diff < 30

También puede haber problemas con la forma en que se almacenan las horas de inicio reales y planificadas (tipo de datos). Si se trata de un tipo de datos Datetime formateado para que parezca una hora, puede actuar de forma diferente a un tipo de datos Time. Siempre puede crear una columna para [Hora de inicio real] - [Hora de inicio planificada] solo para ver cómo PBI está calculando ese valor.

Espero que esto ayude

David

Hola David,

Esto funcionó, gracias por todo su apoyo.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.

Top Kudoed Authors