cancel
Showing results for 
Search instead for 
Did you mean: 
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

View solution in original post

Hola David,

Esto funcionó, gracias por todo su apoyo.

View solution in original post

Helpful resources

Announcements
PBI User Groups

Welcome to the User Group Public Preview

Check out new user group experience and if you are a leader please create your group!

MBAS on Demand

Microsoft Business Applications Summit sessions

On-demand access to all the great content presented by the product teams and community members! #MSBizAppsSummit #CommunityRocks

MBAS Attendee Badge

Claim Your Badge & Digital Swag!

Check out how to claim yours today!

Top Kudoed Authors