3

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

表格示例

这个想法是使用这个表的内容来创建一个具有三个选项的切片器

切片机

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

日表

选择周会导致:

周表

ETC..

我试图编写一个考虑到所选切片器元素的新度量,但它不起作用:

DayWeekMonthSelection = IF(CONTAINS(TimeSelector;TimeSelector[DayWeekMonth];"Month");
                           MONTH(VALUES('uptime_downtime'[Uptime_date])))

这只是公式的第一部分,仅测试月份选项作为开始。

关于如何做到这一点的任何想法?

4

2 回答 2

1

提供另一个视角:

我采用的方法是在数据库中有一个单独的表 - 包含有关日期的元数据,称为 date_lookup。

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

其他一些字段是 lastDateOfMonth 和 LastDateOfWeek,还有 DayOfWeek。

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

当然,您可以使用函数来获取此信息,但函数可能依赖于平台。无论如何,如果您要加入 date_lookup - 从那里获取此信息不再费力......

我们需要存储此元数据的主要原因是我们公司的财政年度是 7 月 - 6 月。因此我们需要有可用的正确 FY - 它作为字段存储在 date_lookup 表中。我在那里也有标识公共假期的字段...

于 2018-05-11T06:03:51.550 回答
0

这是一个有趣的问题,但我不确定如何完全按照您的要求做,所以我会建议一个替代方案。(根据切片器选择更改度量并不太难,但我不确定交换字段/维度的好方法。)


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

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

Month = FORMAT(uptime_downtime[Date], "mmm")
Week = WEEKNUM(uptime_downtime[Date])

现在右键单击字段上的日期,然后选择 New Hierarchy。现在应该是这样的:

新等级

现在将MonthWeek列拖到Date Hierarchy上面,然后以适当的顺序重新排列它们:

完整的层次结构

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

向上或向下钻取

获得不同的分组:

日期 星期 月

于 2018-05-09T15:54:58.677 回答