9

在 Excel 2013 中使用 PowerQuery 为 PowerPivot 模型构建日历表时,我使用其Date.QuarterOfYear函数来获取季度数。

在 SSAS 表格中构建相同的东西需要一些变通方法。没有等效的 DAX 函数可以从 DATE 获取季度数。奇怪的是,DAX 有 YEAR() 和 MONTH(),但没有 QUARTER()。

嵌套IFSWITCH语句真的是 DAX 中获取季度数的唯一方法吗?

缺少这么简单实用的功能的原因是什么?我是否忽略了这个决定的至高无上的智慧?

4

7 回答 7

13

我在这本好书里找到了答案!

一个应该=ROUNDUP(MONTH([Date])/3, 0)用来获得季度数。

于 2015-09-15T12:49:03.660 回答
7

DAX 中没有 QUARTER()?

对,那是正确的。

真的吗?

是的,这很疯狂,没有任何意义。幸运的是,解决方法只是将月份除以 3。

解决方案:

VAR quarterNumber = CEILING(MONTH([Date])/3,1)

替代解决方案:

由于 DAX 有多种舍入数字的方法,因此这些方法也可以:

VAR quarterNumber = ISO.CEILING(MONTH([Date])/3,1)
VAR quarterNumber = ROUNDUP(MONTH([Date])/3,0)

哪种解决方案最好:

  • 对于我的示例中使用的值,结果将是相同的。
  • 对于其他示例,根据标准或所使用的 CPU 类型,结果可能存在细微差别。
  • ROUNDUP 对于 Excel 人员来说可能更直观。
  • CEILING 对数学人来说可能更直观。
  • ISO.CEILING 在代码中看起来很难看,个人意见。
于 2017-05-10T03:54:44.390 回答
4

它没有记录,但这有效:

INT(格式([日期],“q”))

于 2016-11-22T10:03:39.023 回答
3

DAX 现在有宿舍了!这是一些日期数据: 日期

这些是您获得季度和季度数字的方式: 日期宿舍 日期季度数字

这些结果如下:

日期四分之一切片机

于 2018-05-08T01:53:10.673 回答
0

你也可以使用这个命令:

=FORMAT(Date[Date],"q")

并将它们结合起来创造出这样的东西

="Q." & FORMAT(Date[Date],"q") & " - "&Date[Year] = e.g. Q.1 - 2021
于 2021-09-24T09:07:19.407 回答
0

我认为他们假设您将创建一个日期维度,其中您的季度是预定义的,包括财政年度。我住在澳大利亚,财政年度在 6 月结束,我总是将季度预定义为表格的附加列。如果您使用的是 Power BI/Power Query,则可以在 M 代码级别(在导入阶段)添加查询。

于 2018-05-07T01:21:16.753 回答
0

为获取季度添加 Colom:季度 = summary_bu_USD[开始期间].[季度]

再次添加 colom 并在 colom 中分组年份: QuarterYear = YEAR(summary_bu_USD[Start Period])&" "&"Q"&RIGHT(summary_bu_USD[Quarter],1)

在此处输入图像描述

于 2021-07-27T08:07:10.463 回答