Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
Estoy tratando de crear una tabla con citas de 15 minutos a partir de hoy (o posiblemente entre dos fechas si es más fácil)
Estoy usando lo siguiente para crear una tabla, pero tengo problemas para filtrarla para que comience desde la hora de la fecha de hoy, es decir, ahora
¿Se puede hacer esto?
Gracias de antemano
Horarios de citas =
Apertura VAR = 9
Cierre VAR = 17
Intervalo de tiempo VAR = 30
Desplazamiento VAR = ( TimeSlot / 2 )
DEVOLUCIÓN
GENERAR (
GENERACIONES ( 0, 1439, 1 ),
24 horas/día * 60 minutos/hora = 1.440 - 1 (hora inicial 12am)
VAR __Minutes = [Valor]
VAR __Time =
TIEMPO ( 0, __Minutes, 0 )
MROUND: Redondea el valor al múltiplo más cercano de TimeSlot
VAR __MinutesRounded =
MROUND ( ( __Minutes + Offset ), TimeSlot )
VAR __StartTimeSlotRounded =
TIEMPO ( 0, __MinutesRounded - Intervalo de tiempo, 0 )
VAR __EndTimeSlotRounded =
TIEMPO ( 0, __MinutesRounded, 0 )
DEVOLUCIÓN
FILA (
"Hora", HORA ( __Time ),
"Minuto", MINUTO ( __Time ),
"Hora Minuto 24h", FORMATO ( __Time, "hh:mm" ),
"Hora Minuto 12h", FORMATO ( __Time, "hh:mm AM/PM" ),
"30 Minute Slot Start", FORMAT ( __StartTimeSlotRounded, "hh:mm" ),
"30 Minute Slot End", FORMAT ( __EndTimeSlotRounded, "hh:mm" ),
"30 Minute Slot", FORMAT ( __StartTimeSlotRounded, "hh:mm" ) & "-"
& FORMATO ( __EndTimeSlotRounded, "hh:mm" ),
"Horas de trabajo", SI (
( __Minutes / 60 ) >= Apertura
&& ( __Minutes / 60 ) <= Cierre,
"Sí",
"No"
),
"Tiempo", __Time,
"TimeSlot Start", __StartTimeSlotRounded,
"TimeSlot End", __EndTimeSlotRounded
)
)
Solved! Go to Solution.
¿Puedes publicar una representación del resultado esperado? Por el momento, el código entrega una tabla con valores de tiempo, ¿verdad?
Editar: vea si esto funciona para usted:
Appointment Times with date =
VAR Opening = 9
VAR Closing = 17
VAR TimeSlot = 30
VAR Offset = ( TimeSlot / 2 )
RETURN
GENERATE (
GENERATESERIES ( 0, 1439, 1 ),
// 24 hours/day * 60 minutes/hour = 1,440 - 1 (initial time 12am)
VAR __Minutes = [Value]
VAR __Time =
TIME ( 0, __Minutes, 0 ) // MROUND: Rounds Value to the nearest multiple of TimeSlot
VAR __MinutesRounded =
MROUND ( ( __Minutes + Offset ), TimeSlot )
VAR __StartTimeSlotRounded =
TIME ( 0, __MinutesRounded - TimeSlot, 0 )
VAR __EndTimeSlotRounded =
TIME ( 0, __MinutesRounded, 0 )
VAR TimeValues =
ROW (
"Hour", HOUR ( __Time ),
"Minute", MINUTE ( __Time ),
"Hour Minute 24h", FORMAT ( __Time, "hh:mm" ),
"Hour Minute 12h", FORMAT ( __Time, "hh:mm AM/PM" ),
"30 Minute Slot Start", FORMAT ( __StartTimeSlotRounded, "hh:mm" ),
"30 Minute Slot End", FORMAT ( __EndTimeSlotRounded, "hh:mm" ),
"30 Minute Slot",
FORMAT ( __StartTimeSlotRounded, "hh:mm" ) & "-"
& FORMAT ( __EndTimeSlotRounded, "hh:mm" ),
"Working Hours",
IF (
( __Minutes / 60 ) >= Opening
&& ( __Minutes / 60 ) <= Closing,
"Yes",
"No"
),
"Time", __Time,
"TimeSlot Start", __StartTimeSlotRounded,
"TimeSlot End", __EndTimeSlotRounded
)
VAR Day2 =
TODAY () + 2
VAR Calend =
CALENDAR ( TODAY (), Day2 )
RETURN
ADDCOLUMNS (
CROSSJOIN ( Calend, TimeValues ),
"DateTime",
FORMAT ( [Date] & " " & [Hour Minute 24h], "General Date" ),
"DateTime Start",
FORMAT ( [Date] & " " & [30 Minute Slot Start], "General Date" ),
"DateTime End",
FORMAT ( [Date] & " " & [30 Minute Slot End], "General Date" )
)
)
que le da esto (mostrando las últimas columnas, incluida la fecha)
@Niiru1 si solo desea un intervalo de 15 minutos, utilice el siguiente código DAX. Puede agregar una columna adicional como mejor le parezca, esto tendrá 15 minutos para cada fecha a partir de hoy, y puede cambiar el valor en __totalDays para agregar fechas futuras.
Table =
VAR __startDate = TODAY()
VAR __totalDays = 0
VAR __endDate = TODAY() + __totalDays
VAR __calendar = CALENDAR ( __startDate, __endDate )
VAR __time = CROSSJOIN ( __calendar, GENERATESERIES ( 0, 1425, 15 ) )
VAR __addDateTime = ADDCOLUMNS ( __time, "DateTime", [Date] + TIME ( 0, [Value], 0 ) )
return __addDateTime
✨ Síguenos en LinkedIn
Revisa mi última publicación de blog El poder de usar grupos de cálculo con relaciones inactivas (Parte 1) (perytus.com) Yo lo haría ❤ Elogios si mi solución ayudó. 👉 Si puede dedicar tiempo a publicar la pregunta, también puede hacer esfuerzos para felicitar a quien ayudó a resolver su problema. ¡Es una muestra de agradecimiento!
⚡ Visítenos en https://perytus.com, su ventanilla única para proyectos/formación/consultoría relacionados con Power BI.⚡
¿Puedes publicar una representación del resultado esperado? Por el momento, el código entrega una tabla con valores de tiempo, ¿verdad?
Editar: vea si esto funciona para usted:
Appointment Times with date =
VAR Opening = 9
VAR Closing = 17
VAR TimeSlot = 30
VAR Offset = ( TimeSlot / 2 )
RETURN
GENERATE (
GENERATESERIES ( 0, 1439, 1 ),
// 24 hours/day * 60 minutes/hour = 1,440 - 1 (initial time 12am)
VAR __Minutes = [Value]
VAR __Time =
TIME ( 0, __Minutes, 0 ) // MROUND: Rounds Value to the nearest multiple of TimeSlot
VAR __MinutesRounded =
MROUND ( ( __Minutes + Offset ), TimeSlot )
VAR __StartTimeSlotRounded =
TIME ( 0, __MinutesRounded - TimeSlot, 0 )
VAR __EndTimeSlotRounded =
TIME ( 0, __MinutesRounded, 0 )
VAR TimeValues =
ROW (
"Hour", HOUR ( __Time ),
"Minute", MINUTE ( __Time ),
"Hour Minute 24h", FORMAT ( __Time, "hh:mm" ),
"Hour Minute 12h", FORMAT ( __Time, "hh:mm AM/PM" ),
"30 Minute Slot Start", FORMAT ( __StartTimeSlotRounded, "hh:mm" ),
"30 Minute Slot End", FORMAT ( __EndTimeSlotRounded, "hh:mm" ),
"30 Minute Slot",
FORMAT ( __StartTimeSlotRounded, "hh:mm" ) & "-"
& FORMAT ( __EndTimeSlotRounded, "hh:mm" ),
"Working Hours",
IF (
( __Minutes / 60 ) >= Opening
&& ( __Minutes / 60 ) <= Closing,
"Yes",
"No"
),
"Time", __Time,
"TimeSlot Start", __StartTimeSlotRounded,
"TimeSlot End", __EndTimeSlotRounded
)
VAR Day2 =
TODAY () + 2
VAR Calend =
CALENDAR ( TODAY (), Day2 )
RETURN
ADDCOLUMNS (
CROSSJOIN ( Calend, TimeValues ),
"DateTime",
FORMAT ( [Date] & " " & [Hour Minute 24h], "General Date" ),
"DateTime Start",
FORMAT ( [Date] & " " & [30 Minute Slot Start], "General Date" ),
"DateTime End",
FORMAT ( [Date] & " " & [30 Minute Slot End], "General Date" )
)
)
que le da esto (mostrando las últimas columnas, incluida la fecha)