Как объединить несколько строк из другой таблицы в DAX? - PullRequest
0 голосов
/ 15 ноября 2018

Я новичок в Power BI и мне нужно объединить в новом столбце Suppliers_List всех поставщиков для данного элемента.

У меня есть таблица Заказы , где мне нужно создать столбец:

Order_Number Customer_ID Item_Number
0001         1           1
0002         2           1
0003         1           3
0004         1           4
0005         3           2
0006         3           2
0007         4           2

Таблица Элементы , где один и тот же продукт может иметь несколько поставщиков:

Unique_ID Item_Number Supplier_ID Item_Name
1         1           1           "wheel"
2         1           2           "wheel"
3         2           1           "door"
4         2           2           "door"
5         3           1           "motor"
6         3           3           "motor"
7         4           4           "dashboard"

И стол Поставщики :

Supplier_ID Supplier_Name
1           "Metal&co"
2           "SmithSE"
3           "BetterMotors"
4           "TinyCircuits"

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

Order_Number Customer_ID Item_Number Suppliers_List
0001         1           1           "Metal&co, SmithSE"
0002         2           1           "Metal&co, SmithSE"
0003         1           3           "Metal&co, BetterMotors"
0004         1           4           "TinyCircuits"
0005         3           2           "Metal&co, SmithSE"
0006         3           2           "Metal&co, SmithSE"
0007         4           2           "Metal&co, SmithSE"

Я знаю, что выражение dax для моего столбца Suppliers_List, вероятно, имеет дело с Concatenate и GroupBy функциями, но у меня нет знаний, чтобы его получить.

Решение, о котором я думаю, - это сгруппировать поле Item_Number из таблицы Items и объединить поле Supplier_Name из таблицы Suppliers .

моя не работает попробуйте:

Suppliers_list = CONCATENATE(GROUPBY('Items';Suppliers[Supplier_Name]) ; ", ")

Может кто-нибудь помочь?

UPDATE

Наконец-то я нашел что-то далекое от своего первого предположения.

Смотрите мой ответ.

1 Ответ

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

Наконец-то я нашел что-то далекое от моего первого предположения.

Сначала вам нужно создать новый столбец Supplier_Name в таблице Items , где вы будете хранить значение в полеSupplier_Name из Поставщики .Я добился этого примерно так:

Supplier_Name = CONCATENATEX (
    FILTER ( Suppliers; Items[Supplier_ID] = Suppliers[Supplier_ID] );
    Suppliers[Supplier_Name];
    ""
)

Теперь, когда у нас есть Supplier_Name в нашей таблице Позиции , мы можем вычислить список поставщиков, сгруппировав каждый продукт и объединив поставщика.имя в новом столбце Suppliers_List.

Suppliers_List = CONCATENATEX (
    FILTER ( Items; Items[Item_Number] = EARLIER ( Items[Item_Number] ) );
    Items[Supplier_Name];
    ", "
)

Теперь вы можете импортировать его в элемент визуализации, например в таблицу.

Прыжки, которые помогут сообществу

...