
У меня есть ряд запросов в Excel, которые все зависят от начального запроса, который загружает данные из CSV-файлов, обрабатывает их и загружает в таблицу на листе. Все остальные запросы используют таблицы листа в качестве источника и не используют внешние источники данных.
Когда я перезагружаю их по отдельности, они, похоже, занимают больше времени, чем должны, и, по-видимому, обращаются к самим CSV-файлам.
У меня есть все глобальные настройки и настройки данных для запроса, чтобы оптимизировать загрузку (быстрая загрузка, отключение фона и т. д.), основанные на некоторых интернет-исследованиях, и исходная загрузка/обработка запроса приемлемы, учитывая объем данных. Просто кажется, что как только у меня есть обработанные данные в таблице в рабочей книге, запросы этой таблицы и других не потребуют возврата к файлам источников данных.
Просто интересно, может я что-то упустил. Спасибо!
решение1
Когда запрос ссылается на другой запрос как на Источник (или на этапе Merge или Append), вся эта логика запроса Источника будет запускаться каждый раз при обновлении ссылающегося запроса. Если у вас есть 5 запросов, ссылающихся на один и тот же запрос Источника, логика запроса Источника будет запускаться 5 раз параллельно (по умолчанию). Очевидно, что это неэффективно.
В сценарии Excel шаблон, позволяющий избежать этой неэффективности, заключается в установке исходного запроса наЗагрузить втаблица Excel. Тогда ссылающиеся запросы могут быть направлены на эту таблицу Excel как на их Источник.
Это действительно ставит вас перед проблемой координации обновлений, поскольку нажатие кнопки «Обновить все» рискует привести к несогласованным результатам. Обычно я смягчаю это с помощью групп запросов или записывая макрос обновления.
решение2
Спасибо, Майк. Похоже, вы правы, хотя обновление зависимого запроса, похоже, обновляет родительский запрос (что подтверждается сообщениями о том, к каким файлам CSV он обращается) несколько быстрее, чем обновление родительского запроса напрямую.
Я решил проблему так, как вы предложили. Вместо использования кнопки «Управление/Ссылка» на панели инструментов редактора Power Query, которая генерирует
Источник = #"родительский запрос"
Я использую Get Data->Table/Range или редактор M для получения данных из таблицы родительского запроса.
Источник = Excel.CurrentWorkbook(){[Name="имя родительской таблицы запроса"]}[Content]
Теперь загружается мгновенно. Поскольку я нахожусь в стадии разработки своего проекта, управление обновлениями не является проблемой. Разберусь с системой, как только закончу.
Спасибо!