cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Helper I
Helper I

Cómo repartir el valor durante el período del mes, no el período del día

Tengo datos con valores de contrato que deben distribuirse a lo largo de un contrato en PowerQuery. Encontré una solución en línea que usaba la [Fecha de inicio]. [Fecha de finalización] - pero eso me da todos los días, mientras que lo necesito mensualmente. Intenté usar Date.Month([Start Date]) pero luego no contaba el tiempo durante años diferentes.

Por ejemplo,

Fecha de inicioFecha de finalizaciónValorNúmero de meses
01/12/202003/12/20201004

Me gustaría convertirme en esto para poder difundir los 100 a lo largo de los 4 meses para ser 25 cada uno.

Fecha de inicioFecha de finalizaciónValorNúmero de mesesFecha personalizada
01/12/202003/12/2020100401/12/2020
01/12/202003/12/2020100401/01/2021
01/12/202003/12/2020100401/02/2021
01/12/202003/12/2020100401/03/2021
2 ACCEPTED SOLUTIONS
Super User III
Super User III

No @RickmasPick

Coloque el siguiente código M en una consulta en blanco para ver los pasos.

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjDUNzTSNzIwMlDSUQKyDIxBHEMQxwAkZKIUGwsA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Start Date" = _t, #"End Date" = _t, Value = _t, #"Number of Months" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Start Date", type date}, {"End Date", type date}, {"Value", Int64.Type}, {"Number of Months", Int64.Type}}),

    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each List.Select(List.Dates([Start Date],Number.From([End Date]-[Start Date])+1,#duration(1,0,0,0)), each Date.Day(_) =1)),
    #"Expanded Custom" = Table.ExpandListColumn(#"Added Custom", "Custom"),
    #"Changed Type1" = Table.TransformColumnTypes(#"Expanded Custom",{{"Custom", type date}})
in
    #"Changed Type1"

Por favor, marque la pregunta resuelta cuando haya terminado y considere dar un pulgar hacia arriba si las publicaciones son útiles.

Póngase en contacto conmigo de forma privada para obtener asistencia con cualquier necesidad de BI a gran escala, tutoría, etc.

Salud

SU18_powerbi_badge

View solution in original post

Super User III
Super User III

@RickmasPick

Comienza el primer mes, siempre y cuando la fecha de inicio sea el primer día del mes. Si desea agregar el primer mes incluso si la fecha de inicio no es el primer día del mes, sólo tiene que utilizar Date.StartOfMonth([Fecha de inicio]) en el List.Dates

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjDVNzTSNzIwMlDSUQKyDIxBHEMQxwAkZKIUGwsA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Start Date" = _t, #"End Date" = _t, Value = _t, #"Number of Months" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Start Date", type date}, {"End Date", type date}, {"Value", Int64.Type}, {"Number of Months", Int64.Type}}),

    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each List.Select(List.Dates(Date.StartOfMonth([Start Date]),Number.From([End Date]-[Start Date])+1,#duration(1,0,0,0)), each Date.Day(_) =1)),
    #"Expanded Custom" = Table.ExpandListColumn(#"Added Custom", "Custom"),
    #"Changed Type1" = Table.TransformColumnTypes(#"Expanded Custom",{{"Custom", type date}})
in
    #"Changed Type1"

Por favor, marque la pregunta resuelta cuando haya terminado y considere dar un pulgar hacia arriba si las publicaciones son útiles.

Póngase en contacto conmigo de forma privada para obtener asistencia con cualquier necesidad de BI a gran escala, tutoría, etc.

Salud

SU18_powerbi_badge

View solution in original post

5 REPLIES 5
Super User III
Super User III

@RickmasPick

Comienza el primer mes, siempre y cuando la fecha de inicio sea el primer día del mes. Si desea agregar el primer mes incluso si la fecha de inicio no es el primer día del mes, sólo tiene que utilizar Date.StartOfMonth([Fecha de inicio]) en el List.Dates

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjDVNzTSNzIwMlDSUQKyDIxBHEMQxwAkZKIUGwsA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Start Date" = _t, #"End Date" = _t, Value = _t, #"Number of Months" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Start Date", type date}, {"End Date", type date}, {"Value", Int64.Type}, {"Number of Months", Int64.Type}}),

    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each List.Select(List.Dates(Date.StartOfMonth([Start Date]),Number.From([End Date]-[Start Date])+1,#duration(1,0,0,0)), each Date.Day(_) =1)),
    #"Expanded Custom" = Table.ExpandListColumn(#"Added Custom", "Custom"),
    #"Changed Type1" = Table.TransformColumnTypes(#"Expanded Custom",{{"Custom", type date}})
in
    #"Changed Type1"

Por favor, marque la pregunta resuelta cuando haya terminado y considere dar un pulgar hacia arriba si las publicaciones son útiles.

Póngase en contacto conmigo de forma privada para obtener asistencia con cualquier necesidad de BI a gran escala, tutoría, etc.

Salud

SU18_powerbi_badge

View solution in original post

@AlB gracias!! 😀

Super User III
Super User III

No @RickmasPick

Coloque el siguiente código M en una consulta en blanco para ver los pasos.

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjDUNzTSNzIwMlDSUQKyDIxBHEMQxwAkZKIUGwsA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Start Date" = _t, #"End Date" = _t, Value = _t, #"Number of Months" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Start Date", type date}, {"End Date", type date}, {"Value", Int64.Type}, {"Number of Months", Int64.Type}}),

    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each List.Select(List.Dates([Start Date],Number.From([End Date]-[Start Date])+1,#duration(1,0,0,0)), each Date.Day(_) =1)),
    #"Expanded Custom" = Table.ExpandListColumn(#"Added Custom", "Custom"),
    #"Changed Type1" = Table.TransformColumnTypes(#"Expanded Custom",{{"Custom", type date}})
in
    #"Changed Type1"

Por favor, marque la pregunta resuelta cuando haya terminado y considere dar un pulgar hacia arriba si las publicaciones son útiles.

Póngase en contacto conmigo de forma privada para obtener asistencia con cualquier necesidad de BI a gran escala, tutoría, etc.

Salud

SU18_powerbi_badge

View solution in original post

@AlB oh esperar lo siento mi única pregunta es, comienza a partir del segundo mes, ¿cómo puedo hacerlo comenzar desde el mes original es decir 01/12/2020 - 01/03/2021 (comienza en diciembre de 2020 y termina en marzo de 2021)?

@AlB muchas gracias!!!

Helpful resources

Announcements
secondImage

Congratulations!

We are excited to announce the Power BI Super Users!

Wave Release 2

Check out the updates in Power BI.

Overview of Power BI 2020 release wave 2!

Get Ready for Power BI Dev Camp

Get Ready for Power BI Dev Camp

Mark your calendars and join us for our next Power BI Dev Camp!.

secondImage

The largest Power BI virtual conference

100+ sessions, 100+ speakers, Product managers, MVPs, and experts. All about Power BI. Attend online or watch the recordings.