Powerbi Dax:每周连续计算条目数

Powerbi Dax:每周连续计算条目数,powerbi,dax,Powerbi,Dax,我有一份人力资源报告,显示员工是否在周末工作。 结构如下: Name Number Date Type Value Anton 100 14.02.2021 WeekendWork 1 Anton 100 20.02.2021 WeekendWork 1 Anton 100 27.02.2021 WeekendWork 1 Anton 100 06.03.2021 WeekendWork 1 Kevin 101 01.03.2021 RegWor

我有一份人力资源报告,显示员工是否在周末工作。 结构如下:

Name    Number  Date    Type    Value
Anton   100 14.02.2021  WeekendWork 1
Anton   100 20.02.2021  WeekendWork 1
Anton   100 27.02.2021  WeekendWork 1
Anton   100 06.03.2021  WeekendWork 1
Kevin   101 01.03.2021  RegWork     5
Julian  102 01.03.2021  RegWork     7
Julian  102 06.03.2021  WeekendWork 1
Julian  102 07.03.2021  WeekendWork 1
如您所见,我们有“Type”=WeekendWork。 如果员工在周末工作,此条目将显示为“值”=1

现在,我想确定员工在过去5周内工作了多少个周末。 就在过去的5周。不管是星期天还是星期六


您将如何使用DAX实现这一点?

我将为您提供一些关于如何推动DAX的线索

最好的做法是为时间智能测量设置一个日历表。搜索那个。将日历表连接到员工表。在日历中添加一列WeekendEndDate,如下所示

Calendar = 
VAR BaseCalendar =
    CALENDAR (
        DATE ( 2021,  1,  1 ),
        DATE ( 2021, 12, 31 )
    )
RETURN
    GENERATE (
        BaseCalendar,

    VAR VarDates = [Date]
    VAR VarDay = WEEKDAY ( VarDates )

    RETURN
        ROW (
            "day"     , VarDay,
            "WeekendEndDate" , // This returns the last date of the weekend. 
                SWITCH( VarDay, 
                7, VarDates+1, // Saturday 
                1, VarDates,   // Sunday
                BLANK() )      // Any other day
        )
)
如果是周末日期,无论是周六还是周日,WeekendEndDate列都会返回周日的日期。您可能希望在每个日期统计WeekendWork类型的案例。或者至少检查这个数字是否大于零

您必须使用时间智能功能,如DATESINPERIOD on Calendar[日期]来抓取最后5周

用于重新创建示例Employee表的代码:

= Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45Wcswryc9T0lEKSk0Pzy/KBrKMDIwMdQ0MdY0NlWJ1EArCU1OzU/NSUBQZ6RqaoChCN8VI18gCrwJjoE0ErQEqMiNGkTlYkVd+Bi41cE9B1WA6F+ofnPJGBO2AexmHGXDP4JYH2hELAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Name = _t, Type = _t, Date = _t])

您的问题解决了吗?