DAX(PowerBI)如何从customerParent表Parent列取"000000"值
DAX筛选customerParent表Parent列固定值的实现方法
需求说明
Power BI DAX开发场景下,customerParent表存在文本类型的Parent列,需要筛选返回该列值为"000000"的结果。
目标逻辑参考:
if CustomerParent[Parent] = "000000" return CustomerParent[Parent]
等价SQL逻辑:
SELECT Parent FROM CustomerParent WHERE Parent = '000000';
操作参考截图:
对应场景的正确DAX写法
之前写法不生效基本是没匹配DAX的上下文规则,根据实际使用场景选对应写法即可:
- 新建计算列,逐行匹配,符合条件返回列值、不符合返回空:
MatchedParent = IF( customerParent[Parent] = "000000", customerParent[Parent], BLANK() )
- 生成仅包含符合条件记录的新表/表变量:
FilteredCustomerParent = FILTER( customerParent, customerParent[Parent] = "000000" )
- 作为度量值,在当前筛选上下文下取匹配的目标值:
GetTargetParent = CALCULATE( SELECTEDVALUE(customerParent[Parent]), customerParent[Parent] = "000000" )
注意:DAX的列引用必须依附明确的行上下文/筛选上下文,直接裸写列等值判断、不放在FILTER/CALCULATE/带行上下文的计算列逻辑里,会触发上下文缺失的报错,拿不到正确结果。
内容的提问来源于stack exchange,提问作者Red
相关产品推荐
相关产品推荐

