Power BI 如何根据条件和对另一个 table 的引用在日期 table 中创建新列

Power BI how to create new column in date table based on conditions and reference to another table

我有一个名为 'dDate' 的约会对象 table,如下所示:

Date        
01/01/2020
02/01/2020
03/01/2020

我有另一个 table 叫做 'Calendar',如下所示。请注意,并非所有日期都出现在 table.

Date        Holiday
01/01/2020  1
03/01/2020  0

我想向 dDate table 添加一列 'HolidayDate',其中,对于特定日期,如果来自日历的 'Holiday'=1,则给出值 1,否则值为 0。因此 HolidayDate 列在日历 table 中查找日期,检查假期是否为 1,如果是 returns 则为 1。

所以 dDate table 中的输出应该如下所示:

Date        HolidayDate
01/01/2020  1
02/01/2020  0
03/01/2020  0

我想添加一个新列并指定一个实现上述功能的公式。我该怎么做?

如果您在源 table 与日期和 table 与日历之间创建简单的关系,那么您可以使用源 table 和 PowerBI 的假日日期将为您加入。您不需要“复制”假期指示符。事实上,假期指示器属于日历 table,因为这实际上是 Kimball 模型中的日期维度。

根据评论,如果您的模型不是您要更改的,或者您已经将自己描绘成一个复杂的角落,您可以求助于使用 LOOKUPVALUE 来拉动数据。请记住,这可能会对大型数据集产生性能影响。

如果Calendar和dDate有关系,你可以在dDate中创建如下计算列

HolidayfromCalendar = RELATED('Calendar'[Holiday])

如果Calendar和dDate没有关系,可以在dDate中创建如下计算列

HolidayfromCalendar =
CALCULATE (
    MAXX (
        FILTER ( 'Calendar', 'Calendar'[Date] = MAX ( dDate[Date] ) ),
        'Calendar'[Holiday]
    )
)