如何用DAX度量值关联PowerBI中无关系的两个表?
解决方案:用DAX度量值实现无关系表的关联展示
由于两张表未建立模型关系,我们可以通过基于Opportunity_ID匹配的DAX度量值实现双向关联数据展示,具体实现如下:
1. 从Event表关联获取Opportunity信息的度量值
当表格视觉对象中先添加Event相关列(如Event_ID、Opportunity_ID、Event_Name等)时,使用以下度量值拉取对应机会的信息:
获取机会名称
Opportunity Name = VAR CurrentOppID = SELECTEDVALUE(Event[Opportunity_ID]) RETURN LOOKUPVALUE(Opportunity[Opportunity_Name], Opportunity[Opportunity_ID], CurrentOppID)
获取机会状态
Opportunity Status = VAR CurrentOppID = SELECTEDVALUE(Event[Opportunity_ID]) RETURN LOOKUPVALUE(Opportunity[Opportunity_Status], Opportunity[Opportunity_ID], CurrentOppID)
2. 从Opportunity表关联获取Event信息的度量值
当表格视觉对象中先添加Opportunity相关列(如Opportunity_ID、Opportunity_Name等)时,使用以下度量值拉取对应事件的信息(针对一个机会对应多个事件的场景,采用聚合方式展示):
获取关联事件名称(多事件用逗号分隔)
Event Names = VAR CurrentOppID = SELECTEDVALUE(Opportunity[Opportunity_ID]) RETURN CONCATENATEX(FILTER(Event, Event[Opportunity_ID] = CurrentOppID), Event[Event_Name], ", ")
获取最新事件日期
Latest Event Date = VAR CurrentOppID = SELECTEDVALUE(Opportunity[Opportunity_ID]) RETURN MAXX(FILTER(Event, Event[Opportunity_ID] = CurrentOppID), Event[Event_Date])
使用说明
- 创建完上述度量值后,在表格视觉对象中:
- 若先添加Event表的列,再添加
Opportunity Name、Opportunity Status度量值,即可看到每个事件对应的机会信息; - 若先添加Opportunity表的列,再添加
Event Names、Latest Event Date度量值,即可看到每个机会对应的事件汇总信息;
- 若先添加Event表的列,再添加
- 注意:如果存在一个
Opportunity_ID对应多个事件的场景,直接使用LOOKUPVALUE会返回错误,因此需要用CONCATENATEX、MAXX这类聚合函数处理多值情况。
内容的提问来源于stack exchange,提问作者SniperPro
相关产品推荐
相关产品推荐

