【问题标题】:No QUARTER() in DAX? Really?DAX 中没有 QUARTER()?真的吗?
【发布时间】: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,你选择了答案吗?
  • @erop 啊,酷。很高兴你找到了解决方案。 :)

标签: ssas business-intelligence powerbi dax ssas-tabular


【解决方案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) 来获取季度编号。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2011-04-01
              • 1970-01-01
              • 2018-01-05
              • 2011-06-01
              • 1970-01-01
              • 2015-05-13
              • 1970-01-01
              相关资源
              最近更新 更多