首页 > 解决方案 > DAX 在 ValidFrom 列中查找日期

问题描述

我有两(2)张桌子

表名:X

ID    Name       ValidFrom       Property
A-----Test1-----01.01.2010---------30
A-----Test1-----01.01.2015---------60
B-----Test1-----01.01.1900---------30
B-----Test2-----01.01.2018---------60

表名:Y

ID    Date
A---01.01.2010
A---01.02.2010
A---01.03.2015
A---01.04.2015

理想情况下,我想将计算列添加到表 Y中,它使用表 X中的 ID 和 ValidFrom 查找 ID 和日期。在此示例中,表 X 中的第 1 行将返回所有日期 >= 01.01.2010 和日期 < 01.01.2015 的数据行。结果将是这样的:

表名:Y(新)

ID     Date        Name    Property
A---01.01.2010----Test1------30
A---01.02.2010----Test1------30
A---01.03.2015----Test1------60
A---01.04.2015----Test1------60

任何帮助将不胜感激

标签: powerbidax

解决方案


目前尚不清楚该Name列是如何生成的,但是Property一旦您Name在 table 中拥有该列,您可以通过以下方式获取该列Y

Property =
VAR LastValid =
    CALCULATE (
        MAX ( X[ValidFrom] ),
        FILTER (
            ALL ( X[ValidFrom] ),
            X[ValidFrom] <= EARLIER ( Y[Date] )
        )
    )
RETURN
    LOOKUPVALUE (
        X[Property],
        X[ID], Y[ID],
        X[Name], Y[Name],
        X[ValidFrom], LastValid
    )

LastValid变量查找小于或等于当前行中日期的最新日期。然后你将它与IDand一起使用Name来查找Propertyfrom table X


推荐阅读