#excel #powerquery
#excel #powerquery
Вопрос:
Я использую Power Query для получения данных из одной книги, 4 листа. На каждом листе примерно 5 тысяч строк, и мне нужно объединить все 4 листа в одну таблицу (в таблице будет столько же строк, сколько и в исходных, но примерно 200 столбцов). Я использую power query для объединения, но проблема в том, что загрузка занимает очень много времени, и хотя файл имеет 6 МБ, запрос мощности загружает более 100 МБ и иногда сообщает мне, что недостаточно памяти.
Что может замедлить запрос мощности?
Код запроса мощности (wArrSource — таблица, в которую загружено 4 листа):
let
Source = wArrSource,
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type date}}),
#"Merged Table1" = Table.NestedJoin(#"Changed Type", {"Column2"}, wArrTable1, {"Column2"}, "wArrTable1", JoinKind.LeftOuter),
#"Expanded wArrTable1" = Table.ExpandTableColumn(#"Merged Table1", "wArrTable1", Different columns}),
#"Merged Monatswerte" = Table.NestedJoin(#"Expanded wArrTable1", {"Index"}, wArrPumaMonatswerte, {"Index"}, "wArrPumaMonatswerte", JoinKind.LeftOuter),
#"Expanded wArrTable2" = Table.ExpandTableColumn(#"Merged Monatswerte", "wArrTable2", {"*A lot of columns here*"}
#"Merged Queries" = Table.NestedJoin(#"Expanded wArrTable2", {"Index"}, wArrTable3, {"Index"}, "wArrTable3", JoinKind.LeftOuter),
#"Expanded wArrTable3" = Table.ExpandTableColumn(#"Merged Queries", "wArrTable3", "*A lot of columns here*"}),
#"Added Month" = Table.AddColumn(#"Expanded wArrTable3", "Month", each Date.Month([ AB Date])),
#"Added Period" = Table.AddColumn(#"Added Month", "Period", each if [Month]>9 then [Month]-9 else [Month] 3),
#"Added FY" = Table.AddColumn(#"Added Period", "FY", each Date.Year([ AB Date]) (if [Month]>9 then 1 else 0)),
#"Changed Type1" = Table.TransformColumnTypes(#"Added FY",{{"Month", Int64.Type}, {"Period", Int64.Type}, {"FY", Int64.Type}, {"Ist 2020", type number}, {"FC 2020", type number}, {"FC 2021", type number}, {"FC 2022", type number}, {"FC 2023", type number}}),
#"Added Sum" = Table.AddColumn(#"Changed Type1", "Sum", each [Ist 2020] [FC 2020] [FC 2021] [FC 2022] [FC 2023]),
#"Added ID" = Table.AddColumn(#"Added Sum", "ID", each Number.ToText([#"Column2"],"G") amp; "_" amp; [Column 5]),
#"Replaced Errors" = Table.ReplaceErrorValues(#"Added ID", {{"Period", 0}, {"FY", 0}}),
#"Added Value" = Table.AddColumn(#"Replaced Errors", "Value", each if [Status]="ABC" or [Status]="BED" then null else "x"),
#"Added AB2" = Table.AddColumn(#"Added Value", "AB 2 Date", each if [wArrTable1.AB 2 IST] <> null then [wArrTable1.AB 2 IST] else if [wArrTable1.AB 2 FC] <> null then [wArrTable1.DI 2 FC] else if [wArrTable1.AB 2 Plan] <> null then [wArrTable1.AB 2 Plan] else ""),
in
#"Added AB2"
Комментарии:
1. вставьте код, из которого вы используете…. Главная… Дополнительно….
2. В этом масштабе вам, вероятно, нужно запускать 64-разрядный Excel, иначе он может использовать только 3 ГБ оперативной памяти.
3. Но вся загружаемая мной книга имеет всего 6 МБ, для этого не требуется 3 ГБ оперативной памяти…