Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Power BI. Динамические диапазоны данных., Проблема с работой функций PQ внутри потоков данных вэб версии PBI.
 
День добрый.

Очень нужна консультация по работе PBI в части запросов PQ.

Для более точного понимания картины, краткая предыстория. Существует довольно сложная модель данных в excel с множеством запросов из разных источников. Было решено перенести ее в поток данных в вэб версию PBI для дальнейшего импорта в PBI desktop и последующей публикации, заодно и перенести всю работу в PBI, продолжив использовать excel исключительно как способ хранения исходников. На выходе ожидалось получить более удобный инструмент для демонстрации данных, а главное возможность настроить автоматическое обновление.

Собственно в процессе переноса запросов в поток данных я и наткнулся на проблему с "Динамическими источниками данных". В целом, я был готов пожертвовать табличками с путями к файлам-исходникам, которые изначально существовали в умных таблицах excel и подгружались в PQ, и планировал просто обойти этот момент через создание непосредственно в потоке фиксированной таблицы с перечислением нужных мне путей.

Однако на деле данная проблема возникла на том этапе, где я ее вообще не ожидал. Как оказалось, поток отказывается сохраняться, указывая причиной обращение к динамическому источнику данных, уже просто при наличии в запросе самой простой функции PQ, которая идет по указанному пути и выдергивает от туда нужный диапазон или табличку.
Код
(filepath)=>
let
    Источник = Excel.Workbook(File.Contents(filepath), null, true),
    Выгрузка = Источник{[Item="Пример",Kind="Table"]}[Data]
in
    Выгрузка

То есть сам факт наличия данной функции среди запросов потока, не позволяет мне этот самый поток сохранить, хотя она просто добавлена в список запросов и даже еще нигде не применена.

Отсюда вопрос, есть ли какой-то иной способ получить нужный мне функционал? Быть может функции PQ в рамках вэб PBI нужно использовать как-то по-другому?

Буду очень признателен за любую помощь.
Power Query. Работа с функциями., Проблема с работой функции, которая заполняет созданную таблицу по условию.
 
Огромное спасибо!

Да, вот эту магию, так сказать, я и искал. Где какие знаки расставлять, а так же никак у меня в голове не укладывалось, что именно и как передается в функцию и что она потом с этим делает. Unpivot, конечно, тоже вариант, но функция более изящное решение что ли.
Power Query. Работа с функциями., Проблема с работой функции, которая заполняет созданную таблицу по условию.
 
День добрый.

Вот собрал маленький пример того, что пытаюсь натворить.

На всякий случай вот описание изначальной цели, зачем все затевалось.

Есть два столбца с индикаторами "Стать оборота работы" и "Стать оборота материалы". В примере варианта их заполнения только два, но на самом деле их больше. Необходимо собрать их в один столбец, тем самым увеличив и количество строк результирующей таблицы, но сделать это так, чтобы напротив индикатора ФОТ рабочих были данные из столбца "Стоимость работ", в напротив индикатора Материалы "Стоимость материалов" и так далее для других возможных индикаторов по тому условию, которое будет прописано в функции.

Быть может все это можно реализовать с помощью какой-то мудреной группировки, но соображалки на ее создание тоже не хватает.
Power Query. Работа с функциями., Проблема с работой функции, которая заполняет созданную таблицу по условию.
 
Добрый день.

Подскажите пожалуйста, один момент в работе с функциями в Power Query.

Простая функция, которая создает табличку нужной структуры, после чего заполняет ее поля по заданному условию:

(стоимость_материалов, стоимость_работ)=>
let
   Источник = #table(
   { "Статья оборота", "Сумма" },
   {
     {"Материалы", each if [Статья оборота Материалы] = "Материалы" then стоимость_материалов else 0},
     {"Работы" , if 1 = 1 then стоимость_работ else 0}
   }
)
in
   Источник

В случае со строкой "Работы" все, понятное дело, работает, ведь условие здесь всегда выполняется. После того как я применяю функцию в нужной мне таблице, она выдает результаты того столбца, на который я "натравил функцию".

