【问题标题】:DAX - Date calculations based on pivot filtersDAX - 基于数据透视过滤器的日期计算
【发布时间】:2019-08-26 21:51:01
【问题描述】:

我上周刚刚了解了 PowerPivot,所以我仍在努力了解这一切是如何工作的。

我有一张包含开始日期和结束日期的合同表。我对月份(索引)和月底日期进行了第二次查找。 (1) DAX 计算合约的天数。 (2) 根据过滤后的Month,计算合约开始到MonthDate的天数。

合同:

Account   Start       End        ContractDays  DevDays
359ABC    1/10/2019   1/10/2020
948EDI    2/5/2019    2/5/2020

查找表:

Month    MonthDate
1        1/31/2019
2        2/28/2019
3        3/31/2019

我希望 DAX 在上面的合同表中计算 ContractDaysDevDays

1.计算ContractDays

我想我得到了这个。我添加了一个名为ContractDays 的列,其公式为=[End]-[Start]。简单...

2.计算DevDays

如果用户过滤到Month = 2,那么我想计算合同开始到 2019 年 2 月 28 日之间的天数。所以结果枢轴将显示:

Account   Start       End        ContractDays  DevDays
359ABC    1/10/2019   1/10/2020  365           49
948EDI    2/5/2019    2/5/2020   365           0

我正在计算一个名为UseEvalDate = lookupvalue(lku[MonthDate], lku[Month], filters(lku[Month])) 的度量。这决定了要使用的MonthDate

然后我在合同中添加了一列:DevDays = [UseEvalDate] - [Start]。这是错误的......说“提供了一个包含多个值的表,而预期只有一个值。”我错过了什么?

【问题讨论】:

    标签: dax powerpivot


    【解决方案1】:

    我发现诀窍是对所有这些事情都使用度量。我对 MonthDay 和 Contract 开始之间的天数的最终度量是:DevDays = sumx(contract, datediff(contract[Start], [UseEvalDate], day))

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多