파이썬에서 자기란 무엇인가: 실제 사례
파이썬에서 자기란 무엇인가: 실제 사례
공휴일 포함 여부에 관계없이 두 날짜 사이의 근무일 / 근무일을 계산하는 방법을 보여 드리겠습니다. 에서 계속해서 질문을 받은 주제입니다 .
나는 또한 이것이 이전에 논의된 다른 많은 요소들을 다루고 있다는 것을 알고 있기 때문에 이것이 이 타임 인텔리전스 시리즈를 마무리하는 좋은 방법이 될 것이라고 믿습니다. 이러한 요소에는 휴일 테이블 만들기, 확장 날짜 테이블 만들기, 함수 사용 등이 포함됩니다. 이 블로그 하단에서 이 튜토리얼의 전체 비디오를 볼 수 있습니다.
목차
두 날짜 사이의 근무일을 계산하는 방법
근무일을 계산하는 데 사용할 수 있는 다양한 접근 방식에 대해 이야기하겠습니다.
Excel에서는 사용자가 NETWORKDAYS 기능 을 사용하여 간단한 방식으로 근무일을 계산할 수 있습니다 . 그러나 DAX에는 그런 기능이 없으므로 이를 우회하는 방법에 대해 논의할 것입니다.
이를 수행하는 한 가지 방법은 확장 날짜 테이블의 일부 요소를 사용하는 것입니다.
또 다른 옵션은 thebiccountant.com 블로그의 Imke Feldmann으로부터 얻은 접근 방식을 이용하는 것입니다. 그녀는 파워 쿼리에서 직접 호출할 수 있는 사용자 지정 NetworkDays 함수를 만들어 프로세스를 훨씬 빠르고 덜 복잡하게 만들었습니다.
이러한 접근 방식이 어떻게 작동하는지 보여주기 위해 매우 일반적인 시나리오를 사용하겠습니다.
익명으로 처리한 프로젝트가 100개 있습니다.
또한 각 프로젝트에 대한 시작 날짜 와 종료 날짜가 있습니다 .
간단한 Days Elapsed 측정값도 만들었습니다 . 이것은 기본적으로 각 시작일과 종료일 사이의 원시 일수 입니다 . 이를 위해 함수를 사용했는데 , 이는 근무일을 날짜로 구분하는 데 유용한 함수입니다.
데이터 모델은 매우 간단합니다. 날짜 및 프로젝트 에 대한 테이블이 포함되어 있습니다 .
또한 프로젝트 ID , 시작 날짜 및 종료 날짜가 포함된 팩트 테이블도 표시됩니다 .
비교를 위해 Excel(power bi가 아님)을 사용하여 NetworkDays (공휴일이 있거나 없는 경우)도 계산했습니다.
물론 동일한 작업을 수행하고 Excel에서 데이터를 가져올 수 있습니다. 하지만 여기서의 목표는 엑셀을 사용하지 않고 파워 BI를 이용해 근무일수를 계산하는 것입니다.
DAX를 사용하여 날짜 사이의 근무일 계산
날짜 계산을 처리할 때마다 Dates 테이블에서 함수 를 사용하는 것이 항상 효율적입니다 .
또한 DATESBETWEEN을 사용하여 시작 날짜와 종료 날짜 사이의 필드 범위를 좁혔습니다 . 또한 IsWorkingDay 를 추가하여 근무일인 경우 여야 한다는 간단한 부울 논리를 적용했습니다 . 를 반환합니다 .
슬라이서의 컨텍스트를 고려하기 위해 필터 로 마무리했습니다 .
공휴일이 있는 버전은 방금 논의한 조치와 매우 유사합니다.
DATESBETWEEN 함수를 사용하는 것과 같은 표현입니다 . 와 IsHoliday 만 추가했습니다 .
다시 말하지만 맨 끝에 ALLSELECTED 함수를 사용했습니다 .
이 두 측정값을 내 테이블로 드래그하면 어떻게 되는지 확인하세요.
예상대로 Workdays w/ Holidays는 Excel w/ Holidays 열과 완벽하게 일치합니다 . Excel w/o Holidays 열과 일치하는 Workdays w/o Holidays 열에 대해서도 마찬가지입니다 .
파워 쿼리를 사용하여 근무일 계산
thebiccountant.com 블로그의 Imke Feldmann이 말하는 접근 방식은 파워 쿼리를 사용할 때 훨씬 더 쉬운 솔루션을 제공합니다.
NETWORKDAYS 함수에 대한 블로그에서 그녀는 파워 쿼리에서 호출할 수 있는 M 코드를 제공했습니다.
그녀의 블로그에서 M 코드를 복사하기만 하면 됩니다.
그런 다음 파워 쿼리 로 이동 하고 새 원본 아래에서 빈 쿼리를 엽니다 .
고급 편집기 로 이동합니다 .
그런 다음 전체 코드를 페이지에 붙여넣습니다. 코드에 오류가 없는지 확인하려면 녹색 확인 표시가 있는지 확인하십시오.
호출되면 이 템플릿으로 이동합니다.
여기에 무엇을 입력하든 상관없으므로 그냥 2018년 1월 1일부터 2020년 1월 1일로 하겠습니다.
이제 내 검색어 아래에 표시됩니다. 나중에 사용하기 쉽도록 이름을 바꾸겠습니다.
이름을 Networkdays 로 지정하겠습니다 .
이제 해당 쿼리를 사용할 수 있습니다. 내 Data 로 이동하겠습니다 .
그런 다음 Add Column 아래에서 Invoke Custom Function 을 클릭합니다 .
이 NWD를 호출 하고 Networkdays 기능을 사용 하겠습니다 .
그런 다음 아래 드롭다운 메뉴에서 시작 날짜 와 종료 날짜를 선택합니다 .
여기에서 주의 시작을 월요일에서 다른 것으로 변경할 수 있는 옵션을 제공합니다.
이를 위해 월요일은 괜찮으니 그대로 두겠습니다. 그런 다음 확인을 클릭하겠습니다.
보시 다시피 Excel NetworkDays 열에 해당하는 NetworkDays를 즉시 계산합니다 .
이제 공휴일을 제외할 수 있도록 조정하겠습니다. 휴일 테이블 로 이동하기만 하면 됩니다 .
템플릿에서 기억해 보면 휴일 테이블이 여기에서 세 번째 매개변수입니다.
따라서 여기서는 Holidays 테이블을 사용하고 Date 열을 참조하겠습니다.
여기서 확인 표시를 클릭하여 변경 사항을 적용하겠습니다.
[00:11:00]
이제 업데이트되었으며 모든 휴일이 제거되었습니다. 휴일이 없는 Excel NetworkDays 의 열과 정확히 동일합니다 .
이 열의 이름을 NWD 휴일 없음으로 바꾸겠습니다.
날짜 테이블에 근무일 및 주말 숫자 추가: LuckyTemplates의 시간 인텔리전스 기법
DAX를 사용하여 LuckyTemplates에서 근무일 숫자 표시
LuckyTemplates에서 평균 계산: DAX를 사용하여 평일 또는 주말 결과 분리
결론
내가 사용한 두 접근 방식은 서로 매우 다르지만 둘 다 동일한 결과를 나타냅니다. 이는 찾고 있는 특정 Excel 함수에 직접 대응되는 기능이 없는 경우에도 LuckyTemplates를 최대화하는 방법이 실제로 많다는 것을 보여줍니다.
이것은 Time Intelligence 시리즈의 훌륭한 실행이었습니다. 저는 Melissa Dekorte와 함께 이 모든 훌륭한 시간 인텔리전스 시나리오를 보여드리는 작업을 즐겼습니다.
여기서 정말 강조하고 싶은 것 중 하나는 DAX가 LuckyTemplates에서 가장 흥미로운 부분이라는 것입니다. 그러나 LuckyTemplates의 모든 기능을 마스터하면 DAX를 전혀 포함하지 않는 다른 솔루션에 감사하게 될 것입니다. 위에서 보여드린 마지막 접근 방식과 이전 Time Intelligence 동영상에서 공유한 팁이 이 사실을 증명합니다.
모두 제일 좋다,
파이썬에서 자기란 무엇인가: 실제 사례
R의 .rds 파일에서 개체를 저장하고 로드하는 방법을 배웁니다. 이 블로그에서는 R에서 LuckyTemplates로 개체를 가져오는 방법도 다룹니다.
이 DAX 코딩 언어 자습서에서는 GENERATE 함수를 사용하는 방법과 측정값 제목을 동적으로 변경하는 방법을 알아봅니다.
이 자습서에서는 다중 스레드 동적 시각적 개체 기술을 사용하여 보고서의 동적 데이터 시각화에서 통찰력을 만드는 방법을 다룹니다.
이 기사에서는 필터 컨텍스트를 살펴보겠습니다. 필터 컨텍스트는 모든 LuckyTemplates 사용자가 처음에 배워야 하는 주요 주제 중 하나입니다.
LuckyTemplates Apps 온라인 서비스가 다양한 소스에서 생성된 다양한 보고서 및 인사이트를 관리하는 데 어떻게 도움이 되는지 보여주고 싶습니다.
LuckyTemplates에서 측정 분기 및 DAX 수식 결합과 같은 기술을 사용하여 수익 마진 변경을 해결하는 방법을 알아봅니다.
이 자습서에서는 데이터 캐시의 구체화 아이디어와 결과 제공 시 DAX 성능에 미치는 영향에 대해 설명합니다.
지금까지 Excel을 계속 사용하고 있다면 지금이 비즈니스 보고 요구 사항에 LuckyTemplates를 사용하기 시작하는 가장 좋은 시기입니다.
LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것