【问题标题】:Difference between multiple dates in the same column based on category基于类别的同一列中的多个日期之间的差异
【发布时间】:2019-01-04 18:46:22
【问题描述】:

我有以下问题..

我有这张桌子:

我想创建一个计算列,告诉我相同代码(COD)的两个日期之间的天数差异,应根据行前的日期计算差异。

例如:

使用COD B

货到付款 |日期 | days_diff

B |05/01/2018 |

B |09/01/2018 | 4

B |2018 年 12 月 1 日 | 3

在示例图像中,代码/日期按顺序排序,但实际上它们是无序的。

我尝试在 DAX 中使用以下句子:

 DATEDIFF(Testing[DATE]; FIRSTDATE(FILTER( ALL(Testing[DATE]) ;Testing[DATE] > EARLIER(Testing[DATE])));DAY)

解释我的尝试:

区分行上的日期和使用 EARLIER 函数从当前日期中获取最近的日期。

但是,我得到了以下结果:

我无法过滤 COD,因此“EARLIER”的分析仅在同一个“组”中执行,因此我了解 PowerBI 正在考虑所有日期。

有什么想法吗?

【问题讨论】:

    标签: powerbi dax


    【解决方案1】:

    您的想法非常接近,但需要进行一些调整。试试这个:

    Days_diff =
    VAR StartDate =
        CALCULATE (
            LASTDATE ( Testing[DATE] ),
            FILTER (
                ALLEXCEPT ( Testing, Testing[COD] ),
                Testing[DATE] < EARLIER ( Testing[DATE] )
            )
        )
    RETURN
        DATEDIFF ( StartDate, Testing[DATE], DAY )
    

    变量StartDate 计算当前行日期之前的最后一个日期。我使用CALCULATE 删除除COD 之外的所有行上下文,因为这是我们要分组的内容。

    注意:EARLIER 函数不是日期/时间函数,而是对早期行上下文的引用(在进入 FILTER 函数之前)。它允许我们在嵌套函数时跳回一个级别。

    那你就拿DATEDIFF吧。

    【讨论】:

    • 好朋友!真的感谢。感谢您的“早期”解释。
    猜你喜欢
    • 1970-01-01
    • 2011-04-03
    • 2019-09-25
    • 2016-02-14
    • 2017-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-24
    相关资源
    最近更新 更多