Всем привет! У меня есть запрос PQ, который изменяется макросом в зависимости от выбранных вариантов в ячейках на листе. Также меняется имя файла, к которому обращаться (в папке сложено несколько файлов по месяцам, в каждом +500к строк). Все работает, но засада в том, что макросы на работе запретили.
Можно ли сделать так, чтобы имя файла и фильтры были переменными в запросе, исходя из данных на листе?
Текст запроса:
[vba]
Код
let Источник = Excel.Workbook(File.Contents("C:\ТТ по периодам\2023 Октябрь.xlsx"), null, true), Куб_Sheet = Источник{[Item="Куб",Kind="Sheet"]}[Data], #"Повышенные заголовки" = Table.PromoteHeaders(Куб_Sheet, [PromoteAllScalars=true]), #"Измененный тип" = Table.TransformColumnTypes(#"Повышенные заголовки",{{"Год", type text}, {"Месяц", type text}, {"Федеральный округ", type text}, {"Регион", type text}, {"Сеть", type text}, {"Формат ТТ", type text}, {"SKU", type text}, {"Адрес", type text}, {"Регулярно", type any}, {"Промо", type number}}), #"Строки с примененным фильтром" = Table.SelectRows(#"Измененный тип", each ([Формат ТТ] <> null and [Формат ТТ] <> "Формат ТТ")), #"Замененное значение" = Table.ReplaceValue(#"Строки с примененным фильтром","7Е+","7Е",Replacer.ReplaceText,{"SKU"}), Округлено = Table.TransformColumns(#"Замененное значение",{{"Регулярно", each Number.Round(_, 2), type number}}), Округлено1 = Table.TransformColumns(Округлено,{{"Промо", each Number.Round(_, 2), type number}}), #"Строки с примененным фильтром1" = Table.SelectRows(Округлено1, each ([Регион] = "Москва") and ([Сеть] = "Пятерочка") and ([SKU] = "ххх")), #"Удаленные столбцы" = Table.RemoveColumns(#"Строки с примененным фильтром1",{"Федеральный округ", "Год", "Месяц", "Регион", "Сеть", "SKU"}), #"Переупорядоченные столбцы" = Table.ReorderColumns(#"Удаленные столбцы",{"Формат ТТ", "Адрес", "Регулярно", "Промо"}) in #"Переупорядоченные столбцы"
[/vba]
Всем привет! У меня есть запрос PQ, который изменяется макросом в зависимости от выбранных вариантов в ячейках на листе. Также меняется имя файла, к которому обращаться (в папке сложено несколько файлов по месяцам, в каждом +500к строк). Все работает, но засада в том, что макросы на работе запретили.
Можно ли сделать так, чтобы имя файла и фильтры были переменными в запросе, исходя из данных на листе?
Текст запроса:
[vba]
Код
let Источник = Excel.Workbook(File.Contents("C:\ТТ по периодам\2023 Октябрь.xlsx"), null, true), Куб_Sheet = Источник{[Item="Куб",Kind="Sheet"]}[Data], #"Повышенные заголовки" = Table.PromoteHeaders(Куб_Sheet, [PromoteAllScalars=true]), #"Измененный тип" = Table.TransformColumnTypes(#"Повышенные заголовки",{{"Год", type text}, {"Месяц", type text}, {"Федеральный округ", type text}, {"Регион", type text}, {"Сеть", type text}, {"Формат ТТ", type text}, {"SKU", type text}, {"Адрес", type text}, {"Регулярно", type any}, {"Промо", type number}}), #"Строки с примененным фильтром" = Table.SelectRows(#"Измененный тип", each ([Формат ТТ] <> null and [Формат ТТ] <> "Формат ТТ")), #"Замененное значение" = Table.ReplaceValue(#"Строки с примененным фильтром","7Е+","7Е",Replacer.ReplaceText,{"SKU"}), Округлено = Table.TransformColumns(#"Замененное значение",{{"Регулярно", each Number.Round(_, 2), type number}}), Округлено1 = Table.TransformColumns(Округлено,{{"Промо", each Number.Round(_, 2), type number}}), #"Строки с примененным фильтром1" = Table.SelectRows(Округлено1, each ([Регион] = "Москва") and ([Сеть] = "Пятерочка") and ([SKU] = "ххх")), #"Удаленные столбцы" = Table.RemoveColumns(#"Строки с примененным фильтром1",{"Федеральный округ", "Год", "Месяц", "Регион", "Сеть", "SKU"}), #"Переупорядоченные столбцы" = Table.ReorderColumns(#"Удаленные столбцы",{"Формат ТТ", "Адрес", "Регулярно", "Промо"}) in #"Переупорядоченные столбцы"
Нашел статью. с фильтрами разобрался, получилось через опцию Детализация
Но с именем файла засада. Я его так же через Детализацию получил, но использовать его не получается. Выдает ошибку: Formula.Firewall: Запрос "без_макроса" (шаг "Источник") ссылается на другие запросы или этапы и поэтому не может напрямую обращаться к источнику данных. Измените эту комбинацию данных. Как это обойти?)
Нашел статью. с фильтрами разобрался, получилось через опцию Детализация
Но с именем файла засада. Я его так же через Детализацию получил, но использовать его не получается. Выдает ошибку: Formula.Firewall: Запрос "без_макроса" (шаг "Источник") ссылается на другие запросы или этапы и поэтому не может напрямую обращаться к источнику данных. Измените эту комбинацию данных. Как это обойти?)Leprotto