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

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
AlB
Super User
Super User

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
Super User
Super User

@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
AlB
Super User
Super User

@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

Anonymous
Not applicable

@AlB gracias!! 😀

AlB
Super User
Super User

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

Anonymous
Not applicable

@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)?

Anonymous
Not applicable

@AlB muchas gracias!!!

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.