首页 > 解决方案 > 开始和结束日期之外的每日表

问题描述

我正在尝试创建一个计算表,其中包含基于 MIN 和 MAX 日期的员工每日信息。我在 Power BI 上。

主表和输出表

标签: powerbidax

解决方案


如果您有太多员工和日期,这不会是超高效的,但是您可以将员工列表的笛卡尔积与所有可能的日期列表一起过滤掉:

CalculatedTable =
VAR CartesianProduct =
    CROSSJOIN (
        VALUES ( Main[employee_number] ),
        CALENDAR ( MIN ( Main[start] ), MAX ( Main[end] ) )
    )
RETURN
    FILTER (
        CartesianProduct,
        [Date] >= LOOKUPVALUE ( Main[start], Main[employee_number], [employee_number] ) &&
        [Date] <= LOOKUPVALUE ( Main[end],   Main[employee_number], [employee_number] )
    )

CALENDAR函数会生成一个表,其中的列Date从第一个参数开始,包括直到第二个参数的所有日期。


我不确定如何在 DAX 中更有效地执行此操作,但我可以在 M(查询编辑器语言)中想到一个更简洁的解决方案。


推荐阅读