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 具有非活动关系),用户将有可能选择任意两个时间周期和单一视觉将显示比较:
这里有两个完整解释这个主题的好视频:
我对 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 具有非活动关系),用户将有可能选择任意两个时间周期和单一视觉将显示比较:
这里有两个完整解释这个主题的好视频: