Значение PowerBI IF в значениях TOPN затем TRUE - PullRequest
0 голосов
/ 16 ноября 2018

Я уверен, что мне здесь не хватает чего-то простого. Но мне не повезло.

Что я хотел бы сделать, так это создать новый столбец TRUE / FALSE, основанный на значении в столбце, который находится в верхних 2 результатах того же столбца.

Этот фрагмент в настоящее время работает для "Max Value"

isCurrent =
IF (
    'Program'[MajorVersion] = MAXX ( 'Program', 'Program'[MajorVersion] ),
    TRUE (),
    FALSE ()
)

Что бы я предпочел работать, это не просто значение MAXX, а 2 верхних значения в этом столбце. Поэтому я использую функцию TOPN ниже. К сожалению, это не работает.

isCurrent =
IF (
    'Program'[MajorVersion]
        IN TOPN (
            2,
            FILTER ( 'Program', 'Program'[MajorVersion] ),
            'Program'[MajorVersion], DESC
        ),
    TRUE (),
    FALSE ()
)

Пример таблицы:

ID  MajorVersion
1       18.4
2       18.4
3       18.5
4       18.2
5       18.6
6       18.6
7       18.4
8       18.4
9       18.6
10      18.6

Желаемый результат: (так как верхние 2 значения в MajorVersion будут 18,5 и 18,6)

ID  MajorVersion  isCurrent
1       18.4       FALSE
2       18.4       FALSE
3       18.5       TRUE
4       18.2       FALSE
5       18.6       TRUE
6       18.6       TRUE
7       18.4       FALSE
8       18.4       FALSE
9       18.6       TRUE
10      18.6       TRUE

1 Ответ

0 голосов
/ 16 ноября 2018

Есть несколько проблем с тем, как вы пытаетесь это сделать.

Сначала TOPN возвращает верхние N строки, а не верхние N значения в столбце.

Во-вторых, TOPN возвращает полные строки, а не только один столбец.

Чтобы исправить оба из них, вы можете сделать TOPN на VALUES(Program[MajorVersion]):

isCurrent =
Program[MajorVersion] IN
    TOPN(2,
        VALUES(Program[MajorVersion]),
        Program[MajorVersion],
        DESC
    )

Это уже возвращает True или False без необходимости IF.

...