파이썬에서 자기란 무엇인가: 실제 사례
파이썬에서 자기란 무엇인가: 실제 사례
회원을 위해 최근에 생각해낸 LuckyTemplates 팁에 대해 이야기하고 싶습니다 . 질문은 주어진 달의 처음 N 영업일 또는 처음 N 청구 가능 일을 이전 달의 같은 기간과 비교하여 보는 관점에서 유용한 패턴을 다루었습니다. 이 블로그 하단에서 이 튜토리얼의 전체 비디오를 볼 수 있습니다.
TJ Henneman은 이번 달의 처음 5일과 이전 달의 처음 5일을 비교하고 10일, 15일, 20일을 비교하려고 했습니다. 그래서 이것은 주말과 공휴일을 포함하지 않습니다. 그의 게시물을 확인할 수 있습니다 .
여기에 정말 흥미로운 파워 쿼리 솔루션이 있다고 생각합니다 . 또한 이 문제에 대해 흥미로운 DAX 솔루션을 사용했습니다 . 다른 자습서에서 후자를 살펴보겠습니다.
또한 LuckyTemplates 챌린지 #16에서 사용한 최근 보고 기술을 안내해 드리고 싶습니다 . 이 특정 문제에 대해 정말 잘 작동하는 스크롤 KPI 표시기를 사용했습니다 .
하지만 이 LuckyTemplates 팁에서는 파워 쿼리 솔루션을 다루겠습니다. LuckyTemplates로 이동하여 데이터를 살펴보겠습니다. 이를 위해 무료로 사용할 수 있는 LuckyTemplates에서 모은 실습 데이터 세트 도구를 사용하여 데이터를 시뮬레이션했습니다. 이는 기본 스타 스키마 데이터 세트를 구성하고 솔루션을 테스트하는 데 유용합니다.
목차
데이터 모델
데이터 모델은 확장 날짜 테이블 과 일련의 차원 테이블을 사용합니다. 또한 첫 해에는 3년 동안의 부분 데이터, 두 번째 해에는 전체 데이터, 세 번째 해에는 부분 데이터가 포함된 Sales 테이블이 있습니다. 마지막으로 측정값 테이블 도 있습니다 .
또한 이 데이터 세트를 약간 수정했습니다. 이 분석에서 제거할 공휴일을 제대로 계산할 수 있도록 휴일 테이블을 가져와 확장 날짜 테이블 에 연결했습니다 . 이 작업을 수행하는 방법을 잘 모르는 경우 이 자습서 를 확인하십시오 .
그런 다음 데이터 세트에서 첫 부분 월을 필터링했습니다. 그 달에는 며칠의 데이터만 있고 필요한 영업일이 없었기 때문입니다. 첫 달부터 시작한다는 점에 유의하십시오. 그 외에는 표준 데이터 세트가 됩니다. 이제 파워 쿼리 로 이동하여 이 LuckyTemplates 팁 작업을 시작하겠습니다.
데이터를 살펴보면 특정 날짜에 다른 주문이 있음을 알 수 있습니다. 목표는 4월 1일을 첫 번째 영업일로, 4월 2일을 두 번째 영업일로, 4월 3일을 세 번째 영업일로 시작하는 모든 항목에 번호를 매기는 것입니다. 주말과 공휴일을 제외하고 매월 영업일 기준 1일에서 N일까지 번호를 매길 것입니다.
중복 테이블 만들기
작업을 시작하려면 Total Sales 로 집계 하고 이를 개별 관찰 수준으로 가져올 수 있도록 이 테이블의 복제본을 만들어야 합니다 . 이 중복 테이블을 Sales Aggregated 라고 부를 것입니다 .
Sales 테이블을 단순히 참조하는 것이 아니라 복제했습니다 . 이 경우 이 테이블을 원래 Sales 테이블과 조인할 것입니다. 참조하면 둘을 결합할 때 문제가 발생합니다.
가장 먼저 할 일은 OrderDate 열 에서 Group By를 사용하는 것입니다 . 고급 버튼을 클릭하면 여기에서 수행하는 작업에 대한 전체 그림을 볼 수 있습니다. Total Day Sales를 새 열 이름으로 지정 하고 라인 합계의 합계가 됩니다.
이제 각 날짜(첫 번째 열)와 해당 날짜의 총 매출(두 번째 열)이 있습니다.
날짜 테이블 병합
이 LuckyTemplates 팁의 다음 단계는 이것을 날짜 테이블 과 병합하여 영업일인 날과 그렇지 않은 날을 파악하는 것입니다. 다시 그룹화하여 분할하고 적절하게 번호를 매길 수 있습니다 .
Dates 테이블을 병합 하고 OrderDate 를 Date 에 연결합니다 . 아래쪽에서 선택 항목이 테이블의 모든 행과 일치하는 것을 볼 수 있습니다.
우리가 주로 관심을 갖는 분야는 IsBusinessDay 입니다 .
이것은 그룹화할 기본 필드이며 Month & Year 및 MonthnYear 필드를 사용합니다.
또한 적절한 요일을 필터링하고 있는지 확인하기 위해 DayofWeekName을 확인해야 합니다 .
확인 버튼을 클릭하면 필요한 것을 정확하게 제공합니다.
또한 주문 날짜가 오름차순으로 정렬되어 있는지 확인해야 합니다.
그런 다음 돌아가서 두 번째 Group By 를 만듭니다 .
이번에는 Advanced 버튼을 클릭하고 Month & Year 를 그룹화한 다음 두 번째 그룹화를 추가합니다.
두 번째 그룹은 IsBusinessDay 에 대한 것이므로 영업일이 참인 그룹에 번호를 매길 수 있습니다.
그런 다음 AllRows 함수를 생성하여 집계하지 않고 원래 수준의 세분성으로 돌아갈 수 있습니다.
이렇게 하면 매월 true 에 대한 테이블 과 false 에 대한 테이블을 볼 수 있는 중첩 테이블이 제공됩니다 .
사용자 지정 열 만들기
다음으로 영업일에 필요한 개수를 추가하기 위해 사용자 지정 열을 만들어야 합니다 .
우리는 AllRows 테이블 에서 작동하는 Table.AddIndexColumn 이라는 함수를 사용하고 이를 Day Index 라고 부를 것입니다 . 인덱스가 1부터 시작하여 새 영업일마다 1씩 증가하기를 원합니다.
그런 다음 처음 세 개의 열을 제거하고 네 번째 사용자 지정 열을 확장할 수 있습니다.
결과를 보면 영업일(true)을 카운트한 다음 각 월의 주말 및 공휴일인 날짜(false)를 카운트하는 일 인덱스를 제공합니다. 다음으로, 이들이 적절한 필드 유형에 있는지 확인해야 합니다.
Sales 테이블로 돌아가 보겠습니다. 방금 만든 Aggregate 테이블을 Sales 테이블과 병합합니다.
OrderDate 에 병합합니다 . 하단에서 첫 번째 테이블의 모든 행과 일치하는 것을 볼 수 있습니다.
Sales Agg 열을 확장할 때 방금 추가한 새 필드인 Month & Year , DayOfWeekName , MonthnYear , IsBusinessDay 및 DayIndex 열을 선택합니다.
Close & Apply 를 클릭하기 전에 데이터를 정리합시다 . Data Prep 섹션 에서 Sales Agg 테이블을 이동한 다음 데이터 모델 내에서 필요하지 않으므로 해당 테이블을 언로드합니다. 그런 다음 닫기 및 적용을 클릭합니다 .
이제 파워 쿼리 준비 작업이 완료되었습니다.
What-If 매개변수 생성
원래 작업에서 우리는 5일에서 10일, 15일에서 20일로 일수를 변경하려고 합니다. 이를 수행하는 가장 좋은 방법은 새로운 가상 매개 변수를 사용하는 것이라고 생각합니다 .
what-if 매개변수를 First N Business Days 라고 하고 해당 데이터 유형은 정수입니다. 최소값은 1씩 증가하고 최대값은 20으로 설정됩니다. 그런 다음 기본값은 사용자가 원하는 첫 번째 값인 5입니다.
이제 슬라이서 값을 캡처하기 위해 수확 측정값을 자동으로 생성하는 슬라이서가 있습니다.
결과로 테이블을 만들어 봅시다. Month & Year 차원을 캔버스에 넣은 다음 Month & Year 기준으로 정렬해 보겠습니다 .
이 필드를 제대로 정렬했으면 Total Sales 측정값을 삭제하고 확장하면 됩니다.
영업일 수에 대한 측정값 만들기
슬라이더 매개변수의 값을 살펴보고 영업일 수에 대해서만 계산하는 측정값을 하나 더 만들어야 합니다.
이 새 측정값을 Total Sales N Bus Days 라고 합니다 . 컨텍스트를 확실히 변경하고 있으므로 함수와 Total Sales 측정값 부터 시작하겠습니다 . Sales 테이블의 로 이것을 필터링할 것입니다 .
다음 단계는 슬라이더에 대해 고려하려는 조건을 작성하는 것입니다. 파워 쿼리에서 만든 영업일 인덱스가 있고 이것이 슬라이서의 수집된 값인 첫 N 영업일 값보다 작거나 같기를 원합니다.
예를 들어 슬라이더가 5에 있는 경우 일 인덱스가 5보다 작거나 같은 Sales 테이블의 모든 일을 원합니다.
그런 다음 비영업일을 제외하고 싶습니다. Date 테이블을 참조하고 IsBusinessDay 필드를 사용합니다. TRUE인 결과만 살펴보겠습니다.
마지막으로 월 및 연도 에 대한 컨텍스트를 다시 가져오고 측정을 종료합니다. 이 시점에서 진행하는 것이 좋습니다.
새 측정값을 테이블에 드롭해 보겠습니다.
슬라이더 슬라이서를 10일 표시로 가져갈 수 있으며 테이블은 10일 표시에서 동적으로 계산됩니다.
결론
이 LuckyTemplates 팁에서는 파워 쿼리 솔루션을 사용하여 유사 비교를 동적으로 수행하는 방법에 대해 설명했습니다. 이것을 막대 차트 또는 라인 차트에 넣을 수 있습니다.
예정된 일부 자습서에서는 DAX 솔루션을 살펴보고 KPI 스크롤러의 시각화를 구현합니다.
이 특정 튜토리얼에서 다루는 내용이 마음에 드셨다면 LuckyTemplates TV 채널 을 구독하는 것을 잊지 마십시오 .
파이썬에서 자기란 무엇인가: 실제 사례
R의 .rds 파일에서 개체를 저장하고 로드하는 방법을 배웁니다. 이 블로그에서는 R에서 LuckyTemplates로 개체를 가져오는 방법도 다룹니다.
이 DAX 코딩 언어 자습서에서는 GENERATE 함수를 사용하는 방법과 측정값 제목을 동적으로 변경하는 방법을 알아봅니다.
이 자습서에서는 다중 스레드 동적 시각적 개체 기술을 사용하여 보고서의 동적 데이터 시각화에서 통찰력을 만드는 방법을 다룹니다.
이 기사에서는 필터 컨텍스트를 살펴보겠습니다. 필터 컨텍스트는 모든 LuckyTemplates 사용자가 처음에 배워야 하는 주요 주제 중 하나입니다.
LuckyTemplates Apps 온라인 서비스가 다양한 소스에서 생성된 다양한 보고서 및 인사이트를 관리하는 데 어떻게 도움이 되는지 보여주고 싶습니다.
LuckyTemplates에서 측정 분기 및 DAX 수식 결합과 같은 기술을 사용하여 수익 마진 변경을 해결하는 방법을 알아봅니다.
이 자습서에서는 데이터 캐시의 구체화 아이디어와 결과 제공 시 DAX 성능에 미치는 영향에 대해 설명합니다.
지금까지 Excel을 계속 사용하고 있다면 지금이 비즈니스 보고 요구 사항에 LuckyTemplates를 사용하기 시작하는 가장 좋은 시기입니다.
LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것