Power BI: настраиваемая колонка для клиента и года - PullRequest
0 голосов
/ 23 мая 2018

Я хочу создать таблицу в редакторе запросов (QE), в которой будет указан мой номер клиента, год, сумма и пользовательский столбец, указывающий, является ли сумма пустой за последние 3 года.

Я пробовал несколько решений, но ни одно из них не работает.Мне нужно это в редакторе запросов.Я не могу использовать меру для этого.

Может кто-нибудь помочь мне с этим?если кому-то из вас понадобится дополнительная информация, просто дайте мне знать, и я посмотрю, что я могу сделать.

например, каким должен быть мой результат: Clientnumber Year Amount Custom table 1 2016 2100 FALSE 1 2017 2000 FALSE 1 2018 100 TRUE<br> 2 2016 0 FALSE 2 2017 100 FALSE 2 2018 3800 FALSE 2 2019 2357 TRUE

Я надеюсь, что этот пример поможетбит!

Ответы [ 3 ]

0 голосов
/ 24 мая 2018

Потребовалась минута, чтобы понять, что вы имели в виду, но я исхожу из того, что вы ищете, есть ли сумма в том году записи, которую вы просматриваете, а также в каждом из предыдущих двух лет.

Я также работаю в предположении, что эти данные уже агрегированы, поэтому на одного клиента в год приходится только одна сумма (вы можете легко агрегировать это в PQ, если это еще не так).

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

let CurClient = _[Clientnumber], CurYear = _[Year] in Table.RowCount(Table.SelectRows(Source, each [Clientnumber] = CurClient and [Year] >= CurYear-2 and [Year] <= CurYear and [Amount] <> 0)) >= 3
0 голосов
/ 25 мая 2018

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

Создайте пару пользовательских столбцов, в которых указаны год - 1 и год - 2, чтобы получить последние два года.Теперь используйте функцию Merge Queries и объедините таблицу с самим собой.Cntrl-Select the Client, затем столбец, который вы создали для Year - 1 в верхней таблице, и Cntrl-Select the Client, а затем столбец для текущего года в нижней таблице.Расширьте сумму из результата, но назовите ее сумма предыдущего года или что-то еще.Сделайте то же самое для столбца года -2.

enter image description here

Затем просто добавьте пользовательский столбец, который проверяет 0 или нули в трехлетних суммах, и у вас есть ответ.

enter image description here

Вот как выглядела финальная таблица и полный M-код (очевидно, вы можете просто удалить столбцы с ссылками на предыдущий год / amt, когда закончите).

enter image description here

let
    Source = Table1,
    #"Merged Queries" = Table.NestedJoin(Source,{"Client", "Year"},Source,{"Client", "Year"},"Source",JoinKind.LeftOuter),
    #"Removed Columns" = Table.RemoveColumns(#"Merged Queries",{"Source"}),
    #"Added Custom" = Table.AddColumn(#"Removed Columns", "PY", each [Year]-1),
    #"Added Custom1" = Table.AddColumn(#"Added Custom", "PPY", each [Year]-2),
    #"Merged Queries1" = Table.NestedJoin(#"Added Custom1",{"Client", "PY"},#"Added Custom1",{"Client", "Year"},"Added Custom1",JoinKind.LeftOuter),
    #"Expanded Added Custom1" = Table.ExpandTableColumn(#"Merged Queries1", "Added Custom1", {"Amt"}, {"PY.Amt"}),
    #"Merged Queries2" = Table.NestedJoin(#"Expanded Added Custom1",{"Client", "PPY"},#"Expanded Added Custom1",{"Client", "Year"},"Expanded Added Custom1",JoinKind.LeftOuter),
    #"Expanded Expanded Added Custom1" = Table.ExpandTableColumn(#"Merged Queries2", "Expanded Added Custom1", {"Amt"}, {"PPY.Amt"}),
    #"Added Custom2" = Table.AddColumn(#"Expanded Expanded Added Custom1", "ThreeYearCheck", each not List.ContainsAny({[Amt],[PY.Amt],[PPY.Amt]}, {null, 0})),
    #"Sorted Rows" = Table.Sort(#"Added Custom2",{{"Client", Order.Ascending}, {"Year", Order.Ascending}})
in
    #"Sorted Rows"
0 голосов
/ 23 мая 2018

DAX - это то, что вы ищете для .

используйте выражения анализа данных (DAX) для решения рядаосновные задачи расчета и анализа данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...