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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Contar días consecutivos trabajados

Hola a todos,

No puedo trabajar en DAX con la suficiente frecuencia y sigo siendo un novato cuando se trata de crear medidas avanzadas con DAX.

He visto muchas, muchas soluciones para este escenario, pero la mayoría son muy complejas y súper confusas. Encontré una solución de Alberto Ferrari en SQLBI que es súper elegante, pero el problema es que cuentan los días con cero ventas y necesito, por ejemplo, contar los días con ventas mayores que cero. Intenté obtener comentarios de Alberto a través de YouTube, pero hasta ahora no he respondido.

Este es el enlace al video de YouTube (Alberto hace un súper trabajo explicando esto mientras lo construye.): https://www.youtube.com/watch?v=GR9ROCQVyLk

El código DAX de trabajo se ve así (crédito a Alberto Ferrari):

mickjaeger_0-1630531722807.png

Cuando usé esto con mis datos, obtuve un informe de muestra como este (mis datos muestran las horas que un empleado está programado para trabajar en un día determinado, este conjunto de resultados es solo para un empleado):

DaysWorked a continuación realmente muestra DaysOff, este es el quid de la cuestión, es necesario voltear para contar realmente los días consecutivos trabajados en su lugar.

mickjaeger_1-1630531788530.png

¡Este código DAX funciona muy bien, tal como se anuncia! Es un poco lento de procesar, pero es compacto y funcional.

¿Alguien puede averiguar cómo modificar este DAX para contar los días con datos en lugar de los días sin datos?

Gracias a todos de antemano!!!

Mick

7 REPLIES 7
Syndicate_Admin
Administrator
Administrator

OK, aquí voy de nuevo (parece que cuando usé el bloque de código no publicará mi respuesta, así que intentarlo de nuevo sin)

@Greg_Deckler ,

Su solución parece que podría funcionar, pero actualmente la variable '__LastBlank' no devuelve una fecha, por lo que el resultado es incorrecto. No estoy seguro de si puede ayudarme a revisar el código mientras implementé su sugerencia.

Probé las variables __CurrentDate y __CurrentHours y esas están devolviendo los valores correctos.

Días Trabajados2 =

VAR __CurrentDate = MAX('date_dimension'[fecha])

VAR __CurrentHours = 'scheduled_hours_fact'[Horarios programados]

VAR __LastBlank = MAXX(FILTER(ALL('scheduled_hours_fact') ,'scheduled_hours_fact'[roster_date] <= __CurrentDate && [Horarios programados] = BLANK()) ,'scheduled_hours_fact'[roster_date])

Resultado VAR = (__CurrentDate - __LastBlank) * 1 Resultado RETORNO

¿Es esto suficiente información?

Gracias

Mick

PD Vi su solicitud de más información sobre mi implementación de la solución de Alberto, pensé que comenzaríamos con su idea, pero podemos cambiar a esta otra si lo desea.

@mickjaeger Necesito confirmar un par de cosas. ¿Estás creando una medida correcta? [Horas programadas] ¿es una medida? Si [Horario de horas] es una medida, ¿cuál es la fórmula?

@Greg_Deckler sí, una medida, de hecho,

Horas programadas = SUM('scheduled_hours_fact'[roster_scheduled_time])
Syndicate_Admin
Administrator
Administrator

Dios mío, esta página no me gusta hoy, tratando y tratando de publicar una respuesta, pero no tomará. Probar esto solo con texto.

Syndicate_Admin
Administrator
Administrator

@Greg_Deckler gracias por las respuestas, no tengo tiempo para ver esto hoy. Miraré y responderé mañana. Gracias de nuevo.

Syndicate_Admin
Administrator
Administrator

@mickjaeger Esta habría sido mi solución:

DaysWith02 = 
    VAR __CurrentDate = MAX('Date'[date])
    VAR __CurrentHours = SUM('Hours'[roster_scheduled_time])
    VAR __LastBlank = MAXX(FILTER(ALL('Hours'),'Hours'[date]<=__CurrentDate && [roster_scheduled_time] = BLANK()),'Hours'[date])
RETURN (__CurrentDate - __LastBlank) * 1.

Greg_Deckler_1-1630535666772.png

Syndicate_Admin
Administrator
Administrator

@mickjaeger Primero, extraño, cuando intento aplicar ese código recupero todos los 0. ¿Puede compartir la implementación real de su código?

Greg_Deckler_0-1630534714309.png

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

April Fabric Community Update

Fabric Community Update - April 2024

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