0

我想计算 Sum(QTY) 直到给定日期的月份开始日期。

基本上我可以计算 Sum(QTY) 直到我的度量中的给定日期,例如:

SumQTYTillDate:=CALCULATE(SUM([QTY]);FILTER(ALL(DimDateView[Date]);DimDateView[Date]<=MIN(DimDateView[Date])))

在此处输入图像描述

但我也想计算 2015 年 10 月 1 日之前日期的 Sum(QTY) - 这是所选日期月份的第一个日期。我已经改变了上述措施并使用 STARTOFMONTH 函数来查找给定日期的一个月的第一天,例如;

.......DimDateView[Date]<=STARTOFMONTH(MIN(DimDateView[Date]))))

但没有用,它给了我

“函数 'MIN' 已在用作表过滤器表达式的 True/False 表达式中使用。这是不允许的。”

我错过了什么?如何在我的度量中使用 STARTOFMONTH 函数?

谢谢。

4

1 回答 1

1

STARTOFMONTH() 必须引用日期/时间类型的列。MIN() 是一个标量值,而不是列引用。此外,您的度量不起作用,因为 STARTOFMONTH() 是在 FILTER() 的行上下文中评估的。所有这一切的结果是,您将获得一个衡量标准,该衡量标准仅对数据中每个月的第一天的 [QTY] 求和。

内置的时间智能功能充其量往往是不直观的。我总是建议使用您的模型和适当的 FILTER() 来获得您想要的。

在您的情况下,我不完全确定您在寻找什么,但我认为您想要在您选择的日期所在的月初之前的所有时间的 [QTY] 总和。在这种情况下这真的很容易做到。将一个字段添加到您的日期维度 [MonthStartDate],它为表中的每个日期保存它所在月份的开始日期。现在您可以编写如下度量:

SumQTY=SUM(FactQTY[QTY])

SumQTYTilStartOfMonth:=
CALCULATE(
    [SumQTY]
    ;FILTER(
        ALL(DimDateView)
        ;DimDateView[Date] < MIN(DimDateView[MonthStartDate])
    )
)
于 2015-10-09T15:37:44.197 回答