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

Generar series a partir de hoy

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
)
)
1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

¿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)

result.JPG

View solution in original post

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

@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.

Syndicate_Admin
Administrator
Administrator

¿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)

result.JPG

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

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.