[英]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.