Excel Power Pivot中多次引用contacts表获取关联名称的DAX问题
Power Pivot多关联字段获取关联表名称解决方案
方案1:用LOOKUPVALUE直接匹配
这是最直观的方式,无需依赖模型关系的活跃状态,直接通过ID字段匹配名称:
- 新增出租方名称列:
Lessor Name = LOOKUPVALUE(contacts[name], contacts[id], agreements[contact_id_lessor])
- 新增承租方名称列:
Lessee Name = LOOKUPVALUE(contacts[name], contacts[id], agreements[contact_id_lessee])
- 新增见证方名称列:
Witness Name = LOOKUPVALUE(contacts[name], contacts[id], agreements[contact_id_witness])
方案2:用USERELATIONSHIP激活指定关系
如果你想利用已建立的模型关系,可通过CALCULATE配合USERELATIONSHIP临时激活对应关联关系来取值(需确保三个关联关系已在关系图中创建):
- 出租方名称:
Lessor Name = CALCULATE(VALUES(contacts[name]), USERELATIONSHIP(agreements[contact_id_lessor], contacts[id]))
- 承租方名称:
Lessee Name = CALCULATE(VALUES(contacts[name]), USERELATIONSHIP(agreements[contact_id_lessee], contacts[id]))
- 见证方名称:
Witness Name = CALCULATE(VALUES(contacts[name]), USERELATIONSHIP(agreements[contact_id_witness], contacts[id]))
关于RELATED函数的局限
RELATED仅支持使用表之间的默认活跃关系,当单个表与另一表存在多个关联时,只有一个关系处于活跃状态,其余为非活跃状态,因此RELATED无法指定使用非活跃关系,这就是你无法直接用它获取三方名称的原因。
内容的提问来源于stack exchange,提问作者E. Barney
相关产品推荐
相关产品推荐

