【问题标题】:Calculated Column compare to measure计算列比较测量
【发布时间】:2018-05-09 16:54:48
【问题描述】:

我遇到的另一个 Power BI 问题,我试图解决但无济于事..

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

我有一个计划表:

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

我有一个度量 [Current Year],它以文本形式返回 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")

【问题讨论】:

  • 你想用IF做什么?

标签: powerbi dax


【解决方案1】:

我已经解决了这个问题。我在函数中将当前年份作为 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"
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-03
    • 1970-01-01
    • 1970-01-01
    • 2014-10-01
    相关资源
    最近更新 更多