Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Hola
Necesito hacer algo duro en power BI y estoy luchando... Me explico, tengo una fila con rango de fechas (inicio y fin) que necesito expandir en fila para cada día entre, fácil hasta ahora. Pero cada vez es más difícil porque es un patrón con repetición hasta una tercera cita. Por lo tanto, estoy buscando un tutorial para ampliar mi rango, pero solo para el día entre, y solo hasta la fecha repetida.
es decir:
fecha de inicio : 08/08/2022
fecha de finalización : 09/08/2022
volver a sentarse hasta : 31/08/2022
Quiero una fila con la fecha para cada lunes y martes hasta fin de mes, 8 filas.
¿Alguien sabe cómo hacer eso?
¡Gracias de antemano!
Juliano
Hola
Por favor, compruebe la imagen de abajo y el archivo pbix adjunto.
Es para crear una nueva tabla.
New Table =
VAR _mindate =
MIN ( Data[Start_Date] )
VAR _maxdate =
MAX ( Data[Repeat_Until] )
VAR _calendartable =
ADDCOLUMNS (
CALENDAR ( _mindate, _maxdate ),
"@dayname", FORMAT ( [Date], "ddd" )
)
VAR _generatetable =
GENERATE (
Data,
FILTER (
_calendartable,
[@dayname]
IN { FORMAT ( Data[Start_Date], "ddd" ), FORMAT ( Data[End_Date], "ddd" ) }
&& [Date] <= Data[Repeat_Until]
)
)
RETURN
SUMMARIZE (
_generatetable,
Data[ID],
Data[Start_Date],
Data[End_Date],
Data[Repeat_Until],
[Date]
)
Hola Jihwan y gracias por tu muestra, es buena pero descubro algo con mis datos. Debido al hecho de que no todas las filas tienen reapeat, a veces hay un rango de fechas sin patrón reapeted. Así que no funciona en este caso. Sé cómo hacerlo en QUERY pero no en DAX, ¿tienes el mismo cálculo pero en power query?
Gracias de nuevo.
Juliano
Hola
Gracias por su mensaje.
Lamento no entender su última explicación.
Si está bien con usted, ¿podría compartir el enlace de su archivo pbix de muestra con cómo se ve el resultado esperado? Y luego puedo intentar crear una solución.
Gracias.
Lo siento, no expresé mi problema correctamente, he duplicado su conjunto y agrego 2 filas más (id 3 y 4):
Para id 3: Necesito mantener la fila sola porque la fecha de inicio = fecha de finalización, luego la expansión de fecha debe chow exactamente la fecha (27/07/2022 en este caso)
Para el id 4, tengo un rango pero no repito, luego necesito expandir en 3 filas solo el rango (para el 12 / 13 / 14 de julio)
¡Gracias de nuevo por su tiempo!
Br
Juliano
Hola
Gracias por su explicación.
¿Podría verificar el archivo adjunto, si se adapta a sus necesidades?
Es para crear una nueva tabla2.
New Table 2 =
VAR _mindate =
MIN ( Data2[Start_Date] )
VAR _maxdate =
MAX ( Data2[Repeat_Until] )
VAR _calendartable =
ADDCOLUMNS (
CALENDAR ( _mindate, _maxdate ),
"@dayname", FORMAT ( [Date], "ddd" )
)
VAR _generatetable =
GENERATE (
FILTER ( Data2, Data2[Repeat_Until] <> BLANK () ),
FILTER (
_calendartable,
[@dayname]
IN { FORMAT ( Data2[Start_Date], "ddd" ), FORMAT ( Data2[End_Date], "ddd" ) }
&& [Date] <= Data2[Repeat_Until]
)
)
VAR _generatetabletwo =
GENERATE (
FILTER ( Data2, Data2[Repeat_Until] = BLANK () ),
FILTER (
_calendartable,
[Date] >= Data2[Start_Date]
&& [Date] <= Data2[End_Date]
)
)
RETURN
UNION (
SUMMARIZE (
_generatetable,
Data2[ID],
Data2[Start_Date],
Data2[End_Date],
Data2[Repeat_Until],
[Date]
),
SUMMARIZE (
_generatetabletwo,
Data2[ID],
Data2[Start_Date],
Data2[End_Date],
Data2[Repeat_Until],
[Date]
)
)
Hi Jihwan,
No me di cuenta, pero hay un error, en su tabla de resultados para id 1 y 2
Creó una fila a partir de la fecha de inicio MIN de toda la tabla, pero el día generado debe estar entre la fecha del intervalo hasta la fecha repetida para cada id.
Por ejemplo, la primera fila que generó para el id 1 Fecha = 7/12/2022 que es el MIN de la fecha de inicio id 4.
El resultado debe comenzar a partir del 7/25/2022 para el id 1.
No entiendo por qué, pero su inicio de expansión es falso en id 1 y 2 pero correcto al final del rango cada vez (8/30/2022 para id 1 y 8/26/2022 para id 2)
Ver en esta imagen solo necesitamos la parte verde de la tabla para el caso id 1:
¡Gracias por su tiempo, sus respuestas realmente me están ayudando con esta manipulación!
Juliano
Hola
Muchas gracias por sus comentarios, y lamento no haberlo comprobado cuidadosamente.
Compruebe el archivo pbix adjunto si se adapta al requisito.
New Table 2 =
VAR _mindate =
MIN ( Data2[Start_Date] )
VAR _maxdate =
MAX ( Data2[Repeat_Until] )
VAR _calendartable =
ADDCOLUMNS (
CALENDAR ( _mindate, _maxdate ),
"@dayname", FORMAT ( [Date], "ddd" )
)
VAR _generatetable =
GENERATE (
FILTER ( Data2, Data2[Repeat_Until] <> BLANK () ),
FILTER (
_calendartable,
[@dayname]
IN { FORMAT ( Data2[Start_Date], "ddd" ), FORMAT ( Data2[End_Date], "ddd" ) }
&& [Date] <= Data2[Repeat_Until]
&& [Date] >= Data2[Start_Date]
)
)
VAR _generatetabletwo =
GENERATE (
FILTER ( Data2, Data2[Repeat_Until] = BLANK () ),
FILTER (
_calendartable,
[Date] >= Data2[Start_Date]
&& [Date] <= Data2[End_Date]
)
)
RETURN
UNION (
SUMMARIZE (
_generatetable,
Data2[ID],
Data2[Start_Date],
Data2[End_Date],
Data2[Repeat_Until],
[Date]
),
SUMMARIZE (
_generatetabletwo,
Data2[ID],
Data2[Start_Date],
Data2[End_Date],
Data2[Repeat_Until],
[Date]
)
)
Eso es perfectamente lo que necesito... Muchas gracias que me acabas de ahorrar días de investigación, sinceramente.
Acepto su solución y le doy una recomendación en linkedin.
Gracias de nuevo y agradable para intercambiar de nuevo!
Juliano
@Ju7438 , Consulte este blog sobre power query puede ayudar
https://amitchandak.medium.com/power-query-get-all-dates-between-the-start-and-end-date-9ad6a84cf5f2
o el archivo adjunto con código DAX
Hola compañero y gracias por tu interés, lamentablemente esta forma no funciona en mi caso 😞 ..
Br
Juliano
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |