Power BI / DAX 中的多个时间段比较

Multiple time periods comparison in Power BI / DAX

我对 Power BI 和 DAX 中的多年比较报告有疑问。下面table前五列是示例数据,第六列是两个需求,最后一列是第一列的plan_ID是否满足需求。我希望统计满足特定季节(例如Spring 2018)的plan_IDs的数量。

enter image description here

从最后一列可以看出,Spring 2018 年有 3 个“是”,而 Spring 2019 年有 6 个。因此,对于 Spring 2019 年,“计划数量” “今年的计划数”为 6,而“去年的计划数”为 3,如下面的 table 所示。 table 是我想要的。

enter image description here

我的问题是如何计算满足特定season/season_number如Spring2019/190的两个要求的计划。

我在这种情况下挣扎了很久。任何想法或建议将不胜感激。

如果我的理解(如评论的那样)是正确的,只需在 Power Query 编辑器table 中添加一个 自定义列 =38=]-

第 2 行中的

Changed Type 基本上是 Previous Step Name。相应地调整这个。

= Table.AddColumn(
    #"Changed Type", 
    "counter or not", 
    each 
    let 
        current_year = Date.Year(DateTime.LocalNow()),
        year_difference = current_year - [year] + 1,
        current_date = DateTime.Date(DateTime.LocalNow()),
        date_to_check_with = Date.AddYears(current_date,-(year_difference)),
        meet_req = if [plan_date] <= date_to_check_with then "Yes" else "No"
    in meet_req
)

这是最终输出-

现在您的列具有 Yes/No 值。每年计算是,回来报告并在下面创建这个 Measure-

yearly_yes_count = 
CALCULATE(
    COUNT(your_table_name[counted or not]),
    FILTER(
        ALLEXCEPT(your_table_name,your_table_name[year]),
        your_table_name[counted or not] = "Yes"
    )
)

这是去年的数字-

last_year_yes_count = 

VAR current_row_year = MIN(your_table_name[year])

RETURN
CALCULATE(
    COUNT(your_table_name[counted or not]),
    FILTER(
        ALL(your_table_name),
        your_table_name[counted or not] = "Yes"
        && your_table_name[Year] = current_row_year - 1
    )
)

现在将 Year 和新度量 yearly_yes_count 添加到 table 视觉对象中,输出将如下所示以下-

最好的方法之一是创建比较 table(与事实 table 具有非活动关系),用户将有可能选择任意两个时间周期和单一视觉将显示比较:

这里有两个完整解释这个主题的好视频:

https://www.youtube.com/watch?v=TF0lPIYjJfs

https://www.youtube.com/watch?v=knXFVf2ipro