Найти Макса на каждый день в PowerBI и DAX - PullRequest
0 голосов
/ 25 июня 2018

Я пытаюсь найти максимальный маршрут на каждый день на основе количества автомобилей в PowerBI / DAX. Пример моих данных выглядит следующим образом:

 Date         Route      Count
 01-Nov-17     A           10
 01-Nov-17     B           5
 02-Nov-17     A           2
 02-Nov-17     C           22
 03-Nov-17     B           2

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

 Date         Route      Count
 01-Nov-17     A           10
 02-Nov-17     C           22
 03-Nov-17     B           2

Любые предложения будут очень признательны.

Спасибо, Фиона

Ответы [ 3 ]

0 голосов
/ 25 июня 2018

Сначала определите меру для максимального количества автомобилей:

[Max Count] = MAX( Cars[Count] ) 

Если вы уроните эту меру в единое целое с датами, она покажет вам максимальное число автомобилей на дату.

Определить вторую меру:

[Max Routes] =
VAR Period_Max_Count = [Max Count]
RETURN
    CONCATENATEX (
        FILTER ( Cars, [Max Count] = Period_Max_Count ),
        Cars[Route], ","
    )

Эта мера будет возвращать строку маршрутов за дату с максимальным количеством.Вам нужен список вместо одного значения из-за потенциальных связей - у нескольких маршрутов может быть одинаковое максимальное количество за период.Это не в вашем примере данных, но просто чтобы продемонстрировать это, я добавил дополнительную запись для первой даты:

enter image description here

Как работает эта мера:Во-первых, в переменную сохраняется максимальное количество автомобилей на дату.во-вторых, он фильтрует таблицу автомобилей, чтобы выбрать только те маршруты, число которых равно максимальному количеству на дату.в-третьих, он перебирает отфильтрованную таблицу и объединяет имена маршрутов в список, разделенный запятой.

0 голосов
/ 04 декабря 2018
  1. Щелкните правой кнопкой мыши по таблице, выберите New quick measure
  2. В Calculation раскрывающийся список Max per category
  3. В поле Base value перетащите столбец Count. При этом значение будет агрегировано до Sum по умолчанию, поэтому вместо этого измените его на Max of Count
  4. В поле Category перетащите столбец route

Вуаля! Волшебство случается! Мера, которая создается при построении на оси Route, даст Max(Count) на маршрут. Вот как будет выглядеть DAX:

Count max per route = 
MAXX(
    KEEPFILTERS(VALUES('Table1'[route])),
    CALCULATE(MAX('Table1'[Count]))
)

(так что можно напрямую использовать этот DAX без необходимости перетаскивания, но я не понимаю DAX в данный момент)

Удачный отзыв для меня: https://docs.microsoft.com/en-us/power-bi/desktop-quick-measures

0 голосов
/ 25 июня 2018

Создать вычисляемый столбец с формулой:

MAX = IF(CALCULATE(
        MAX(Table1[Count]);
        FILTER(
            Table1;
            Table1[Date] = EARLIER(Table1[Date])
        )
    ) = Table1[Count]; Table1[Route]; BLANK())

Создайте свою таблицу и создайте фильтр на уровне страницы, чтобы отобразить все непустые значения таблицы1 [МАКС.].

...