Найти и пометить элементы с заданным составом в Power BI - PullRequest
0 голосов
/ 11 марта 2019

У меня есть пара миллионов строк данных, указанных ниже.

CUSTOMER_NO     SERVICE
11111111        AB
11111111        BC
11111111        XY
11111111        SA
55555555        AB
55555555        BC
55555555        SA
55555555        HG
77777777        WE
77777777        LK
77777777        AS
77777777        GG
22222222        AB
22222222        BC
22222222        SA
99999999        WE
99999999        AS
99999999        GG

Мы решили отметить наших клиентов, которые пользуются некоторыми из наших услуг, как Gold Group или Silver Group.

Мне нужно обобщить их следующим образом.

CUSTOMER_NO SERVICE     **MARKER**
11111111    AB      SILVER +XY
11111111    BC      SILVER +XY
11111111    XY      SILVER +XY
11111111    SA      SILVER +XY
55555555    AB      SILVER +HG
55555555    BC      SILVER +HG
55555555    SA      SILVER +HG
55555555    HG      SILVER +HG
77777777    WE      GOLD + LK
77777777    LK      GOLD + LK
77777777    AS      GOLD + LK
77777777    GG      GOLD + LK
22222222    AB      SILVER
22222222    BC      SILVER
22222222    SA      SILVER
99999999    WE      GOLD
99999999    AS      GOLD
99999999    GG      GOLD

Состав серебра, золота и т. Д. Такой, как показано ниже.

GOLD    WE
GOLD    AS
GOLD    GG
SILVER  AB
SILVER  BC
SILVER  SA

Из-за огромного размера,мне трудно сделать это в Excel, также будучи новичком в Power Bi, я борюсь с сеткой.

Не могли бы вы помочь мне осуществить это в Power BI?

Ответы [ 2 ]

0 голосов
/ 11 марта 2019

Попробуйте следующий код (Данные - первая таблица из вашего поста, Маркеры - последняя). Обратите внимание: если, например, Service = XY появляется перед другими, то для Customer = 11111111 маркер заполняется как XY + SILVER , а не SILVER + XY.

let
    group = Table.Group(Data, {"CUSTOMER_NO"}, {"MARKER", each _[SERVICE]}),
    transform = Table.TransformColumns(group, {"MARKER", each Text.Combine(
                List.Distinct(List.Transform(_, each try Markers{[SERVICE = _]}[MARKER] otherwise _)),
                " + ")}),
    join = Table.Join(Data,{"CUSTOMER_NO"},transform,{"CUSTOMER_NO"})
in
    join

enter image description here

0 голосов
/ 11 марта 2019

Загрузите обе таблицы в Power BI и используйте значок отношения, чтобы соединить поля обслуживания таблицы клиента и справочную таблицу. Это позволит построить таблицу, дающую вам все три строки

...