计算列与测量值进行比较

时间:2018-04-27 16:16:18

标签: powerbi dax

另一个Power BI问题我已经尝试解决这个问题但无济于事。

我试图创建一个计算列来标记记录是否在今年。

我有一张计划表:

FiscalYear | ReportDate  |  Status   | 
2017       | 01/4/2018   | Open      | 
2018       |             | Open      | 
2017       |             | Closed    |
2016       | 01/10/2016  | Complete  | 
2016       | 01/8/2017   | Complete  | 

我有一个度量[当年]以2018/19作为文本返回。

我有一个日期表,其中包含每个日期,下面是选定年份的样本:

FiscalYear | FiscalYearSlash|  Date     | 
2017       | 2017/18        | ..........| 
2018       | 2018/19        | ..........| 
2017       | 2017/18        | ..........| 
2016       | 2016/17        | ..........| 
2016       | 2016/17        | ..........| 

我可以在计划表中使用以下内容返回FiscalYearSlash:

CALCULATE(VALUES(Dates[FiscalYearSlash]),
                        FILTER(Dates,
                        Dates[FiscalYear]=Planning[FiscalYear]))

但是当我把它作为IF语句中的条件时,每次都会出现错误。列和度量都是文本。有什么想法吗?

想知道它是否与上下文转换有关。我已经观看了一些SQLBI.com视频并了解它们,但是在应用它时...有点挣扎。感谢。

这是我尝试的IF声明:

IF( CALCULATE(VALUES(Dates[FiscalYearSlash]),
                        FILTER(Dates,
                        Dates[FiscalYear]=Planning[FiscalYear]))
= CurrentYear,"yes","no")

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。我将当前年份作为函数中的VAR返回,而不是采取措施:

VAR CurrentYear =  CALCULATE(VALUES(Dates[FiscalYearSlash]), 
                        FILTER(Dates,Dates[Date]=TODAY()))
RETURN
SWITCH(TRUE(),
            CALCULATE(VALUES(Dates[FiscalYearSlash]),
                        FILTER(Dates,
                        Dates[FiscalYear]=Planning[FiscalYear]))=CurrentYear,
            "Yes","No"
)