Как я могу выбрать значение n-й строки в столбце в Powerbi? - PullRequest
0 голосов
/ 28 октября 2019

Я довольно новичок в PowerBi,

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

table

Я пробовал это, но не знаю достаточно DAX, чтобы знать, как идти дальше. Я могу выбрать 1 верхнее значение, но если изменить N на 3, это не сработает. Даже если бы я мог выбрать второе значение вместо первого, это помогло бы. Какой-то индекс строки или число в виде массива.

row [1] [name]

LowestSpenders = 
    "The lowest spenders for the day are " 
    & 
    CALCULATE(
        VALUES(Top3Low[Name]), 
        TOPN(1, Top3Low, Top3Low[Spent], DESC)
    )

Я также пробовал это

LowestSpenders = 
    "The lowest spenders for the day are " 
    & 
    CONCATENATEX(
       Top3Lost,
       VALUES(Top3Lost[ClientName]), 
       ",", 
       Top3Lost[LastYear], 
       DESC
   )

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

Примерно так.

"Самые низкие расходы за день: Боб,Джон и Марк "

Ответы [ 2 ]

1 голос
/ 28 октября 2019

Как насчет этого? Ранжируйте все имена и затем выбирайте любые ранги, которые вы хотите.

LowestSpenders =
VAR Summary =
    SUMMARIZE (
        Top3Low,
        Top3Low[Name],
        "Rank", RANK.EQ ( Top3Low[Spent], Top3Low[Spent], 1 )
    )
RETURN
    CONCATENATEX (
        FILTER ( Summary, [Rank] IN { 1, 2, 3 } ),
        [Name],
        ", "
    )

Вместо [Rank] IN { 1, 2, 3 }, вы можете заменить любой критерий, который вы хотите, например, [Rank] = 2 или [Rank] > 2 && [Rank] < 5.

1 голос
/ 28 октября 2019

Вы почти у цели.

Используйте TOPN, чтобы определить наименьшее n трат, и используйте CONCATENATEX, чтобы перебрать эту таблицу и объединить имена:

LowestSpenders = 
    CONCATENATEX ( 
        TOPN ( 
            3,
            MyTable,
            MyTable[Spent],
            ASC
        ),
        MyTable[Name],
        ", "
    )
...