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

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.

Reply
Anonymous
Not applicable

Los datos de origen son en semanas, necesita convertir totales a días de trabajo, IDEAS?!!

EL PROBLEMA: Estoy tratando de resolver un problema con la agregación de mis datos de origen limpiamente por mes.

Fondo:

Mis filas de datos de origen tienen un total y una fecha de inicio de la semana, no es en días. Lo que quiero hacer es convertir los datos de la fuente en días, dividiendo el total de cada semana por 5 y asignando ese valor a los días de lunes a viernes en la semana para que pueda crear limpiamente objetos visuales totales mensuales.

Ejemplo de datos de origen: 11/1/2020, 7.500, 11/8/2020, 25.000, 11/15/2020, 70.000......

Solución:

Espero que haya una manera de usar DAX o Power Query para seleccionar mis datos de origen en una tabla que tenga este aspecto (usando el ejemplo de datos de origen anterior):

11/1/2020, 7.500o en este: 11/2/2020, 1,500o, 11/3/2020, 1.500o, 11/4/2020.

Estoy pensando que debe haber una manera de hacer esto, pero no me he encontrado con este escenario exacto en mi búsqueda hasta ahora. Cualquier ayuda sería muy apreciada!!!

¡Gracias!

1 ACCEPTED SOLUTION
mahoneypat
Employee
Employee

Si está realizando análisis a nivel de mes, no estoy seguro de por qué se necesita esta transformación. En cualquier caso, aquí hay una manera de hacerlo en el editor de consultas. Para ver cómo funciona, simplemente cree una consulta en blanco, vaya a Editor avanzado y reemplace el texto allí con el código M a continuación.

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjTUN9Q3MjAyUNJRMjc1MFCK1QELWsAEjYCCcFFDU5gwSBQoHAsA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [WeekStart = _t, Total = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"WeekStart", type date}, {"Total", Int64.Type}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "DayList", each let start = [WeekStart] in List.Transform({1..5}, each Date.AddDays(start,_))),
    #"Added Custom1" = Table.AddColumn(#"Added Custom", "DayTotal", each [Total]/5),
    #"Removed Other Columns" = Table.SelectColumns(#"Added Custom1",{"DayList", "DayTotal"}),
    #"Expanded DayList" = Table.ExpandListColumn(#"Removed Other Columns", "DayList"),
    #"Renamed Columns" = Table.RenameColumns(#"Expanded DayList",{{"DayList", "Date"}}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Renamed Columns",{{"Date", type date}, {"DayTotal", type number}})
in
    #"Changed Type1"

saludos

palmadita





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


View solution in original post

2 REPLIES 2
mahoneypat
Employee
Employee

Si está realizando análisis a nivel de mes, no estoy seguro de por qué se necesita esta transformación. En cualquier caso, aquí hay una manera de hacerlo en el editor de consultas. Para ver cómo funciona, simplemente cree una consulta en blanco, vaya a Editor avanzado y reemplace el texto allí con el código M a continuación.

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjTUN9Q3MjAyUNJRMjc1MFCK1QELWsAEjYCCcFFDU5gwSBQoHAsA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [WeekStart = _t, Total = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"WeekStart", type date}, {"Total", Int64.Type}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "DayList", each let start = [WeekStart] in List.Transform({1..5}, each Date.AddDays(start,_))),
    #"Added Custom1" = Table.AddColumn(#"Added Custom", "DayTotal", each [Total]/5),
    #"Removed Other Columns" = Table.SelectColumns(#"Added Custom1",{"DayList", "DayTotal"}),
    #"Expanded DayList" = Table.ExpandListColumn(#"Removed Other Columns", "DayList"),
    #"Renamed Columns" = Table.RenameColumns(#"Expanded DayList",{{"DayList", "Date"}}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Renamed Columns",{{"Date", type date}, {"DayTotal", type number}})
in
    #"Changed Type1"

saludos

palmadita





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


Anonymous
Not applicable

¡Gracias, Pat! ¡Lo intentaré! Quiero una agregación CLEAN del total por mes (suponiendo una distribución uniforme del total durante los 5 días laborables en la semana) que no se puede hacer cuando los datos de origen no se dividen en días - a menos que me esté perdiendo algo (ciertamente posible, simplemente viniendo en esto con lo que sé)?

En este momento, estoy usando una herramienta ETL para crear otra tabla SQL de origen que hace esta conversión por mí, pero pensé que había una mejor manera de hacerlo con las herramientas dentro de Power BI para poder deshacerme de la creación de esa segunda tabla.

¡Aprecia la respuesta!

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

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.