В Power BI расчет количества дней отсутствия без учета выходных может быть общим требованием для различных бизнес-сценариев. В этой статье блога будут рассмотрены различные методы достижения этой цели, а также приведены примеры кода. Используя эти методы, вы сможете точно подсчитывать дни отсутствия, не включая выходные в отчеты или анализы Power BI.
Метод 1. Использование меры DAX
Первый метод предполагает создание меры DAX, которая подсчитывает количество дней отсутствия, исключая выходные. Вот пример того, как это реализовать:
AbsentDays =
VAR StartDate = MIN('Table'[AbsentStartDate])
VAR EndDate = MAX('Table'[AbsentEndDate])
RETURN
COUNTX(
FILTER(
CALENDAR(StartDate, EndDate),
WEEKDAY([Date], 2) < 6 && [Date] >= StartDate && [Date] <= EndDate
),
[Date]
)
Метод 2: использование Power Query
Power Query предоставляет другой подход для расчета количества дней отсутствия, исключая выходные. Вот пример реализации этого метода:
- Загрузите данные в Power Query.
- Добавьте специальный столбец, выбрав вкладку «Добавить столбец» и выбрав «Пользовательский столбец».
- В поле ввода формулы введите следующий код:
= List.Count(
List.Select(
List.Dates([AbsentStartDate], Duration.Days([AbsentEndDate] - [AbsentStartDate]) + 1, #duration(1, 0, 0, 0)),
each Date.DayOfWeek(_, Day.Monday) <= 4
)
)
Метод 3: использование функций языка M
В качестве альтернативы вы можете использовать функции языка M в Power Query для достижения желаемого результата. Вот пример:
let
StartDate = #date(2022, 1, 1),
EndDate = #date(2022, 12, 31),
AbsentDays = List.Difference(
{StartDate..EndDate},
List.Dates(StartDate, Duration.Days(EndDate - StartDate) + 1, #duration(1, 0, 0, 0))
|> List.Select((x) => Date.DayOfWeek(x, Day.Monday) <= 4)
),
CountAbsentDays = List.Count(AbsentDays)
in
CountAbsentDays