【问题标题】:PowerPivot calculate date difference in the current contextPowerPivot 计算当前上下文中的日期差异
【发布时间】:2015-12-21 21:25:01
【问题描述】:

我想根据客户的购买活动(活跃、睡眠、死亡)对客户进行细分。为此,我需要找到最后一次购买日期和当前上下文之间的天数(因为客户可以在一个时期睡觉而在另一个时期活动)。

所以我将计算字段添加到客户表中:

LastPurchaseDate:= LASTDATE(purchases[ClearDate])

而且效果很好。

当我尝试计算两天之间的天数时出现问题:

LastPurchaseDaysAgo:= CALCULATE(1*(TODAY()-[LastPurchaseDate]))

在结果中,我到处都得到相同的值(行中的客户和列中的日期层次结构),并且添加到枢轴的其他字段停止计算。

  1. 如何解决每行的值相同的问题?我知道当我使用 TODAY() 进行差异计算时,我应该在所有期间为每个客户获得相同的值,但我也为所有客户获得相同的值。
  2. 我应该使用什么来代替 TODAY() 来计算当前日期上下文的差异?我尝试使用 Calendar[Datekey] - 我的日期表,但 PowerPivot 不喜欢它...

谢谢 ;)

【问题讨论】:

    标签: excel powerpivot data-analysis dax


    【解决方案1】:

    检查 ClearDate 是日期而不是日期时间。如果是日期时间,您可以在 DAX 中通过DATE(YEAR(myTable([ClearDate]),MONTH(myTable([ClearDate]),DAY(myTable([ClearDate])) 将其转换为日期。然后你应该能够从 TODAY() 中减去它以获得一个数值。

    【讨论】:

    • 明确地说,表格引擎没有单独的日期类型。它只知道日期/时间,内部由十进制数表示(不记得是浮点数还是十进制数),其中整数部分表示自参考日期以来的天数,小数部分表示一天的时间部分。您可以创建时间部分设置为午夜(小数点后全为 0)的日期时间字段,但不能将字段设置或转换为日期。
    • 我不确定是不是这样:我表中的 ClearDate 是一个日期,我使用以下公式从日期时间计算它:TRUNC(datetime-column, 0),即我只留下日期部分.
    • 罗里,问题是我已经得到了数值,但它对于每个单元格都是 same...我可能会混淆你说值停止正在计算,但我的意思是所有 other 字段都停止了,但是 LastPurchaseDaysAgo 具有价值,而且到处都是一样的......
    • 我猜 TODAY() 的数值到处都在返回。当您尝试以下操作时会发生什么? = TODAY () - DATE ( YEAR ( myTable[ClearDate] ), MONTH ( myTable[ClearDate] ), DAY ( myTable[ClearDate] ) )
    猜你喜欢
    • 2016-06-22
    • 2020-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-29
    • 2010-10-01
    • 1970-01-01
    相关资源
    最近更新 更多