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
同一个产品可以有多个供应商的表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
可能涉及Concatenate和GroupBy函数,但我不具备获得它的知识。
我正在考虑的解决方案是Item_Number
将表Items中的字段分组并连接Supplier_Name
表Suppliers中的字段。
我不工作的尝试:
Suppliers_list = CONCATENATE(GROUPBY('Items';Suppliers[Supplier_Name]) ; ", ")
有人可以帮忙吗?
更新
我终于找到了与我的第一个猜测相去甚远的东西。
看我的回答。
解决方案
我终于找到了与我的第一个猜测相去甚远的东西。
首先,您需要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];
", "
)
您现在可以将其导入表格等可视化元素中。
跳跃这将有助于社区
推荐阅读
- python - 为数据库创建抽象层作为 Web API 的输入
- c# - C# forms exe 检测为病毒
- python-3.x - 在 Matplotlib 中使用月份名称(例如一月)绘制时间序列并在下面显示年份
- android - 如何将通用 Gradle 脚本转换为 Gradle Kotlin DSL?
- java - 不可见时以空名称在模式中列出
- java - 如何从业务中心 (Java) 使用 Web 服务?(解决了)
- python - 使用python 3 turtle onscreenclick方法无法返回值
- linux - 如何在每次执行命令后多次运行脚本以等待设备准备好再次执行?
- c - C中的volatile关键字,是否所有变量都标记为volatile?
- node.js - Azure CDN 是否有助于提高 Microsoft bot 框架与 Twilio Adapter 一起使用的性能