Страницы: 1
RSS
Параметризация вычисляемой таблицы Power BI
 
Всем доброго времени суток!

Никак не могу решить следующую задачу:

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

Пишу следующую формулу при создании вычисляемой таблицы:
вычисляемая_таблица = FILTER( test; test[Code] = SELECTEDVALUE( test[Code] ) )

Идея была в том, что при отсутствии фильтра SELECTEDVALUE( test[Code] ) выдает пустое значение и вычисляемая таблица остается пустой. А при использовании фильтра SELECTEDVALUE( test[Code] ) присваивается отфильтрованное значение и вычисляемая таблица учтет это.

Однако такой подход не сработал... Если кто-то знает как решить эту задачу, прошу помочь.

Файл с примером прикладываю.

Спасибо!
Изменено: Петр1431 - 05.03.2019 16:54:37
 
Не могу сейчас посмотреть файл, но то как вы описываете, у вас не получится. То, что вы фильтруете в визуализациях, никак не влияет на таблицы в модели, хоть загруженные, хоть вычисляемые. Мой совет :лучше опишите здесь вопрос, который пытаетесь решить, а не способ вами избранный, который очевидно не правильный, если я правильно вас понял.

ps Посмотрел файл. Я был прав - так, как вы хотите, в принципе не работает. Нельзя из визуализации передать значения в таблицу в модели. Так что, озвучьте проблему, которую хотите решить, а не способ, который выбрали - он не верный
Изменено: StepanWolkoff - 06.03.2019 09:41:05
 
Понял.

Глобально задача выглядит следующим образом:
Есть база, в которой ведется учет данных с датчиков, показания снимаются каждые 30 минут (т.е. примерно 17520 значений в год), по каждому датчику снимается 4 показателя. Всего порядка 3000 датчиков.
Напрямую подключиться к базе на данный момент возможности нет, поэтому DirectQuery не вариант. Могу лишь делать выгрузки произвольной формы и размера.

Необходимо максимально эффективно с точки зрения быстродействия и объема сформировать по данным отчет следующей структуры: справа список кодов датчиков (G1, G2, ..., G3000), слева 4 графика по показателям каждого датчика (vo, vi, wo, wi). Соответственно выбрав датчик в списке, должны отобразиться соответствующие графики. При снятии фильтра - пустота.
Дополнительно к этому, по каждому показателю (vo, vi, wo, wi) необходимо рассчитать скользящее среднее (14 дней) и скользящую дисперсию (14 дней). Это нужно для того, чтобы на графике отобразить коридор допустимых значений показателя по формуле:
верхняя граница = среднее + 3*дисперсия
нижняя граница = среднее - 3*дисперсия

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

Что пробовал делать:
1. Самый компактный вариант выгрузки данных - это таблица, в которой датчики занесены в таблицу по столбцам (тем самым мы минимизируем количество строк таблицы). Однако я не смог придумать способа, как используя фильтры в Power BI выбирать столбец таблицы.
2. Следующий подход - это разнести все датчики по разным файлам с соответствующими названиями (G1.csv, G2.csv и т.д.). Затем в Power BI написать запрос к файлу, в котором название файла будет представлено параметром. Запрос создал, параметр прописал, но как управлять параметром из отчета не придумал...
3. Следующий подход, который сейчас пытаюсь реализовать, это сформировать выгрузку с отменой свертываемости столбцов. Минус в том что файл весит больше и у меня подозрения что Power BI будет медленней работать с ним. Вариант использовать отмену свертываемости столбцов непосредственно в Power BI - не рассматривал, интуитивно кажется что большой файл Power BI будет долго считать.

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

Пример выгрузки пока не выкладываю, т.к. не уверен пока в каком виде нужно подавать данные на вход...

Был бы очень признателен за решение этой задачи!
Изменено: Петр1431 - 06.03.2019 10:55:33
 
Ну как раз зря не выкладываете пример выгрузки, понимая структуру исходника проще помочь. Не совсем понятно : вы сейчас каждый раз выгружаете данные за весь предыдущий период или хотите инкрементально догружать? Если второе, то это только версии премиум кажется, если сделали. И тогда как вариант загружать в какую то БД и уже оттуда в power BI. Если же каждый раз это один файл, то проще его в power BI превратить в плоскую таблицу и работать с ним. Не думаю что займёт много времени.
 
Мне кажется просто нужна мера, которая будет проверять, выбран ли датчик на срезе при помощи ISCROSSFILTERED(Таблица[Номер датчика]), и если да, то считать нужные меры, если нет - не считать ничего.
И всё. Все остальные варианты - это надругательство над принципами моделирования. Если у вас всего 5 столбцов в Таблице, то это не так страшно, можно спокойно работать.
F1 творит чудеса
 
Цитата
Петр1431 написал:
т.к. не уверен пока в каком виде нужно подавать данные на вход...
да хотя бы схему входных дынных (таблицы, связи и указать ключевые поля) укажите - там потом уже разберётесь в каком виде давать в PP... сначала определитесь с общей Концепцией БД (тогда и будет легче препарировать части) - думаю, так
Изменено: JeyCi - 07.03.2019 09:52:27
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Возможно Вам окажется полезной вот эта статья
Параметризация путей к данным в Power Query
 
Максим Зеленский,
Действительно, что-то я слишком перемудрил. Использования простых мер более чем достаточно для этой задачи.

Всем спасибо!
Страницы: 1
Наверх