Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Tengo una tabla de calendario básica y estoy buscando una manera de agregar períodos de 14 días que comienzan un miércoles y terminan el martes que es 14 días después. A continuación se muestra un ejemplo de lo que estoy buscando tener.
¿Hay alguna forma de agregar el Week_Start y el Week_Start_Number a mi tabla de calendario? Preferiría hacer esto en Power Query si es posible, pero también estaría dispuesto a usar DAX.
Hola ERing,
Queremos comprobar si los detalles que hemos dado han resuelto su problema.
Si necesita más ayuda, puede comunicarse con la comunidad de Microsoft Fabric.
Gracias.
Gracias @lbendlin, por su respuesta.
Hola ERing,
Nos gustaría preguntarle si ha tenido la oportunidad de revisar la solución proporcionada por @lbendlin para resolver el problema. Además, se adjunta la captura de pantalla y el archivo PBIX de muestra basado en los datos iniciales proporcionados:
Esperamos que la información proporcionada aquí ayude a aclarar su consulta. Si tiene más preguntas o necesita ayuda adicional, no dude en ponerse en contacto con la comunidad de Microsoft Fabric.
Gracias.
Gracias, @lbendlin, @Ashish_Mathur por su respuesta.
Hola ERing,
Agradecemos su pregunta en el foro de la comunidad de Microsoft Fabric.
Basándome en mi comprensión del problema, se adjunta una captura de pantalla y un archivo PBIX de muestra que puede ayudar a resolver el asunto:
Esperamos que la información proporcionada ayude a resolver el problema.
Si tiene más preguntas, no dude en ponerse en contacto con la comunidad de Microsoft Fabric.
Gracias.
@v-pnaroju-msft Gracias, pero esto no me da lo que necesito.
En el ejemplo que proporcionó, la fecha 7/1/2024 y 7/2/2024 son lunes y martes. De hecho, deberían tener una fecha Week_Start del 26/6/2024 (el miércoles anterior). 7/1/2024 y 7/2/2024 también deberían tener un Week_Start_Number de 1. 3/7/2024 - 16/7/2024 tendría un Week_Start del 3/7/2024 y un Week_Start_Number de 2.
Adjunto un archivo de muestra a continuación donde la primera fecha en el calendario es un domingo (1/1/2023). En este ejemplo, 1/1/2023 - 3/1/2023 tendría un Week_Start de 28/12/2022 (el miércoles anterior) y 1/1/2023 - 3/1/2023 tendría un Week_Start_Number de 1. 1/4/2023 - 1/17/2023 tendría un Week_Start de 1/4/2023 y un Week_Start_Number de 2. 18/01/2023 - 31/01/2023 tendría un Week_Start del 18/01/2023 y un Week_Start_Number de 3.
Ejemplo de inicio de período de recuento personalizado de 14 días
Hola
Escriba esta fórmula de columna calculada para crear la columna de fecha week_start
Week_start = si(día(calendario[fecha])<=15,fecha(año(calendario[fecha]),mes(calendario[fecha]),1),fecha(año(calendario[fecha]),mes(calendario[fecha]),15))
Espero que esto ayude.
@Ashish_Mathur Gracias. Esto está cerca, pero no es exactamente lo que necesito.
Mi objetivo es tener algo que se reinicie después de 14 días (cada 15 días). Por lo tanto, los períodos deben comenzar el 15/01/2020, el 29/01/2020 y el 11/02/2020. etcetera.
Período de 14 días = 1 + Int64.From(Date.WeekNumber([Date])/2)
Esta sería una columna personalizada en PQ, ¿verdad? Intenté agregar esto, pero recibo un mensaje de error.
let
Source = List.Dates(#date(2025,1,1),100,#duration(1,0,0,0)),
#"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Renamed Columns" = Table.RenameColumns(#"Converted to Table",{{"Column1", "Date"}}),
#"Changed Type" = Table.TransformColumnTypes(#"Renamed Columns",{{"Date", type date}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Week_Start_Number", each Int64.From(Date.DayOfYear([Date])/14+0.49))
in
#"Added Custom"
Cómo usar este código: Cree una nueva consulta en blanco. Haga clic en "Editor avanzado". Reemplace el código en la ventana con el código proporcionado aquí. Haga clic en "Listo". Una vez que haya examinado el código, reemplace todo el paso de origen con su propio código fuente.
Gracias @lbendlin Esto definitivamente me acerca, pero algunas preguntas adicionales.
1. ¿Cómo puedo agregar la columna Week_Start (debería haberla llamado Period_Start) en la publicación original? La intención es mostrar la primera fecha en cada período de 14 días.
2. Parece que puedo cambiar el número "14" por cualquier número que desee y me dará ese número de días como intervalos al asignar un Week_Start_Number. ¿Te parece correcto?
3. El código de la tabla de mi calendario está a continuación. Parece que simplemente puedo agregar la última línea de código que proporcionó antes del "in" en mi código para obtener el Week_Start_Number. ¿Te parece correcto?
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjDUByIjAyMDpdhYAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [StartDate = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"StartDate", type date}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "EndDate", each Date.From(DateTime.LocalNow())),
#"Changed Type1" = Table.TransformColumnTypes(#"Added Custom",{{"EndDate", type date}}),
#"Added Custom1" = Table.AddColumn(#"Changed Type1", "Date", each {Number.From([StartDate])..Number.From([EndDate])}),
#"Expanded Date" = Table.ExpandListColumn(#"Added Custom1", "Date"),
#"Changed Type2" = Table.TransformColumnTypes(#"Expanded Date",{{"Date", type date}}),
#"Removed Columns" = Table.RemoveColumns(#"Changed Type2",{"StartDate", "EndDate"}),
#"Duplicated Column" = Table.DuplicateColumn(#"Removed Columns", "Date", "Date - Copy"),
#"Extracted Year" = Table.TransformColumns(#"Duplicated Column",{{"Date - Copy", Date.Year, Int64.Type}}),
#"Renamed Columns" = Table.RenameColumns(#"Extracted Year",{{"Date - Copy", "Year"}})
in
#"Renamed Columns"
#"Added Custom" = Table.AddColumn(#"Changed Type", "Week_Start_Number", each Int64.From(Date.DayOfYear([Date])/14+0.49)
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjDUByIjAyMDpdhYAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [StartDate = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"StartDate", type date}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "EndDate", each Date.From(DateTime.LocalNow()),type date),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "Date", each {Number.From([StartDate])..Number.From([EndDate])}),
#"Expanded Date" = Table.ExpandListColumn(#"Added Custom1", "Date"),
#"Changed Type2" = Table.TransformColumnTypes(#"Expanded Date",{{"Date", type date}}),
#"Removed Columns" = Table.RemoveColumns(#"Changed Type2",{"StartDate", "EndDate"}),
#"Added Custom2" = Table.AddColumn(#"Removed Columns", "Year", each Date.Year([Date]), Int64.Type),
#"Added Custom3" = Table.AddColumn(#"Added Custom2", "Period_Start", each Int64.From(Date.DayOfYear([Date])/14+0.49),Int64.Type)
in
#"Added Custom3"
Tenga en cuenta que el contador se reinicia cada año.