Как получить количество строк в визуальном элементе таблицы

Я пытаюсь создать визуальный элемент карты в Power BI, который отображает выражение «Визуальный элемент таблицы пуст» или «Визуальный элемент таблицы не пуст». В большинстве случаев я мог бы написать меру COUNT(SUMMARIZE([Table],[Col1],[Col2])), чтобы оценить количество записей и вернуть результат.

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

Моя текущая мера:

EmptyTable = IF(COUNT(SUMMARIZE([Table1],[Col1],[Col2]...,[Col9])) = 0
, "Table has no rows", "Table contains rows")

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

Есть ли способ подсчитать строки в визуальном элементе таблицы, учитывая, как на него влияют срезы?

Пример набора данных: базовое состояние

[Slicer]     [Table Visual]
ID 1 [✓]     ID   Value
ID 2 [✓]     1    10
ID 3 [✓]     2    20
ID 4 [✓]     4    40


[Dax Measure]: "Table Visual Is Not Empty"

Пример набора данных: предпочтительное конечное состояние

[Slicer]     [Table Visual]
ID 1 [ ]      ID   Value
ID 2 [ ]     
ID 3 [✓]
ID 4 [ ]     


[Dax Measure]: "Table Visual Is Empty"

Базовое состояние:

Базовое состояние

Текущее состояние:

Текущее состояние

Показатель Table2 должен отображать «Визуальный элемент Table2 пуст».

Модель данных:

Модель данных

Я использую формулу Дакса:

Table2.Measure = IF(COUNT(Table1[Value])=0 , "Table2 visual is empty", "Table2 visual is not empty")


person PausePause    schedule 14.05.2019    source источник
comment
Будет полезно, если вы предоставите образец данных и объясните свою модель данных (таблицы и их отношения). Также было бы полезно изображение визуального элемента стола.   -  person RADO    schedule 15.05.2019
comment
Данные произвольные. Я пытаюсь найти меру, чтобы оценить, был ли визуальный элемент отфильтрован до 0 строк или нет.   -  person PausePause    schedule 15.05.2019
comment
Спасибо за размещение изображений. Этого все еще недостаточно - необходимо знать, что это за 2 таблицы, которые вы упомянули, какие отношения у них есть, какие формулы DAX вы использовали для помещения значения в таблицу и откуда берутся фильтры среза. DAX сильно зависит от базовых структур данных, и чтобы написать желаемую меру, мне нужно их знать.   -  person RADO    schedule 15.05.2019
comment
Мне очень жаль. Я не могу вам показать. Это данные HR.   -  person PausePause    schedule 15.05.2019
comment
Я не прошу видеть ваши настоящие данные. Опубликуйте изображение схемы своей модели данных, отметьте все, что не имеет отношения к делу, и покажите свои формулы DAX. Или создайте макет, который правильно представляет ситуацию.   -  person RADO    schedule 15.05.2019
comment
Это самый минимальный способ представить проблему, с которой я сталкиваюсь. Пример также игнорирует сложность, добавленную, когда визуальный элемент таблицы имеет столбцы из более чем одного источника.   -  person PausePause    schedule 15.05.2019


Ответы (1)


Измените свою меру на следующее:

Table Is Empty = 
   VAR 
     Visible_Rows_Count = COUNTROWS( VALUES(Table2[ID2]))
   RETURN
     IF(Visible_Rows_Count > 0, "Table is not empty", "Table is empty")

Результат:

введите здесь описание изображения

введите здесь описание изображения

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

DAX не видит "визуальные эффекты". Он может видеть только базовые данные и фильтры.

Визуальные эффекты существуют для вас, человека. Для DAX это только место, где Power BI публикует результаты формулы DAX. Сама формула не имеет понятия «визуальное». Он осведомлен только об исходных данных и соответствующих фильтрах (которые поступают от срезов, строк и столбцов таблицы и других визуальных элементов на странице).

Итак, когда мы говорим «таблица пуста», для вас это означает «визуализация таблицы пуста». Для DAX это означает: «после применения всех соответствующих фильтров на странице формула не возвращает записей из модели данных».

Вот почему, чтобы ответить на ваш вопрос, необходимо знать модель данных, формулы DAX и все соответствующие фильтры.

person RADO    schedule 14.05.2019