Powerbi 根据切片器选择更改列值

Powerbi 根据切片器选择更改列值,powerbi,dax,powerbi-desktop,Powerbi,Dax,Powerbi Desktop,使用PowerBI桌面,我创建了一个小表(称为TimeSelector),包含三个元素:天、周和月 其思想是使用此表的内容创建一个具有三个选项的切片器 因此,选择其中一个选项应该会改变表中使用日期的方式。 例如,选择日期将导致下表: 选择“周”将导致以下情况: 等等 我尝试在考虑所选切片器元素的情况下编写新的度量值,但它不起作用: DayWeekMonthSelection = IF(CONTAINS(TimeSelector;TimeSelector[DayWeekMonth];"Mo

使用PowerBI桌面,我创建了一个小表(称为TimeSelector),包含三个元素:天、周和月

其思想是使用此表的内容创建一个具有三个选项的切片器

因此,选择其中一个选项应该会改变表中使用日期的方式。 例如,选择日期将导致下表:

选择“周”将导致以下情况:

等等

我尝试在考虑所选切片器元素的情况下编写新的度量值,但它不起作用:

DayWeekMonthSelection = IF(CONTAINS(TimeSelector;TimeSelector[DayWeekMonth];"Month");
                           MONTH(VALUES('uptime_downtime'[Uptime_date])))
这只是公式的第一部分,只是从测试月份选项开始


你知道怎么做吗?

这是一个很有趣的问题,但我不确定你到底想做什么,所以我会建议一个替代方案。(根据切片器选择更改度量值并不太困难,但我不确定是否有好的方法来交换字段/维度。)


与为切片器创建单独的表不同,另一种可能的方法是创建日期层次结构。通常,当您将日期列拖动到“行”或“列”框中时,它会自动创建一个带有年/季度/月/日期的日期层次结构,但由于您想要的是周而不是季度,所以让我们手动创建一个

首先,为周和月创建两个计算列。例如:

Month = FORMAT(uptime_downtime[Date], "mmm")
Week = WEEKNUM(uptime_downtime[Date])
现在右键单击字段上的日期,然后选择“新建层次结构”。现在应该是这样的:

现在将
列拖到
日期层次结构
上,然后按适当的顺序重新排列:

现在,您可以在矩阵中使用该层次结构,并使用“向上钻取”和“向下钻取”按钮

要获得不同的分组:


要提供另一个视角:

我采用的方法是在数据库中有一个单独的表,其中包含关于日期的元数据,称为date\u lookup

此表中的2个字段是FirstDateOfMonth和FirstDateOfWeek

其他一些字段是lastDateOfMonth和LastDateOfWeek,也就是DayOfWeek

通过使用这些字段,我可以轻松地呈现按月或按周分组的视觉效果

当然,您可以使用函数来获取此信息,但函数可能依赖于平台。如果您正在加入日期查找-无需再从那里获取此信息


我们需要存储此元数据的主要原因是我们公司的财政年度为7月至6月。因此,我们需要提供正确的FY,该FY存储为日期查找表中的一个字段。我在那里还有标识公共假日的字段…

你好,亚历克西斯,谢谢你的回答。这很有效,但对最终用户来说并不直观。此外,仪表板上没有向下钻取功能,只有报表可用。切换单独表可见性的书签可能比执行DAX解决方案更好。