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
Syndicate_Admin
Administrator
Administrator

Columna de suma acumulada

Hola a todos!

Tengo una tabla como esta, con las ventas cada semana, quiero calcular una suma acumulada para cada mes.

La tabla tiene ventas para cada mes: tengo la tabla como esta:

PeríodoNo. SemanaSemanaNegocio Semana de ventas
1/2/2021 10 - 28/Feb - 28/Febrero10Harinas-Industrial 250.00
1/2/2021 09 - 21/Feb - 27/Febrero9Harinas-Industrial 1,602,210.00
1/2/2021 08 - 14/Feb - 20/Febrero8Harinas-Industrial 630,410.00
1/2/2021 07 - 7/Feb - 13/Feb7Harinas-Industrial 876,720.00
1/2/2021 06 - 1/Feb - 6/Feb6Harinas-Industrial 616,965.00

Necesito una mesa que se vea así:

PeríodoNo. SemanaSemanaNegocio Semana de ventas Ventas acumuladas
1/2/2021 10 - 28/Feb - 28/Febrero10Harinas-Industrial250.00 3,726,555.00
1/2/202109 - 21/Feb - 27/Febrero9Harinas-Industrial1,602,210.00 3,726,305.00
1/2/202108 - 14/Feb - 20/Febrero8Harinas-Industrial630,410.00 2,124,095.00
1/2/202107 - 7/Feb - 13/Feb7Harinas-Industrial876,720.00 1,493,685.00
1/2/202106 - 1/Feb - 6/Feb6Harinas-Industrial 616,965.00 616,965.00

Donde el colum acumulado es una suma de las ventas cada semana

¡Espero que alguien pueda ayudarme!

2 ACCEPTED SOLUTIONS
Syndicate_Admin
Administrator
Administrator

@christianyepez2

puede crear una columna

Column = CALCULATE(sum(Sheet6[ Sales Week]),FILTER(Sheet6,Sheet6[Period]=EARLIER(Sheet6[Period])&&Sheet6[Week]<=EARLIER(Sheet6[Week])))

1.PNG

por favor, vea el archivo adjunto a continuación

View solution in original post

@christianyepez2

por favor, pruebe esto

Column = CALCULATE(sum(Sheet6[ Sales Week]),FILTER(Sheet6,Sheet6[Period]=EARLIER(Sheet6[Period])&&Sheet6[Week]<=EARLIER(Sheet6[Week])&&'Sheet6'[Product]=EARLIER(Sheet6[Product])))

View solution in original post

10 REPLIES 10
Jcarofi
Frequent Visitor

Hola a todos disculpa la molestia necesito ayuda con una columna acumulada en power query para un dashboard en power bi  en donde necesito una columna (Runnig t)  sumando los valores (ve) en funcion de las variables (Est)  y (CICL) como lo muestro en el ejemplo. por su ayuda les quedo agradecido.

 

Jcarofi_0-1631133496062.png

Recueden necesito el codigo en lenguaje M

Hola

Comparta datos en un formato que se pueda pegar en un archivo de MS Excel.

 

EstanqueCicloRaleo       
LEB5C2-202132       
LEB5C2-203554       
LEB5C2-204549       
LEB12C2-201653       
LEB12C2-203203       
LEB12C2-204339       
LEB5C1-213152       
LEB5C1-214063       
LEB5C1-215618       

 

Mcode 

