Power Query 이벤트 기간을 하루에 분할

Power Query에서 크로스 조인 의 활용 예입니다.

[3] Power BI에서 사내 임대 차량의 사용 상황을 시각화 해 보았습니다. | @KodamaJn 이 소재입니다.


날짜를 넘는 시간 간격도 역일마다 시간을 집계하는 등 | @PowerBIxyz
상세 에디터를 사용하지 않고, 화면 포치포치( +if문 )로 만들어 본 느낌입니다.
Excel에서 데이터 가공하고 있는 감각에 가까울지도.

샘플 데이터



이벤트 데이터





달력 테이블



CALENDER 함수 (DAX 식)는 사용할 수 없으므로,
Power Query에서 캘린더 | @ 타누키_p 쪽에 x 을 참고로 만들어 보았습니다.
日付 열의 데이터 형식은 날짜/시간입니다.

절차



1. 교차 결합



마지막 기사 을 참고하여 이벤트 테이블에 캘린더 테이블을 교차 조인합니다.

~도중략~

테이블의 전개까지 끝납니다.

2. 판정열 작성



새로운 열을 만들어 원하는 데이터에 "1"이 들어가도록 합니다.
캘린더의 日付StartEnd 사이에 포함되어 있으면 그 날짜는 원하는 데이터이므로 "1"로 합니다.

if [Start] < [日付] + #duration(1, 0, 0, 0) and
    [日付] < [End]
then
    1
else
    0
日付 를 비교할 때 주의하는 것은,
4월 1일은 4월 1일 0시 0분이므로,Start 와 비교할 때는 日付 +1일 하십시오.
#duration(1, 0, 0, 0) 가 "1일"을 나타냅니다.
이 자료 에 의하면 #duration(일, 시, 분, 초)이란 것 같습니다.

3. 원하는 데이터만 필터링



원하는 데이터는 判定 열 = 1 이므로 필터링합니다.

원하는 데이터만 되었습니다.


4. 후 정리 및 덤 정보 추가



판정열은 더 이상 사용하지 않으므로 삭제





모델링 및 집계에 필요한 정보 추가



보이고 싶은 정보에 따라 다르므로 요구 사항에 맞게 여러 가지를 추가하십시오.

1일로 분할한 단위로 Start, End를 계산



분할된 데이터의 Start 시간은 Start日付 의 큰 쪽


분할된 데이터의 End 시간은 End日付+1 의 작은 쪽


분할 시작에서 분할 종료까지의 시간 계산





Start 및 End 삭제



모델링에서 크로스 조인 전의 이벤트 테이블과 관계시키면,
이 정보는 끌어 당기므로이 테이블에서 제외됩니다.

완성





후기



이전, 업무로 이것을 요구받았습니다만, 당시는 Power Query에서의 가공 방법을 모르고,
결국 데이터 소스측(Access)SQL로 분할하고 있었습니다. .
우연히 데이터 소스도 스스로 흥분했기 때문에 살았지만,
다시 만들 기회가 있다면 Power Query에서 다시 시도하고 싶습니다.

좋은 웹페이지 즐겨찾기