DAX 中没有 QUARTER()?真的吗?

Posted

技术标签:

【中文标题】DAX 中没有 QUARTER()?真的吗?【英文标题】:No QUARTER() in DAX? Really? 【发布时间】:2015-12-04 15:35:28 【问题描述】:

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

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

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

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

【问题讨论】:

除了IF或者SWITCH还有其他方式:可以使用(MONTH([Date])+2)/3 感谢罗里的建议! 嗨@erop,你选择了答案吗? @drmyrnz,看这里***.com/a/32586553/409317 @erop 啊,酷。很高兴你找到了解决方案。 :) 【参考方案1】:

你也可以使用这个命令:

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

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

="Q." & FORMAT(Date[Date],"q") & " - "&Date[Year] = e.g. Q.1 - 2021

【讨论】:

【参考方案2】:

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

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

enter image description here

【讨论】:

【参考方案3】:

DAX 现在有季度了!这是一些日期数据:

这些是您获得季度和季度数字的方式:

这些结果如下:

【讨论】:

【参考方案4】:

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

【讨论】:

【参考方案5】:

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 在代码中很难看,个人意见。

【讨论】:

【参考方案6】:

它没有记录,但它有效:

INT(FORMAT([日期], "q"))

【讨论】:

这看起来可能会更慢,因为它也在转换为字符串,然后再次转换为数字。【参考方案7】:

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

应该使用=ROUNDUP(MONTH([Date])/3, 0) 来获取季度编号。

【讨论】:

以上是关于DAX 中没有 QUARTER()?真的吗?的主要内容,如果未能解决你的问题,请参考以下文章

DAX强制ALLEXCEPT函数在没有销售的地方返回空白

DAX基础入门 – 30分钟从SQL到DAX — PowerBI 利器

dax-自定义周做同比和环比

SQL BI出品:DAX.Guide - DAX函数在线速查

“*apply”家族真的没有向量化吗?

powerbi新建列字段里没有