let
Origen = Excel.Workbook(File.Contents("C:\Users\J024919\Downloads\Prub.xlsx"), null, true),
Est_Table = Origen{[Item="Est",Kind="Table"]}[Data],
#"Tipo cambiado" = Table.TransformColumnTypes(Est_Table,{{"Estanque", type text}, {"Ciclo", type text}, {"Raleo", type number}}),
TableType = Value.Type(Table.AddColumn(#"Tipo cambiado", "Running Sum", each null, type number)),
#"Grouped Rows" = Table.Group(Est_Table, {"Estanque", "Ciclo"}, {{"AllData", each fnAddRunningSum (_, "Raleo"), TableType}}),
#"Expanded AllData" = Table.ExpandTableColumn(#"Grouped Rows", "AllData", {"Raleo", "Running Sum"}, {"Raleo", "Running Sum"})
in #"Expanded AllData"

 

Funcion Code =

 

(MyTable as table, value as text) as table =>
let
Source = Table.Buffer(Est),
value = "Ciclo",
TableType = Value.Type(Table.AddColumn(Source, "Running Sum", each null, type number)),
Cumulative = List.Skip(List.Accumulate(Table.Column(Source, value),{0},(cumulative,cost) => cumulative & {List.Last(cumulative) + Number.From(cost)})),
AddedRunningSum = Table.FromColumns(Table.ToColumns(Source)&{Cumulative},TableType)
in
AddedRunningSum

 

I don´t Know what is wrong.

 

Help me please

 

Hola

Este código M funciona

let
    Source = Excel.CurrentWorkbook(){[Name="Data"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Pond", type text}, {"Cycle", type text}, {"Raleo", Int64.Type}}),
    #"Added Index" = Table.AddIndexColumn(#"Changed Type", "Index", 1, 1, Int64.Type),
    #"Merged Columns" = Table.CombineColumns(#"Added Index",{"Pond", "Cycle"},Combiner.CombineTextByDelimiter(":", QuoteStyle.None),"Merged"),
    BufferedTable = Table.Buffer(#"Merged Columns"),
    Custom1 = Table.AddColumn(
    BufferedTable, 
    "Running Total", 
    (OutTable) => 
        List.Sum(
            Table.SelectRows(
                BufferedTable, 
                (InTable) => InTable[Index] <= OutTable[Index]
                and 
                InTable[Merged] = OutTable[Merged])[Raleo]
        )
    ),
    #"Split Column by Delimiter" = Table.SplitColumn(Custom1, "Merged", Splitter.SplitTextByDelimiter(":", QuoteStyle.Csv), {"Merged.1", "Merged.2"}),
    #"Removed Columns" = Table.RemoveColumns(#"Split Column by Delimiter",{"Index"}),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Merged.1", "Pond"}, {"Merged.2", "Cycle"}}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Renamed Columns",{{"Running Total", Int64.Type}})
in
    #"Changed Type1"

Espero que esto ayude.

Untitled.png

Thanks for all 

Syndicate_Admin
Administrator
Administrator

No @christianyepez2,

Tengo una manera de lograr su necesidad. Calcule la cantidad acumulada de diferentes productos cada mes.

Ventas acumuladas = CALCULATE(SUM('Table'[Week Sales]),FILTER('Table','Table'[Product]=EARLIER('Table'[Product]) && 'Table'[Week Num]<=EARLIER('Table'[Week Num])))

«Tabla»[Producto]=EARLIER('Tabla'[Producto]) para asegurarse de que el producto es el mismo.

El efecto es como se muestra:

Ailsa-msft_0-1617175340756.png

Aviso: el tipo de datos de [Ventas semana] debe ser "número" no "texto"

Saludos

Equipo de Apoyo a la Comunidad _ Ailsa Tao

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.

Syndicate_Admin
Administrator
Administrator

@christianyepez2

puede crear una columna

Column = CALCULATE(sum(Sheet6[ Sales Week]),FILTER(Sheet6,Sheet6[Period]=EARLIER(Sheet6[Period])&&Sheet6[Week]<=EARLIER(Sheet6[Week])))

1.PNG

por favor, vea el archivo adjunto a continuación

Hola @ryan_mayu gracias por la respuesta

La cosa es en realidad que mi mesa se ve así:

qq.PNG

y el resultado debe ser:

qq2.PNG

El acumulado debe calcularse para cada producto

¡Gracias!

@christianyepez2

por favor, pruebe esto

Column = CALCULATE(sum(Sheet6[ Sales Week]),FILTER(Sheet6,Sheet6[Period]=EARLIER(Sheet6[Period])&&Sheet6[Week]<=EARLIER(Sheet6[Week])&&'Sheet6'[Product]=EARLIER(Sheet6[Product])))
Syndicate_Admin
Administrator
Administrator

Hey @christianyepez2 ,

Creo que la función TOTALMTD puede resolver su problema:

Función TOTALMTD (DAX) - DAX | Documentos de Microsoft

Si necesitas ayuda, por favor avísame.
Si respondiera a su pregunta, estaría feliz si pudiera marcar mi publicación como una solución ✔️ y darle un pulgar hacia arriba 👍
Saludos
Denis

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.