DAX查询以查看表中是否有另一行具有相同的id和相同的日期 - 1年

时间:2017-02-01 08:18:22

标签: excel powerbi dax

我有一张订单表。它包含以下相关列:

  • OrderId(Key)
  • 客户ID
  • 日期(层次结构)

我想在同一个表中创建一个新列: OrderedSameMonthLastYear 如果一年前同一个月至少有一个来自同一客户的其他订单,则该值应为true。

我尝试过几个不同的查询,但我真的不知道DAX能做到这一点。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用EARLIER()函数访问上一行上下文(在本例中是表中的所有行)并在列之间进行比较,然后使用COUNTROWS()来计算已过滤的行数。

OrderedSameMonthLastYear = 
IF(
    COUNTROWS(
        FILTER(
            Orders,
            Orders[CustomerId] = EARLIER(Orders[CustomerId]) &&
            Orders[Date].[Year] = EARLIER(Orders[Date].[Year]) - 1 &&
            Orders[Date].[Month] = EARLIER(Orders[Date].[Month])
        )
    ) > 0,
    TRUE,
    FALSE
)

结果如下: result