首页 文章

PowerBI获取错误已使用'CALCULATE'函数

提问于
浏览
0

我想显示卡片值:

  • 如果当前月份值不可用,则应自动与上个月的值进行比较 .

喜欢

enter image description here

在上面的图像中,2017年4月的 Value 不可用,那么它应该与2017年3月的 Value 进行比较 .

如果2017年3月的 Value 也没有,那么前一个月的 Value . 保持开始 . 还有一件事是我不想再使用切片机了 . 其实我不打算使用切片机 .

我只是想在卡片视觉效果中显示月份比较值 .

我想提供一下我有哪些数据的信息 . 我有表的计划rev,实际转速和MonthYear

我使用MonthYear表中的Date列创建了一个关系,以计划rev和实际rev Date列 .

MonthYear表

enter image description here

并且在计划转速,月份,计划转速,日期和实际转速实际转速,月份和日期列 .

然后书面措施

For Sumof Plan rev-->
 PlanSum = SUM('Revenue Report'[Planned Rev])
   For Prev month value-->
 PlanPrevMon = CALCULATE([PlanSum],PREVIOUSMONTH('Month Year'[Date]))

对于月份的开始和结束日期

FILTERDATESTART= FIRSTDATE('MonthYear'[Date])
FILTERDATEEND= LASTDATE('MonthYear'[Date])

那么本月PlanArrows的衡量标准是 .

PlanArrows = CALCULATE(
    IF(
        ISBLANK([PlanSum]),"No data Available",[PlanSum]
    )& " "& IF(
        [PlanSum]=[PlanPrevMon],
        "",
        IF([PlanSum]>[PlanPrevMon],
            UNICHAR(8679),
            UNICHAR(8681)
        ) & IF([PlanSum]<=0,
        "",""
        )
    ),
    'Month Year'[Date]>=FILTERDATESTART, 
        'Month Year'[Date]<=FILTERDATEEND
)

但它没有用 . 我收到一个错误:

函数'CALCULATE'已用于True / False表达式,该表达式用作表过滤器表达式 . 这是不允许的 .

请提出任何建议,

谢谢

莫汉五世

1 回答

  • 0

    我想我自己得到了解决方案 . 我写了解决这个问题的措施 .

    PlanArrows =
    VAR s = [FILTERDATESTART]
    VAR e = [FILTERDATEEND]
    RETURN
        CALCULATE (
            IF ( ISBLANK ( [PlanSum] ), "No data Available", [PlanSum] ) & " "
                & IF (
                    [PlanSum] = [PlanPrevMon],
                    "",
                    IF ( [PlanSum] > [PlanPrevMon], UNICHAR(8679), UNICHAR(8681) )
                        & IF ( [PlanSum] <= 0, "", "" )
                ),
            'Month Year'[Date] >= s
                && 'Month Year'[Date] <= e
        )
    

相关问题