Страницы: 1
RSS
Оптимизировать работу Power Query после сжатия по дате.
 
Добрый день! Везде много всего написано, но не могу понять после того как я в PQ сократил с помощью автофильтра данные до одного последнего месяца и хочу поработать именно с этим последним месяцем, но при вводе любого действия система опять начинает пересчитывать полностью все данные из всей таблицы, как можно оптимизировать данное действие. Пробовал с помощью ссылки и дубляжа. Одно и то же идет пересчет всех месяцев.  
Изменено: DemonAMT - 10.06.2021 17:45:51
 
Ни из сообщения, ни из примера, лично мне ничего не понятно. Может это я тупой, а может нужно более подробно описать что вы конкретно делаете, и что именно вас не устраивает. Прямо по шагам.
Вот горшок пустой, он предмет простой...
 
Таблица с периодами. Мне нужно сократить таблицу до одного месяца. Затем сделать любое действие с получившимся файлом. Например суммировать к колонке Число +1. Проблема в том что после того как файл сократил до одного месяца я вижу как при действии система начинает обрабатывать все месяца, которые вроде бы как сокращены.
 
Цитата
DemonAMT написал:
система начинает обрабатывать все месяца, которые вроде бы как сокращены.
Из какого места системы вы такое наблюдаете? Скриншот в студию.
Вот горшок пустой, он предмет простой...
 
Возможно я как то непонятно объясняю. Ок попробую с скриншотом на реальном примере. В автофильтре выбран только 06.2021. При добавлении шагов, внизу справа вижу как идет обработка месяцев идет которые я убрал с помощью автофильтра и пока не обработаются все 24 месяца, которые были в таблице без автофильтра обработка не останавливается.
Изменено: DemonAMT - 11.06.2021 09:16:14
 
Я так понимаю в рабочем файле данные тянутся с папки, где много файлов excel одной структуры? Так от файлов excel следует отказаться и перейти на csv

Плюс убрать эту галочку

И скорее всего List.Max(#"Измененный тип"[ДАТА])  нужно загнать в буфер. Но это лучше у специалистов уточнить
Изменено: mechanix 85 - 11.06.2021 09:22:57
 
DemonAMT, вы фильтр делаете по массиву, который собран из файлов в папке, т.е. для того чтобы отфильтровать ненужные данные запросу приходится сначала все файлы прочитать, а потом уже убирать то, что не требуется. Таков алгоритм вашего запроса, и PQ тут не при чем.
Теперь вопрос к вам, судя по названиям файлов они у вас разделены именно по временным промежуткам, что мешает перед раскрытием содержимого файлов, сначала отфильтровать список, оставить только нужные даты, и только потом уже лезть внутрь. Чувствуете разницу в подходах?
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал:
что мешает перед раскрытием содержимого файлов, сначала отфильтровать список, оставить только нужные даты
В принципе идея правильная. Сделал фильтр на начальном этапе. При сборке файлов оставил только последний месяц. Но интересно что после сбора этого месяца в одну таблицу опять вижу обработку всех месяцев. Видимо дело не в этом файле возможно mechanix 85 прав в том что надо убирать галочку. Видимо вместе с обработкой этого файла идут обработки других процессов.
 
Эту галочку нужно убирать вообще всегда.
Цитата
DemonAMT написал:
после сбора этого месяца в одну таблицу опять вижу обработку всех месяцев.
Покажите запрос. Как вы там чего фильтруете?
Изменено: PooHkrd - 11.06.2021 10:36:52
Вот горшок пустой, он предмет простой...
 
Рабочий файл к сожалению дать не могу там много разных процессов. А в примере образца не смогу показать все процессы. Спс за помощь дальше буду искать причину сам.
 
DemonAMT, мне не нужен ваш файл, скопируйте из редактора кусок кода, где вы обращаетесь к папке и фильтруете файлы, и вставьте код в сообщение.
Там же нет коммерческой тайны?  :D
Изменено: PooHkrd - 11.06.2021 10:58:51
Вот горшок пустой, он предмет простой...
 
В принципе я понял из за чего происходит такая обработка. Я создаю справочников контрагентов следующим методом:
В связи с тем что кода постоянны, а наименование постоянно меняется собираю все файлы за месяца и года в один, затем вставляю индекс и убираю дубликаты по коду так получается список с одним наименованием, Затем когда путем объединения подвязываю к кодам получившийся справочник, система начинает по новой обрабатывать всю инфу по всем годам. Как можно, получив справочник, эти данные сделать как постоянными, чтоб по новому не собирались данные.
Код
let
    Источник = Table.Combine({#"УКРАИНА СБОР", #"УК СБОР"}),
    #"Переупорядоченные столбцы" = Table.ReorderColumns(Источник,{"Период", "ВИП.Код", "ВИП.Наименование", "РМ", "ТИП", "ГРУППА.1", "ГРУППА.2", "ГРУППА.3", "ГРУППА.4", "ГРУППА.5", "Номенклатура.Код", "Номенклатура.Наименование", "Факт"}),
    #"Удаленные столбцы" = Table.RemoveColumns(#"Переупорядоченные столбцы",{"Период", "ГРУППА.1", "ГРУППА.2", "ГРУППА.3", "ГРУППА.4", "ГРУППА.5", "Номенклатура.Код", "Номенклатура.Наименование", "Факт"}),
    #"Добавлен индекс" = Table.AddIndexColumn(#"Удаленные столбцы", "Индекс", 0, 1),
    #"Удаленные дубликаты" = Table.Distinct(#"Добавлен индекс", {"ВИП.Код"}),
    #"Удаленные столбцы1" = Table.RemoveColumns(#"Удаленные дубликаты",{"Индекс", "РМ"}),
    РМ = Table.Buffer(РМ_ИНСТР),
    #"Объединенные запросы" = Table.Join(#"Удаленные столбцы1",{"ВИП.Код"},РМ,{"Код Сеть"},JoinKind.LeftOuter),
    #"Удаленные столбцы2" = Table.RemoveColumns(#"Объединенные запросы",{"Код Сеть", "ВИП"})
in
    #"Удаленные столбцы2"
 
Цитата
DemonAMT написал:
Как можно, получив справочник, эти данные сделать как постоянными, чтоб по новому не собирались данные.
Выгружать справочник в таблицу на лист, и брать данные в модель из нее, предварительно обновив. Других вариантов нет.
Вот горшок пустой, он предмет простой...
 
Понял. Спс. Создам наверное отдельно файл с справочником.
Страницы: 1
Наверх