Получить МАКСИМАЛЬНОЕ количество столбцов и отображений для каждой строки

#powerbi #dax

#powerbi #dax

Вопрос:

Я пытаюсь получить максимальное количество определенного столбца в отчете Power BI и поместить это как новую меру в каждую СТРОКУ того же набора данных. Пожалуйста, смотрите пример ниже.

Пример Excel

Возможно ли это в DAX и через DirectQuery / LiveConnection? Отчет указывает на табличную модель, но из-за внешних факторов мера должна быть создана в отчете.

Спасибо

Комментарии:

1. Что вы исследовали / пробовали на данный момент?

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

3. Спасибо, M D, но вычисляемые столбцы невозможны при живом подключении к табличным моделям, отсюда и маршрут измерения.

Ответ №1:

Вы можете добиться этого несколькими способами. По сути, вам нужно переопределить контекст фильтра, чтобы функция MAX не просто выполнялась над любым фрагментом, который вы показываете в визуальном представлении. Используя CALCULATE или функцию итератора MAXX, установите параметр «Обернуть таблицу» в функции ALL(), чтобы переопределить контекст и вычислить максимальное количество по всем строкам.

 = CALCULATE(MAX([Calendar`Year]), ALL('Smithfield_Fiscal_Calendar'))
  

или

 = MAXX(ALL('Smithfield_Fiscal_Calendar'), [Calendar`Year])
  

Чтобы получить разбивку по дате, вам нужно включить таблицу дат в вашу модель. PowerBI делает это возможным с помощью нескольких различных параметров DAX. В качестве примера перейдите на вкладку вашей модели, нажмите «Новая таблица» и введите следующее выражение:

 MyCalendar = CALENDAR(DATE(2019,1,1), DATE (2019,1,10))
  

Это немного тривиально — вы хотели бы использовать полезный диапазон дат, но этот соответствует вашему примеру выше. Затем добавьте столбец в [MyCalendar]

 CalendarMonthYear = month([date]) amp; "-" amp; year([date])
  

Перейдите в свою таблицу бюджета и добавьте аналогичное поле

 BudgetMonthYear = month([date]) amp; "-" amp; year([date])
  

Перейдите в представление модели и создайте взаимосвязь между календарным месяцем и бюджетным месяцем. Это свяжет каждую дату в таблице дат с конкретной строкой бюджета из вашей бюджетной таблицы.

Надеюсь, это поможет.

Комментарии:

1. Спасибо, Райан, но это выдает значение только для даты, на которую существует бюджет, а не для каждого дня. Например, мы получаем бюджет на 2-й день каждого месяца, и мне нужно было бы видеть, как это повторяется в каждой строке для каждого дня в этом месяце.

2. Хорошо, вам понадобится таблица дат. Это довольно стандартный элемент в решениях BI, и в Интернете о них есть много информации. По сути, это новая таблица, в которой перечислены строки для каждого дня календаря и множество других параметров. Вам нужно будет добавить в таблицу бюджета поле, в котором указаны только месяц и год, и присоединить его к месяцу / году в таблице дат. Это свяжет одну строку бюджета со всеми датами в таблице дат за этот месяц. Это требует немного усилий, но это не так уж плохо и, вероятно, то, что вы будете делать часто.