【问题标题】:Powerbi Calculated Column Parameter value passing with no table relationshipPowerbi 计算列参数值传递,没有表关系
【发布时间】:2019-12-16 16:30:00
【问题描述】:

我有一个场景,需要在计算列度量中传递一个参数值,而参数表和主表之间应该没有任何关系。

以下是我创建的示例计算列。

Title = 
var related_year = Parameter[Parameter Value]
var date_closed = Roles[Date Closed]+365
var if_1 = if(Roles[Status] = "Open", date_closed,Roles[Date Closed]) 
var if_2 = if(related_year = YEAR(TODAY()),TODAY(),date(related_year,12,31))
return if((if_1>if_2),title,0)

我尝试在计算列中对参数值进行硬编码,该选项按预期工作。但是,我的期望是传递参数值,而表之间没有关系。

由于在表级别应用了过滤器,参数(Parameter[Parameter Value])值没有给出预期的结果。而且,年份表和角色表之间存在基于年份值的关系,但我不希望表之间有任何关系,只是传递参数值,因为它影响了我的逻辑

请告诉我,如何将模型中没有任何关系的参数值作为 Tableau 传递,或者让我知道 power bi 中是否有任何其他选项可以解决这种情况。


编辑:

我已将计算列复制为度量,但结果显示 0 个结果。你能帮我完成这个转换吗?

Title =
VAR related_year = Parameter[Parameter Value]
VAR date_closed = SELECTEDVALUE ( Roles[Date Closed] ) + 365
VAR if_1 =
    IF (
        SELECTEDVALUE ( Roles[Status] ) = "Open",
        date_closed,
        SELECTEDVALUE ( Roles[Date Closed] )
    )
VAR if_2 =
    IF (
        related_year = YEAR ( TODAY () ),
        TODAY (),
        DATE ( YEAR ( related_year ), 12, 31 )
    )
RETURN
    IF ( if_1 > if_2, DISTINCTCOUNT ( Roles[Job Title] ), 0 )

【问题讨论】:

  • 一些示例数据和预期结果以及您当前结果的屏幕截图会很有用。

标签: powerbi dax calculated-columns powerbi-desktop


【解决方案1】:

计算列不能动态响应视觉效果,因为它仅在加载表格时计算。

您需要使用度量来代替交互式参数。

【讨论】:

  • 实际上,我尝试传递度量而不是参数,但是由于表之间没有关系,因此无法正常工作。而且我不想在表之间建立关系,因为它会影响结果。
  • 答案是一样的。计算列在定义后即固定。您不能让它们与切片器/过滤器交互。
  • Title = var related_year = Parameter[Parameter Value] var date_closed = SELECTEDVALUE(Roles[Date Closed])+365 var if_1 = if(SELECTEDVALUE(Roles[Status]) = "Open", date_closed,SELECTEDVALUE(Roles[Date Closed])) var if_2 = if(related_year = YEAR(TODAY()),TODAY(),DATE(YEAR(related_year),12,31)) return if(if_1>if_2,DISTINCTCOUNT(Roles[Job Title]),0) 我在度量中复制了计算列,但结果显示 0 个结果。 @Alexis Olson 你能帮我转换成度量吗
  • 我使用下面的函数得到了结果,但我无法总结测量。 var related_year = VALUES(Parameter[Parameter]) var date_closed = SELECTEDVALUE(Roles[Date Closed])+365 var if_1 = if(SELECTEDVALUE(Roles[Status]) = "Open", date_closed,SELECTEDVALUE(Roles[Date Closed])) var if_2 = if(related_year = YEAR(TODAY()),TODAY(),DATE(related_year,12,31)) var result= if(if_1>if_2,countx(Roles,Roles[Job Title]),0) return result@Alexis Olson 你能帮我解决这个问题吗?
  • 请不要将扩展代码放在 cmets 中,因为它不可读。您可以改为编辑您的帖子。
猜你喜欢
  • 2017-01-13
  • 1970-01-01
  • 2012-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多