【问题标题】:Dynamic Title (Card Visual) based on SelectedValue基于 SelectedValue 的动态标题(卡片视觉)
【发布时间】:2020-01-30 14:29:41
【问题描述】:

我尝试根据过滤器的 selectedValues 实现动态标题(卡片视觉效果)。

我试过这个:

Title = SWITCH( True();
SELECTEDVALUE(Daten[Contact Name]); "Aufgaben von " & SELECTEDVALUE(Daten[Contact Name]);
SELECTEDVALUE(Daten[Buchungs Datum].[Year]); "Aufgaben vom Jahr " & SELECTEDVALUE(Daten[Buchungs Datum].[Year]);
SELECTEDVALUE(Daten[Verkäufer]); "Aufgaben von Verkäufer: " & SELECTEDVALUE(Daten[Verkäufer]);
SELECTEDVALUE(Daten[Contact Name]) & SELECTEDVALUE(Daten[Buchungs Datum].[Year]); "Aufgaben von " &SELECTEDVALUE(Daten[Contact Name]) & " vom Jahr " & SELECTEDVALUE(Daten[Buchungs Datum].[Year]);
SELECTEDVALUE(Daten[Buchungs Datum].[Year]) & SELECTEDVALUE(Daten[Verkäufer]); "Aufgaben vom Jahr " & SELECTEDVALUE(Daten[Buchungs Datum].[Year]) & " vom Verkäufer: " & SELECTEDVALUE(Daten[Verkäufer])
)

我尝试捕捉应用过滤器的每种可能性。根据应用的过滤器,标题卡将动态更改。

True 不适用于 selectedvalue 类型的情况。这是有道理的,但现在我真的不知道如何得到我想要的结果。

有什么建议我可以如何以不同的方式实施这项措施?谢谢。

【问题讨论】:

    标签: switch-statement powerbi dax selectedvalue


    【解决方案1】:

    如果我没听错,您会尝试根据用户当前的选择返回一个字符串。

    "SELECTEDVALUE()" 如果只选择了一个值,则返回列值,否则返回可选的默认值。返回值是列值本身(数字/字符串/日期),无论该列包含什么,而不是严格意义上的真/假。

    为了使其正常工作,您可能需要使用“HASONEVALUE()”来返回您需要的内容

    Title = 
    SWITCH( True();
        HASONEVALUE(Daten[Contact Name]) && HASONEVALUE(Daten[Buchungs Datum].[Year]); "Aufgaben von " & SELECTEDVALUE(Daten[Contact Name]) & " vom Jahr " & SELECTEDVALUE(Daten[Buchungs Datum].[Year]);
        HASONEVALUE(Daten[Buchungs Datum].[Year]) && HASONEVALUE(Daten[Verkäufer]); "Aufgaben vom Jahr " & SELECTEDVALUE(Daten[Buchungs Datum].[Year]) & " vom Verkäufer: " & SELECTEDVALUE(Daten[Verkäufer]);
        HASONEVALUE(Daten[Contact Name]); "Aufgaben von " & SELECTEDVALUE(Daten[Contact Name]);
        HASONEVALUE(Daten[Buchungs Datum].[Year]); "Aufgaben vom Jahr " & SELECTEDVALUE(Daten[Buchungs Datum].[Year]);
        HASONEVALUE(Daten[Verkäufer]); "Aufgaben von Verkäufer: " & SELECTEDVALUE(Daten[Verkäufer])
    )
    

    此外,AND 运算符(用于最后两种情况)是“&&”,而不是“&”。

    您可以通过使用一些variables 来提高此表达式的可读性,尤其是当公式变得更长时。

    编辑:

    限制性最强的表达式必须在顶部,否则会触发限制性较小的条件。即:

    HASONEVALUE(Daten[Contact Name]) && HASONEVALUE(Daten[Buchungs Datum].[Year])
    -- since this a "subset" of the previous one, it will be true in the same moment.
    -- if it's evaluated before the other one (in the switch) then the other will never be evaluated
    HASONEVALUE(Daten[Contact Name])
    

    【讨论】:

    • 代码现在可以工作了,但还没有完成它应该做的事情。标题将在前三个案例中更改,但是当多个过滤器将被修改时,它只显示一个(例如“Aufgaben VOM JAHR XXXX”)。我是否需要添加一个语句,所以只要它没有检查所有情况,它就不会返回 true?
    • 哦,对了,你需要把限制比较多的检查放在最上面(条件有2个或以上的),否则限制少的会先匹配,其他的永远不会匹配评估。我将编辑答案中的代码
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多