Ssas DAX中没有四分之一()?真正地
在Excel 2013中使用PowerQuery为PowerPivot模型构建日历表时,我使用其函数获取季度数 在SSAS表格中构建同样的东西需要一些变通方法。并没有等效的DAX函数从一个日期获取季度数。奇怪的是,DAX有年()和月(),但没有季度() 嵌套的Ssas DAX中没有四分之一()?真正地,ssas,business-intelligence,powerbi,dax,ssas-tabular,Ssas,Business Intelligence,Powerbi,Dax,Ssas Tabular,在Excel 2013中使用PowerQuery为PowerPivot模型构建日历表时,我使用其函数获取季度数 在SSAS表格中构建同样的东西需要一些变通方法。并没有等效的DAX函数从一个日期获取季度数。奇怪的是,DAX有年()和月(),但没有季度() 嵌套的IF或SWITCH语句真的是DAX中获取季度号的唯一方法吗 为什么没有这样一个简单而有用的函数?我是否忽视了这个决定的最高智慧?我在这本伟大的书中找到了答案 应该使用=ROUNDUP(月([Date])/3,0)来获取季度号。没有记录,但这
IF
或SWITCH
语句真的是DAX中获取季度号的唯一方法吗
为什么没有这样一个简单而有用的函数?我是否忽视了这个决定的最高智慧?我在这本伟大的书中找到了答案
应该使用
=ROUNDUP(月([Date])/3,0)
来获取季度号。没有记录,但这是有效的:
INT(格式([日期],“q”))
DAX中没有四分之一()
是的,没错
真的吗
是的,这太疯狂了,毫无意义。幸运的是,解决方法只是将月份除以3
解决方案:
替代解决方案:
由于DAX有多种方法对数字进行四舍五入,这些方法也将起作用:
VAR quarterNumber = ISO.CEILING(MONTH([Date])/3,1)
VAR quarterNumber = ROUNDUP(MONTH([Date])/3,0)
哪种解决方案最好:
- 对于我的示例中使用的值,结果将是相同的李>
- 对于其他示例,根据标准或使用的CPU类型,结果可能会有微小的差异
- 对于优秀的人来说,汇总可能更直观
- 上限对数学人来说可能更直观
- 从代码和个人观点来看,ISO天花板是丑陋的
除了IFs或SWITCH之外,还有其他方法:您可以使用(月([Date])+2)/3感谢Rory,表达您的想法!嗨@erop,你选择了答案吗?@Myrnz博士,看这里@erop啊,酷。很高兴你找到了解决办法。:)这看起来可能会慢一些,因为它也会转换为字符串,然后再转换回数字。
VAR quarterNumber = ISO.CEILING(MONTH([Date])/3,1)
VAR quarterNumber = ROUNDUP(MONTH([Date])/3,0)