|
|||||||
Как суммировать N столбцов в запросе
Время создания: 12.02.2022 22:46
Текстовые метки: Power Query, List.RemoveFirstN, Record.ToList
Раздел: Разные закладки - MSO - Excel - Power Query
Запись: xintrea/mytetra_db_adgaver_new/master/base/164469520603kj81agxo/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
//============================================================================= //замена значений null->0 по списку столбцов Replace_Null_CU = Table.ReplaceValue(Vol_Date_in_data_array_CC,null,0,Replacer.ReplaceValue,List_Columns_Date) //Record_ToList = Table.AddColumn(Replace_Null_CU, "Lists_Records", each Record.ToList(Replace_Null_CU{[Индекс]}))
, //Создайте список столбцов для суммирования (отрезаем первые столбцы) //colToSum = List.RemoveFirstN(Table.ColumnNames(Replace_Null_CU),6), colToSum=List.Buffer(List_Columns_Date), //colToSum = List.Buffer( // List.RemoveFirstN(Table.ColumnNames(Replace_Null_CU),6) // ),
//Add Index Column IDX = Table.AddIndexColumn(Replace_Null_CU,"Index",0,1),
//Result Sum/Count each row of "colToSum" //totals //= Table.AddColumn(IDX, "Res", each List.Sum(Record.ToList(Table.SelectColumns(IDX, colToSum){[Index]})) / List.Count(Record.ToList(Table.SelectColumns(IDX, colToSum){[Index]}))=[Vol_CC]) totals = Table.AddColumn(IDX, "Res", each [Vol_CC]=List.Sum(Record.ToList(Table.SelectColumns(IDX, colToSum){[Index]})) / List.Count(Record.ToList(Table.SelectColumns(IDX, colToSum){[Index]})))
//============================================================================= //замена значений null->0 по списку столбцов Replace_Null_CU = Table.ReplaceValue(Vol_Date_in_data_array_CC,null,0,Replacer.ReplaceValue,List_Columns_Date) //Record_ToList = Table.AddColumn(Replace_Null_CU, "Lists_Records", each Record.ToList(Replace_Null_CU{[Индекс]}))
, //Создайте список столбцов для суммирования (отрезаем первые столбцы) //colToSum = List.RemoveFirstN(Table.ColumnNames(Replace_Null_CU),6), colToSum=List.Buffer(List_Columns_Date), //colToSum = List.Buffer( // List.RemoveFirstN(Table.ColumnNames(Replace_Null_CU),6) // ),
//Add Index Column IDX = Table.AddIndexColumn(Replace_Null_CU,"Index",0,1),
//Result Sum/Count each row of "colToSum" //totals //= Table.AddColumn(IDX, "Res", each List.Sum(Record.ToList(Table.SelectColumns(IDX, colToSum){[Index]})) / List.Count(Record.ToList(Table.SelectColumns(IDX, colToSum){[Index]}))=[Vol_CC]) totals = Table.AddColumn(IDX, "Res", each [Vol_CC]=List.Sum(Record.ToList(Table.SelectColumns(IDX, colToSum){[Index]})) / List.Count(Record.ToList(Table.SelectColumns(IDX, colToSum){[Index]})))
//============================================================================= , //Создайте список столбцов для суммирования (отрезаем первые столбцы) colToSum =List.Buffer( List.RemoveFirstN(Table.ColumnNames(Replace_Null_CU),6) ),
//Add Index Column IDX = Table.AddIndexColumn(Replace_Null_CU,"Index",0,1),
//Sum each row of "colToSum" totals_Sum = Table.AddColumn( IDX, "Sum", each List.Sum(Record.ToList(Table.SelectColumns(IDX, colToSum){[Index]})), Number.Type ), //Count each row of "colToSum" totals_Count = Table.AddColumn( totals_Sum, "Count", each List.Count(Record.ToList(Table.SelectColumns(IDX, colToSum){[Index]})), Number.Type ), //Result Sum/Count each row of "colToSum" totals = Table.AddColumn( totals_Count, "Res", each List.Sum(Record.ToList(Table.SelectColumns(IDX, colToSum){[Index]})) / List.Count(Record.ToList(Table.SelectColumns(IDX, colToSum){[Index]})), Currency.Type ),
Compare_CC_CU = Table.AddColumn(totals, "Сдвиг версий", each [Vol_CC]=[Res])
//=============================================================================
После поворота: Создание списка столбцов для суммирования Добавление столбца Индекс для ограничения каждой строкой Добавление столбца, который суммирует столбцы только для этой строки Удалить индекс колум
let Source = Excel.CurrentWorkbook(){[Name="Table3"]}[Content], #"Changed Type" = Table.TransformColumnTypes(Source,{{"Month Yr", Date.Type}, {"Attribute", type text}, {"Value", Currency.Type}}), #"Added Custom" = Table.AddColumn(#"Changed Type", "MonthYear", each Date.ToText([Month Yr],"MMMM yyyy")), #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Month Yr"}), #"Pivoted Column" = Table.Pivot(#"Removed Columns", List.Distinct(#"Removed Columns"[MonthYear]), "MonthYear", "Value", List.Sum),
//NEW code added after your Pivoted Column line
//Get List of columns to sum // Assumes this list all columns **except the first** in the Pivot table // There are other methods of generating this list if this assumption is incorrect colToSum = List.RemoveFirstN(Table.ColumnNames(#"Pivoted Column"),1),
//Add Index Column IDX = Table.AddIndexColumn(#"Pivoted Column","Index",0,1),
//Sum each row of "colToSum" totals = Table.AddColumn(IDX, "Sum", each List.Sum( Record.ToList( Table.SelectColumns(IDX,colToSum){[Index]}) ), Currency.Type), #"Removed Columns1" = Table.RemoveColumns(totals,{"Index"})
in #"Removed Columns1" |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|