Проблемы начинаются, когда я пытаюсь проверить на выполнение условия столбец "Статья оборота Материалы", который находится все в той же таблице, где я применяю функцию. Судя по всему, она просто не понимает где ей проверять условие, где находится данный столбец.

Подскажите, существует ли какой-то способ объяснить функции не только какой столбик проверять на условие, но и в какой таблице какого запроса он находится?
Power Query обращение к полю по номеру столбца
 
Извиняюсь, туплю. Поставил просто вместо таблицы предыдущий шаг. Все работает. Огромное спасибо за помощь

Михаил Л, попробовал и Ваш способ, тоже очень полезная штука, обязательно внедрю). Спасибо большое.
Изменено: vikttur - 16.09.2021 20:48:53
Power Query обращение к полю по номеру столбца
 
Спасибо, очень похоже на то, что я ищу. Я, правда, еще не силен в PQ, и, насколько понимаю, вместо (tbl) должно быть указано имя нужной мне таблицы. А нельзя ли заставить PQ воспринимать в качестве таблицы то, что я вижу во время предварительного просмотра, чтобы не выгружать лишний раз не нужные мне данные. То есть вписать данный код прямо между шагами существующего запроса, а PQ при этом воспринимал таблицей то, что окажется выше этих строчек кода?
Power Query обращение к полю по номеру столбца
 
Добрый день.

Дабы не создавать новую тему, попробую спросить здесь. Подскажите пожалуйста, что прописать в настраиваемом столбце, чтобы в нем выводились данные из столбца, который находится левее или правее столбца, имя которого мне известно. Другими словами, условно половина таблицы имеет плавающую структуру - в ней добавляются столбцы с неизвестными именами, в то время как другая половина по своей структуре не меняется. Хотелось бы иметь возможность ссылаться на новые столбцы, указывая в качестве отправной точки один из тех столбцов, что остаются без изменений. Например, указать имя столбца и задать параметр что-то вроде -3, обозначив тем самым что я хочу видеть данные из столбца который находится левее на 3 столбца от нужного.
Обновление данных в разных файлах из разных папок по списку с помощью макроса
 
Большое спасибо за оперативность. Вот только дошли руки проверить код на деле. Все работает, файлы открываются и сохраняются, однако нужного обновления все же не происходит. Дата последнего сохранения файла обновляется, а вот дата обновления запросов (вывел специально через команду в запросе DateTime.LocalNow) не меняется. Возможно между нажатием кнопки "Обновить все" во вкладке данные и командой RefreshAll в макросе есть разница и из-за этого обновления запросов не происходит?
Быть может дело в том, что макрос не дожидается обновления запросов и закрывается слишком рано?
Изменено: Александр - 09.08.2021 15:18:36
Обновление данных в разных файлах из разных папок по списку с помощью макроса
 
Добрый день.

С макросами практически не знаком. Долгий поиск и перебор разных формулировок поисковых запросов результатов не дал. Вполне возможно, что ответ в какой-то момент был найден, но, в силу ограниченности знаний в данной области, я мог просто его не распознать. Буду очень признателен, если поможете разобраться.

Задача:
По очереди обновить (команда "Обновить все") все excel файлы (находятся в разных папках) из списка (набирается вручную, например, в формате умной таблицы), который представлен в виде полного пути к каждому из них. В идеале, если список будет находиться в отдельном excel файле, там же, где и сам макрос, но устроит, если он будет прописан внутри кода. После обновления файл нужно сохранить и закрыть. Никаких дополнительных действий в процессе не требуется, посему будут уместны любые дополнения, ускоряющие процесс. Насколько я понимаю, для этого можно временно отключать разного рода уведомления и отображения.

На данный момент макрос требуется только для обновления запросов Power Query, на тот случай, если по сравнению с командой "Обновить все" макрос с таким ограничением сработает значительно быстрее.

Совсем идеально, если выполнение данного макроса можно будет назначить на определенное время, так как файлов порядка двух десятков и в каждом довольно тяжелые запросы как по структуре, так и по весу источников данных.

Заранее спасибо.
Страницы: 1
Наверх