簡體   English   中英

連續缺勤/工作日 Power BI 度量

[英]Consecutive Absent/Worked Days Power BI Measure

我目前正在嘗試動態計算一組員工的連續工作和缺勤天數,但事實證明這是一項非常艱巨的任務。 RAW 表如下所示:

日期 ID 缺席的
2021 年 6 月 1 日 1234 1
6/2/2021 1234 1
6/32021 1234 1
6/4/2021 1234 0
2021 年 6 月 1 日 6789 1
6/2/2021 6789 0

我想使用 Dax(而不是 Power Query)來計算他們缺席的連續天數,我得出的最接近的解決方案如下,大聲喊出 SQLBI

DaysWith0 = 
VAR CurrentDate = MAX('Calendar'[Date])
VAR FirstDateEver =  CALCULATE(MIN( 'Calendar'[Date]), REMOVEFILTERS())
VAR PrevWorked =
    CALCULATE(
        MAX('RawDataTable'[Date]),'Calendar'[Date] <= CurrentDate) 
VAR PrevDate = COALESCE(PrevWorked,FirstDateEver)
VAR Result = INT(CurrentDate - PrevDate)  
RETURN
    Result

但這僅計算沒有數據(無計划)的連續天數。 我需要 2 個顯示連續工作日和連續缺勤的措施。

這看起來像一個經典的間隙和島嶼

例子

Select DateR1 = min(Date)
      ,DateR2 = max(Date)
      ,ID
      ,Absent = sum( case when Absent=1 then 1 else 0 end )
      ,Worked = sum( case when Absent=0 then 1 else 0 end )
 From  (
        Select *
              ,Grp = datediff(day,'1900-01-01',Date) - row_number() over (partition by ID,Absent order by Date) 
         From YourTable
       ) A
 Group By ID,Grp
 Order By ID,min(Date)

結果

DateR1      DateR2      ID      Absent  Worked
2021-06-01  2021-06-03  1234    3       0
2021-06-04  2021-06-04  1234    0       1
2021-06-01  2021-06-01  6789    1       0
2021-06-02  2021-06-02  6789    0       1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM