如何从切片器上选择的年份开始在面积图中显示数据并在 Power BI 中获取所有后续年份
How to display data in area chart starting from the year chosen on a slicer and get all following years in Power BI
当在切片器上选择一个年份时,我希望面积图显示从所选年份到最后(我的数据源中的所有年份)的所有数据。
但它只是显示我在切片机上选择的一年的数据。
所以我有这个:
但我希望它看起来像这样:无论我在切片器中选择什么年份 - 图表都会显示从 2014 年开始到 2017 年的所有数据。
我只是在遵循一个 PowerBI 模板示例,似乎可以做到这一点:
我建议考虑新的数字范围切片器。
您可以将其设置为 "Greater than or equal to"。用户可以通过输入数字或拖动切片器 select 然后是范围内的初始年份。
您需要在 "Preview features" 下的“选项”中的 Power Bi Desktop 中启用此功能。
在文档中有很好的介绍https://powerbi.microsoft.com/en-us/documentation/powerbi-desktop-slicer-numeric-range/
它可能是这样的:
这是可行的,但需要一些技巧和额外措施。
TL;DR: 您看到的切片器实际上用作 value picker
,而不是过滤器。一个 extra measure based on the value
被创建并用作 visual level filter
视觉来完成这个技巧。
如果您想继续学习,可以下载 .pbix file from this Microsoft edX course about Power BI。
首先,基于现有 Date
table 创建一个新的 table
,只有不同的年份:
Year = DISTINCT('Date'[Year])
然后,使用新创建的 Year
table 中的 Year
列创建一个切片器(NOT Date
table).
如下创建度量(用作标志):
Flag =
VAR YearSelected = FIRSTNONBLANK(VALUES('Year'[Year]), 0)
RETURN
IF(VALUES('Date'[Year]) >= YearSelected, 1, 0)
所以基本上它从年份切片器中获取年份并将其与日期 table 中的年份值进行比较以查看它是否大于或等于它。
图表是使用 Date
table 中的 Year
列创建的(NOT Year
table),以及其他必要的措施。 Flag
添加到 Visual level filters
并设置为 1。
因此 Flag
值将根据在年份切片器中选择的值而变化,并用作显示图表的实际过滤器。
结果:
编辑: 更多用例
@Oleg 尝试思考如何进一步应用 Flag
概念。例如,如果你想要另一个图表显示与切片器相同年份的数据,你可以设置另一个标志名为SameYearFlag
,并且只将值比较的部分更改为=
。将它添加到图表 Visual level filter
,它将只显示同一年的数据。是的,推而广之,这意味着您可以使用其他标志,例如 LastYearFlag
、NextYearFlag
等,只要它对您有意义即可。用例由您决定。
LastYearFlag =
VAR YearSelected = FIRSTNONBLANK(VALUES('Year'[Year]), 0)
RETURN
IF(YearSelected - VALUES('Date'[Year]) = 1, 1, 0)
NextYearFlag =
VAR YearSelected = FIRSTNONBLANK(VALUES('Year'[Year]), 0)
RETURN
IF(VALUES('Date'[Year]) - YearSelected = 1, 1, 0)
SameYearFlag =
VAR YearSelected = FIRSTNONBLANK(VALUES('Year'[Year]), 0)
RETURN
IF(VALUES('Date'[Year]) = YearSelected, 1, 0)
示例:
通过只有一年的切片器,我可以通过对图表应用不同的标志来获得包含同一年、去年、明年和以后所有年份的数据的图表。
如前所述,由您来想出更多有趣的用例!
当在切片器上选择一个年份时,我希望面积图显示从所选年份到最后(我的数据源中的所有年份)的所有数据。 但它只是显示我在切片机上选择的一年的数据。 所以我有这个:
但我希望它看起来像这样:无论我在切片器中选择什么年份 - 图表都会显示从 2014 年开始到 2017 年的所有数据。
我只是在遵循一个 PowerBI 模板示例,似乎可以做到这一点:
我建议考虑新的数字范围切片器。 您可以将其设置为 "Greater than or equal to"。用户可以通过输入数字或拖动切片器 select 然后是范围内的初始年份。
您需要在 "Preview features" 下的“选项”中的 Power Bi Desktop 中启用此功能。
在文档中有很好的介绍https://powerbi.microsoft.com/en-us/documentation/powerbi-desktop-slicer-numeric-range/
它可能是这样的:
这是可行的,但需要一些技巧和额外措施。
TL;DR: 您看到的切片器实际上用作 value picker
,而不是过滤器。一个 extra measure based on the value
被创建并用作 visual level filter
视觉来完成这个技巧。
如果您想继续学习,可以下载 .pbix file from this Microsoft edX course about Power BI。
首先,基于现有 Date
table 创建一个新的 table
,只有不同的年份:
Year = DISTINCT('Date'[Year])
然后,使用新创建的 Year
table 中的 Year
列创建一个切片器(NOT Date
table).
如下创建度量(用作标志):
Flag =
VAR YearSelected = FIRSTNONBLANK(VALUES('Year'[Year]), 0)
RETURN
IF(VALUES('Date'[Year]) >= YearSelected, 1, 0)
所以基本上它从年份切片器中获取年份并将其与日期 table 中的年份值进行比较以查看它是否大于或等于它。
图表是使用 Date
table 中的 Year
列创建的(NOT Year
table),以及其他必要的措施。 Flag
添加到 Visual level filters
并设置为 1。
因此 Flag
值将根据在年份切片器中选择的值而变化,并用作显示图表的实际过滤器。
结果:
编辑: 更多用例
@Oleg 尝试思考如何进一步应用 Flag
概念。例如,如果你想要另一个图表显示与切片器相同年份的数据,你可以设置另一个标志名为SameYearFlag
,并且只将值比较的部分更改为=
。将它添加到图表 Visual level filter
,它将只显示同一年的数据。是的,推而广之,这意味着您可以使用其他标志,例如 LastYearFlag
、NextYearFlag
等,只要它对您有意义即可。用例由您决定。
LastYearFlag =
VAR YearSelected = FIRSTNONBLANK(VALUES('Year'[Year]), 0)
RETURN
IF(YearSelected - VALUES('Date'[Year]) = 1, 1, 0)
NextYearFlag =
VAR YearSelected = FIRSTNONBLANK(VALUES('Year'[Year]), 0)
RETURN
IF(VALUES('Date'[Year]) - YearSelected = 1, 1, 0)
SameYearFlag =
VAR YearSelected = FIRSTNONBLANK(VALUES('Year'[Year]), 0)
RETURN
IF(VALUES('Date'[Year]) = YearSelected, 1, 0)
示例:
通过只有一年的切片器,我可以通过对图表应用不同的标志来获得包含同一年、去年、明年和以后所有年份的数据的图表。
如前所述,由您来想出更多有趣的用例!