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

Learn from the best! Meet the four finalists headed to the FINALS of the Power BI Dataviz World Championships! Register now

Reply
thmonte
Helper IV
Helper IV

¿Formando la fecha con un desplazamiento por turnos?

Estoy trabajando con los registros de pago de los empleados y tengo empleados donde su turno se superpone días.

Por ejemplo: Estoy programado para trabajar el jueves 3/19, pero vengo a las 6 PM del miércoles y trabajo hasta las 6 de la mañana del jueves. Pueden introducir tiempo en cualquier lugar de ese rango, pero quiero poder usar un filtro de fecha de 3/19.

Me gustaría que todos estos registros devueltan si selecciono una segmentación de 2/11

EMP_IDSTART_TIMEEND_TIMESHIFT_CODEHoras
5762/10/2020 22:002/11/2020 2:00204
5762/11/2020 4:302/11/2020 5:30201
5762/11/2020 5:302/11/2020 6:00200.5
5762/11/2020 2:302/11/2020 4:30202
5762/11/2020 6:002/11/2020 6:30200.5

Sobre la base de que el código de cambio es de 20, lo que significa que llegaron a principios de

Aquí está la mesa de turnos con la que tengo que trabajar

SHIFT_CODESHIFT_STARTSHIFT_END
2018000630
1700002355
1006001830

¡Espero haberte explicado bastante bien!

6 REPLIES 6
Greg_Deckler
Community Champion
Community Champion

Cubro algunas cosas de Shift en mi nuevo libro DAX Cookbook. Sin embargo, en su caso no estoy seguro de que tenga que ser súper complejo:

Quizás

Measure = 
  VAR __Start = INT(MAX('Table'[START_TIME]))
  VAR __End = INT(MAX('Table'[END_TIME))
  VAR __Date = INT(SELECTEDVALUE('Calendar'[Date])
RETURN
  IF(__Date = __Start || __Date = __End,1,0)


Follow on LinkedIn
@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
DAX For Humans

DAX is easy, CALCULATE makes DAX hard...

@Greg_Deckler

¡Tienes que revisar tu libro! He estado usando PowerBI durante años y a veces me golpeo una pared de ladrillos. Me encantaría aprender un nuevo enfoque sobre las cosas. ¿Qué opinas de este enfoque? Parece estar funcionando basado en lo que puedo ver

Column = 

var start_shift = 'Table Pay'[start_time_date] + TIME(18,00,00)

var end_shift = 'Table Pay'[start_time_date] + TIME(23,59,59)

var stmt = IF('Table Pay'[SHIFT_CODE] = 20 && 'Table Pay'[START_TIME] >= start_shift && 'Table 

Pay'[START_TIME] <= end_shift, 'Table Pay'[start_time_date] +1, 'Table Pay'[start_time_date])

return stmt

Esto fuerza todos los registros que tienen un desplazamiento superpuesto y en un rango de 1600-2359 a +1 hasta esa fecha. Esto debería darme una columna que pueda usar en una relación con una tabla de fecha principal para filtrar.

Tendría que probarlo, ¡pero soy un gran fan de las cosas que funcionan! 🙂

Si está funcionando para usted y usted puede hacer lo que necesita hacer, entonces suena como el camino a seguir.

Es difícil llegar a respuestas específicas para las personas porque es difícil transmitir todo el contexto involucrado en sus situaciones particulares por lo que es el juez final de lo que funciona y lo que no!


Follow on LinkedIn
@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
DAX For Humans

DAX is easy, CALCULATE makes DAX hard...
edhans
Community Champion
Community Champion

No entiendo bien el problema. Si desea que se devuelvan todos esos registros de los datos de ejemplo si selecciona 11 de febrero, solo use la columna Fecha de finalización para la segmentación de datos. Si eso no funciona, explique por qué y cómo determinaría lógicamente lo que se debe extraer, podemos ayudarle con medidas, columnas calculadas o lógica de Power Query para ayudar a obtener lo que necesita.



Did I answer your question? Mark my post as a solution!
Did my answers help arrive at a solution? Give it a kudos by clicking the Thumbs Up!

DAX is for Analysis. Power Query is for Data Modeling


Proud to be a Super User!

MCSA: BI Reporting

Hola @edhans ,

Es posible que los registros tengan una hora de inicio y hora de finalización del 10 de febrero y todavía me gustaría que se muestren al seleccionar el 11 de febrero en el fitler.

Realmente se correlaciona con todos los registros de fila que tienen un valor de desplazamiento de 20. En la tabla de turnos verá según el código de cambio 20 comienza a las 1800 el día anterior y termina 0630 el día actual. Lo siento si no puedo explicar esto mejor. Permítanme generalizarlo un poco mejor.

Código de Cambio 20 - Rango es 1800 Día Anterior - 0600 Día Actual

Si selecciono como ejemplo 2/14 como filtro de fecha y empleado 123

Quiero devolver todos los registros que tienen una hora de inicio entre 2/13 1800 - 2/14 0600

Tal vez pueda enderezó una declaración if en la columna start_time

si el turno 20 & start_time > 18:00 & start_time < 2359 entonces start_time.date + 1 más start_time.date

edhans
Community Champion
Community Champion

De acuerdo. Tengo que salir un rato, pero el modelo existe en mi archivo PBIX. Creo que Power Query es el mejor lugar para configurar esto, pero @Greg_Deckler solución puede funcionar para usted. Volveré a ver un poco.



Did I answer your question? Mark my post as a solution!
Did my answers help arrive at a solution? Give it a kudos by clicking the Thumbs Up!

DAX is for Analysis. Power Query is for Data Modeling


Proud to be a Super User!

MCSA: BI Reporting

Helpful resources

Announcements
Join our Fabric User Panel

Join our Fabric User Panel

Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.

February Power BI Update Carousel

Power BI Monthly Update - February 2026

Check out the February 2026 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.