Панель инструментов Power BI, где состояние основного фильтра является дизъюнкцией для числовых полей - PullRequest
0 голосов
/ 03 сентября 2018

Мы пытаемся реализовать панель мониторинга, которая отображает различные таблицы, метрики и карту, где набор данных представляет собой список клиентов. Основным условием фильтрации является дизъюнкция двух числовых полей. Мы хотим, чтобы пользователь мог выбрать порог для [field 1] и отдельный порог для [field 2], а затем наложить условие [field 1] >= <threshold> OR [field 2] >= <threshold>.

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

Power BI естественным образом налагает AND между всеми фильтрами и не имеет аккуратного способа указать OR. Можете ли вы предложить способ определения вычисления с использованием двух числовых полей, которые затем применяются в качестве фильтра на одном и том же экране интерактивной панели? В качестве альтернативы, есть ли способ сначала запросить у пользователя два пороговых значения перед отображением информационной панели - поэтому, когда они нажимают Submit на этом экране настройки параметров, они затем переносятся на главный экран информационной панели с уже примененной дизъюнкцией

Добавлено в ответ на комментарий:

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

Предположим, что данные представляли собой список клиентов с идентификатором клиента, страной, полом, общей стоимостью транзакций за последние 12 месяцев и количеством покупок за последние 12 месяцев. Я хочу, чтобы конечный пользователь (без технических навыков) указал минимальный порог для общей стоимости (например, 1000 долларов США) и количества покупок (например, 10), а затем ограничил набор данных теми, где общая стоимость транзакций за последние 12 месяцев > $ 1000 ИЛИ количество покупок за последние 12 месяцев> 10.

После этого я хочу позволить пользователю видеть набор данных на панели инструментов (например, с таблицей и графиком) и оттуда выбирать другие фильтры (например, пол = мужской, страна = Австралия).

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Ключом здесь является создание отдельных таблиц параметров и объединение условий с использованием меры.

Предположим, у нас есть следующая таблица Sales:

Customer  Value  Number
-----------------------
A         568     2
B         2451   12
C         1352    9
D         876     6
E         993    11
F         2208   20
G         1612    4

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

Number = VALUES(Sales[Number])

или что-то более сложное, например

Value = GENERATESERIES(0, ROUNDUP(MAX(Sales[Value]),-2), ROUNDUP(MAX(Sales[Value]),-2)/10)

Или определите таблицу вручную, используя Ввод данных или другим способом.

В любом случае, если у вас есть эти таблицы, назовите их столбцы по своему желанию (я использовал MinNumber и MinValue) и напишите свою меру фильтрации

Filter = IF(MAX(Sales[Number]) > MIN(Number[MinCount]) ||
            MAX(Sales[Value])  > MIN('Value'[MinValue]),
            1, 0)

Затем поместите меру Filter в качестве фильтра визуального уровня, где Filter не равен 0, и используйте столбцы MinCount и MinValues в качестве слайсеров.

Если вы выберете 10 для MinCount и 1000 для MinValue, то ваша таблица должна выглядеть следующим образом:

Filtered

Обратите внимание, что E и G превышают только одно из пороговых значений, а A и D исключаются.

0 голосов
/ 11 сентября 2018

Насколько мне известно, в Power BI такой встроенной функции слайсера в настоящее время нет. Однако на форуме Power BI есть предложение, которое запрашивает такую ​​функциональность. Если вы захотите использовать Power Query Editor, легко получить искомые значения, но только для жестко заданных значений для ваших пределов или пороговых значений.

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

Dataset:

CustomerID,Country,Gender,TransactionValue12,NPurchases12
51,USA,M,3516,1
58,USA,M,3308,12
57,USA,M,7360,19
54,USA,M,2052,6
51,USA,M,4889,5
57,USA,M,4746,6
50,USA,M,3803,3
58,USA,M,4113,24
57,USA,M,7421,17
58,USA,M,1774,24
50,USA,F,8984,5
52,USA,F,1436,22
52,USA,F,2137,9
58,USA,F,9933,25
50,Canada,F,7050,16
56,Canada,F,7202,5
54,Canada,F,2096,19
59,Canada,F,4639,9
58,Canada,F,5724,25
56,Canada,F,4885,5
57,Canada,F,6212,4
54,Canada,F,5016,16
55,Canada,F,7340,21
60,Canada,F,7883,6
55,Canada,M,5884,12
60,UK,M,2328,12
52,UK,M,7826,1
58,UK,M,2542,11
56,UK,M,9304,3
54,UK,M,3685,16
58,UK,M,6440,16
50,UK,M,2469,13
57,UK,M,7827,6

Рабочий стол:

Здесь вы видите таблицу ввода и таблицу подмножеств с использованием двух слайсеров. Если предложение форума будет реализовано, надеюсь, будет легко изменить подмножество, как показано ниже, на сценарий "OR":

enter image description here

Стоимость транзакции> 1000 ИЛИ Количество или покупки> 10 с использованием Power Query:

Если вы используете Edit Queries > Advanced filter, вы можете настроить его следующим образом:

enter image description here

Последний шаг в Applied Steps будет содержать следующую формулу:

= Table.SelectRows(#"Changed Type2", each [NPurchases12] > 10 or [TransactionValue12] > 1000

Теперь ваша исходная таблица ввода будет выглядеть так:

enter image description here

Теперь, если бы мы только смогли заменить жестко закодированные 10 и 1000 на динамическое значение, например, из слайсера, мы были бы в порядке! Но нет ...

Я знаю, что это не то, что вы искали, но это был лучший «отрицательный ответ», который я мог найти. Полагаю, что надеюсь на лучшее решение так же, как и вы!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...