员工休假需要 PowerBI 报告。日期仅按范围排列,即休假开始日期和结束日期。当日期范围跨月时,我无法确定每个月有多少天。理想情况下我只会看工作日而不是周末
如何报告每月休假的天数,即将日期范围分为几个月?
我想我需要将行扩展到单日,然后求和
身份证工作人员 | 离开 | 类型 | 开始日期 | 结束日期 | 拍摄天数 |
---|---|---|---|---|---|
1000675 | 年度 | 离开 | 27/12/24 | 17/01/25 | 16.00 |
2302135 | 年度 | 离开 | 23/12/24 | 10/01/25 | 13.00 |
2303149 | 年度 | 离开 | 27/12/24 | 8/01/25 | 9.00 |
1000812 | 年度 | 离开 | 20/12/24 | 7/01/25 | 11.00 |
1000275 | 年度 | 离开 | 24/12/24 | 6/01/25 | 6.00 |
1000769 | 年度 | 离开 | 23/12/24 | 3/01/25 | 8.00 |
2304494 | 年度 | 离开 | 23/12/24 | 3/01/25 | 8.00 |
1176278 | 年度 | 离开 | 16/12/24 | 3/01/25 | 13.00 |
1000379 | 年度 | 离开 | 24/12/24 | 1/01/25 | 5.00 |
1405149 | 年度 | 离开 | 23/12/24 | 1/01/25 | 6.00 |
1000477 | 年度 | 离开 | 9/12/24 | 1/01/25 | 15.00 |
1000081 | 年度 | 离开 | 31/12/24 | 31/12/24 | 0.45 |
1000517 | 年度 | 离开 | 30/12/24 | 31/12/24 | 2.00 |
1000662 | 年度 | 离开 | 30/12/24 | 31/12/24 | 2.00 |
2300641 | 年度 | 离开 | 27/12/24 | 31/12/24 | 3.00 |
1000594 | 年度 | 离开 | 27/12/24 | 31/12/24 | 3.00 |
1000757 | 年度 | 离开 | 27/12/24 | 31/12/24 | 3.00 |
1000755 | 年度 | 离开 | 27/12/24 | 31/12/24 | 3.00 |
您可以将日期拆分为 PQ 中的行
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("ldM7DoMwDAbgu2RGxa/YMHbvDRADA1vF1p6/YWjiqka0Ex745N+JM00JAUAtpy5dt+2x3EtxW5fnWr5kPVJPUkq0HrCn/TfUC0CauykRAyHHlBuFRtlRRhlPug5Vjm+4xx2QQggVurToJR0MKlVqleqhaZy1jckVDm5IkVH+h4imZEMEUQPYznXPyhZnbUNilblCgXx0IRzAj9MRswiOgcPsYbnKCDK2IVsJF8lVZgxbMkSSfE/VcHtOZLlLUAnTuoX1wX3PfLAF59JyOOdP8uxRf8n5BQ==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"D Staff" = _t, Leave = _t, Type = _t, #"Start Date" = _t, #"End Date" = _t, #"Days Taken" = _t]),
#"Changed Type with Locale" = Table.TransformColumnTypes(Source, {{"Start Date", type date}}, "en-AU"),
#"Changed Type with Locale1" = Table.TransformColumnTypes(#"Changed Type with Locale", {{"End Date", type date}}, "en-AU"),
#"Added Custom" = Table.AddColumn(#"Changed Type with Locale1", "Date", each {Number.From([Start Date])..Number.From([End Date])}),
#"Expanded Custom" = Table.ExpandListColumn(#"Added Custom", "Date"),
#"Changed Type" = Table.TransformColumnTypes(#"Expanded Custom",{{"Date", type date}}),
#"Added Custom1" = Table.AddColumn(#"Changed Type", "Custom.1", each Date.DayOfWeek([Date])),
#"Filtered Rows" = Table.SelectRows(#"Added Custom1", each ([Custom.1] <> 5 and [Custom.1] <> 6))
in
#"Filtered Rows"
然后使用DAX创建日期表
date =
ADDCOLUMNS (
CALENDAR ( MIN ( 'Table'[Start Date] ), MAX ( 'Table'[End Date] ) ),
"month", MONTH ( [Date] )
)
创建表之间的关系
然后你就可以得到每个月的休假天数