如何在DAX中连接其他表中的多行

  • 本文关键字:其他 连接 DAX 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"

我试图在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"

我知道我的列Suppliers_List的dax表达式可能涉及Concatenate和GroupBy函数,但我不知道该表达式

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

我的不工作尝试:

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

有人能帮忙吗?

更新

我终于发现了一些与我最初的猜测相去甚远的东西。

看看我的anwser。

我终于发现了一些与最初猜测相去甚远的东西。

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

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

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

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

现在,您可以在可视化元素(如表(中导入它。

希望这将有助于社区

最新更新