使用PowerBI桌面,我创建了一个小表(称为TimeSelector),包含三个元素:Day,Week和Month
我们的想法是使用此表的内容创建一个包含三个选项的切片器
因此,选择其中一个选项应该会改变表格中日期的使用方式。 例如,选择Day会产生下表:
选择周会导致:
等。
我尝试编写一个考虑所选切片器元素的新度量,但它不起作用:
DayWeekMonthSelection = IF(CONTAINS(TimeSelector;TimeSelector[DayWeekMonth];"Month");
MONTH(VALUES('uptime_downtime'[Uptime_date])))
这只是公式的第一部分,仅测试月份选项作为开始。
关于如何做到这一点的任何想法?
答案 0 :(得分:1)
提供另一个观点:
我采用的方法是在数据库中有一个单独的表 - 包含有关日期的元数据,称为date_lookup。
此表中的2个字段是FirstDateOfMonth& FirstDateOfWeek。
其他一些领域是lastDateOfMonth& LastDateOfWeek,也是DayOfWeek。
通过使用这些字段,我可以轻松呈现按月或周分组的视觉效果。
当然,您可以使用函数来获取此信息,但函数可能取决于平台。如果您正在加入date_lookup加入 - 它不再需要从那里获取此信息...
我们需要存储此元数据的主要原因是我们公司财务年度是7月 - 6月。因此我们需要提供正确的FY - 它存储在date_lookup表中的字段中。我也有在那里确定公众假期的领域......
答案 1 :(得分:0)
这是一个有趣的问题,但我不确定如何完全按照你的要求去做,所以我建议一个替代方案。 (根据切片器选择更改度量并不困难,但我不确定换出字段/维度的好方法。)
不是为切片器创建单独的表,而是另一种可能的方法是创建日期层次结构。通常,当您将日期列拖到行或列框中时,它会自动创建一个带有年/季/月/日的日期层次结构,但由于您需要一周而不是四分之一,所以让我们手动创建一个。
首先,为周和月创建一对计算列。例如:
Month = FORMAT(uptime_downtime[Date], "mmm")
Week = WEEKNUM(uptime_downtime[Date])
现在右键单击字段上的日期,然后选择“新建层次结构”。现在看起来应该是这样的:
现在将Month
和Week
列拖到Date Hierarchy
上,然后按适当顺序重新排列:
现在,您可以在矩阵中使用该层次结构,并使用向上钻取和向下钻取按钮
获取不同的分组: