DAX中没有QUARTER()?真?

ero*_*rop 8 ssas business-intelligence dax ssas-tabular powerbi

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

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

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

缺少这么简单有用的功能的原因是什么?我是否忽视了这一决定的最高智慧?

ero*_*rop 13

我在这本伟大的书中找到了答案!

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


小智 5

它没有记录,但这是有效的:

INT(格式([日期], "q"))


whi*_*and 5

DAX中没有QUARTER()吗?

对,那是正确的。

真?

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

解:

VAR quarterNumber = CEILING(MONTH([Date])/3,1)
Run Code Online (Sandbox Code Playgroud)

替代解决方案:

由于DAX具有多种舍入数字的方式,因此它们也将起作用:

VAR quarterNumber = ISO.CEILING(MONTH([Date])/3,1)
VAR quarterNumber = ROUNDUP(MONTH([Date])/3,0)
Run Code Online (Sandbox Code Playgroud)

最佳解决方案:

  • 对于我的示例中使用的值,结果将相同。
  • 对于其他示例,根据使用的标准或CPU类型,结果可能会有细微的差别。
  • 对于Excel人员,ROUNDUP可能更直观。
  • 对于数学人员来说,天花板可能更直观。
  • ISO.CEILING在代码,个人意见方面很难看。


小智 5

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

以下是获取季度和季度数字的方法: 日期季度 日期季度数字

这些结果如下:

日期四分之一切片机