如何在DAX中串联另一个表中的多行?

时间:2018-11-15 10:11:55

标签: powerbi dax

我是Power BI的新手,我需要在新列Suppliers_List中合并给定项目的所有供应商。

我有一个表 Orders (我要在其中创建列):

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"

我知道我的列Suppliers_List的dax表达式可能处理了ConcatenateGroupBy函数,但是我不知道要获取它。

我正在考虑的解决方案是将表项目中的字段Item_Number分组,并将表供应商中的字段Supplier_Name连接起来

我不工作尝试:

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

有人可以帮忙吗?

更新

我终于找到了距离我的第一个猜测很远的地方。

见我的助手。

1 个答案:

答案 0 :(得分:0)

我终于找到了距离我的第一个猜测很远的地方。

首先,您需要在表项目中创建一个新列Supplier_Name,您将在其中将值存储在来自供应商的字段Supplier_Name中。我已经做到了:

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

现在我们在表{strong> Items 中有了Supplier_Name,我们可以通过对每种产品进行分组来计算供应商列表,并将供应商名称连接到新列Suppliers_List中。

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

您现在可以将其导入可视化元素(例如表格)中。

对社区有帮助的跳跃