首页 > 解决方案 > 如何连接 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

同一个产品可以有多个供应商的表Items :

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"

我试图在存储供应商名称的表Orders中获得以下结果,用逗号分隔:

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可能涉及ConcatenateGroupBy函数,但我不具备获得它的知识。

我正在考虑的解决方案是Item_Number将表Items中的字段分组并连接Supplier_NameSuppliers中的字段。

我不工作的尝试:

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

有人可以帮忙吗?

更新

我终于找到了与我的第一个猜测相去甚远的东西。

看我的回答。

标签: powerbidax

解决方案


我终于找到了与我的第一个猜测相去甚远的东西。

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

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

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

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

您现在可以将其导入表格等可视化元素中。

跳跃这将有助于社区


推荐阅读