파이썬에서 자기란 무엇인가: 실제 사례
파이썬에서 자기란 무엇인가: 실제 사례
이 블로그 게시물에서는 시간 인텔리전스의 몇 가지 골치 아픈 문제, 특히 주 세분성으로 인해 발생하는 문제와 1년의 불규칙한 주 수로 인해 발생할 수 있는 문제를 다룰 것입니다. DAX에서 정확한 시간 인텔리전스를 제공하기 위해 오프셋을 사용합니다.
오늘 흥미로운 시나리오가 있습니다. 이것은 최근 LuckyTemplates 포럼에서 몇 번 나왔습니다. 사람들이 원했던 것은 시각 자료(선 그래프 또는 막대 차트일 수 있음)를 가져와 시작 날짜에 동적으로 변경하는 것이었습니다. 이 블로그 하단에서 이 튜토리얼의 전체 비디오를 볼 수 있습니다.
이 경우에는 석유 배럴당 평균 현물 가격 에 대해 작업한 것과 동일한 데이터 세트를 사용했습니다 . 항상 1월 초에 시작하는 대신 시각적 개체를 클릭하고 다른 시작 날짜로 변경하지만 항상 1년 데이터를 표시할 수 있기를 원했습니다.
목차
DAX의 시간 인텔리전스 샘플 시나리오
이 기술을 수행하려는 여러 가지 이유가 있습니다. 계산 방법 측면에서 지속적으로 재조정되는 메트릭이 있는 경우 이를 사용할 수 있습니다. 재조정 기간 이후의 데이터만 표시하려고 할 수 있습니다.
이것을 사용하는 또 다른 이유는 이것을 애니메이션 방식으로 시각화하려는 경우입니다. 이것은 기본적으로 데이터를 가져 와서 재생 액세스를 클릭하면 동적으로 표시됩니다.
이 시각적 개체에서는 시작 날짜를 매월 변경하여 시간이 지남에 따라 12개월 동안 어떻게 변경되는지 보여 줄 수 있습니다. 이것은 다양한 비즈니스 사례에 대한 흥미롭고 유용한 시각적 개체이지만 이론적으로는 DAX 및 데이터 모델링과 관련된 여러 주요 문제를 나타냅니다.
LuckyTemplates로 이동하여 먼저 데이터 모델을 살펴보겠습니다. 이것은 확장된 날짜 테이블 과 날짜에 연결된 현물 가격 테이블이 있는 정말 간단한 데이터 모델입니다 .
DAX에서 시간 인텔리전스를 위한 오프셋 사용
우리가 작업할 것 중 하나는 오프셋 입니다 . 확장 날짜 테이블의 오프셋은 동적으로 계산됩니다. 보고서를 새로 고치거나 열 때마다 M 코드를 통과합니다. 예를 들어 월별 오프셋에서 현재 달은 0, 이전 달은 -1, 이전 두 달은 -2로 할당합니다. 미래를 내다보며 다음 달에 +1을 할당하고 앞으로 두 달 동안 +2를 할당합니다.
이것은 간단한 개념이지만 DAX에서 시간 인텔리전스를 처리하고 월 , 분기 및 주를 사용하여 작업할 때 매우 강력합니다 . 오프셋을 사용하지 않는 경우 때때로 계산에서 상당한 복잡성이 발생합니다.
오프셋을 사용한다는 것은 한 달 뒤로 돌아가는 것은 항상 -1이고 한 달 앞으로 가는 것은 연도의 어디에 있든 항상 +1인 일련의 숫자를 사용하는 것을 의미합니다.
DAX에서 시간 인텔리전스를 위한 러버 덕 전략 구현
과거에는 DAX 작성을 시작하기 전에 전략을 소리내어 말로 표현하는 고무 더킹 에 대해 이야기했습니다.
DAX의 시간 인텔리전스를 사용하여 월별 컨텍스트에서 이 문제를 어떻게 처리할지 크게 생각하고 있습니다. 선택한 연도와 월을 기준으로 무언가를 시작하고 연결이 끊어진 테이블을 사용하여 선택합니다. 생각해 보면 다른 모든 선택에는 연도가 교차(1월 제외)하기 때문입니다.
3월부터 시작하여 12개월을 원하고 다음 해에는 최소 2개월이 필요하다고 가정해 보겠습니다. 연결된 슬라이서를 사용하는 경우 해당 연도에 대해서만 필터링할 수 있으며 다음 연도로 필터링할 수 없습니다.
시작 날짜에서 오프셋 수확
월과 연도에 대해 연결된 테이블을 사용하여 이 작업을 수행해 보겠습니다. 먼저 시작 날짜를 처리하는 첫 번째 오프셋을 수집해야 합니다.
그런 다음 해당 오프셋을 12개월 앞으로 이동한 다음 해당 오프셋 집합 내에 있는 날짜만 확인하려고 합니다. DAX에서 어떻게 보이는지 보여드리겠습니다.
월간 범위 계산
이는 내 범위 월간 에 대한 측정값 으로, 연도(연결이 끊긴 연도 테이블에서 수집)와 월(연결이 끊긴 월 테이블에서 수집)을 선택합니다.
또한 선택하지 않은 경우 기본적으로 1월로 설정되는 다른 매개변수도 있습니다. 이 매개변수는 주로 디버깅 목적으로만 사용됩니다.
시작 및 종료 월 오프셋 계산
MAX 오프셋을 계산하여 시작 월 오프셋을 살펴보겠습니다 . 날짜 테이블에서 모든 필터를 제거하고 선택한 월과 연도로 필터링합니다. 매월 해당 월과 연도에 해당하는 오프셋이 하나만 있어야 합니다.
그 시점부터 시작 월 오프셋 + 11개월인 종료 월 오프셋을 가져올 수 있습니다 .
그런 다음 선택한 각 날짜를 보고 초기 월 오프셋과 종료 월 오프셋에 속하는지 확인합니다. 해당 기간 내에 있으면 1을 주고 그렇지 않으면 0을 줍니다.
시각적 개체에서 월별 보기로 돌아가면 1로 설정한 범위 내 시각적 개체를 볼 수 있습니다 . 따라서 시작부터 오프셋 종료까지 해당 월만 표시됩니다. 예를 들어 2월을 클릭하면 2월에서 1월로 표시됩니다.
주간 범위 계산
이것이 주간 관점에서 어떻게 보이는지 봅시다. 비주얼은 처음에는 괜찮게 시작해서 1주차부터 52주차까지 진행됩니다. 지금까지는 아주 좋습니다.
그러나 연도 슬라이서에서 다른 연도를 클릭하면 52주째로 표시되는 반면 일부는 53주째로 표시되어 많은 문제가 발생합니다. 이 예에서 문제가 나타나기 시작했음을 알 수 있습니다.
2020년 15주 시작 기간이 있지만 종료 기간은 2021년 14주 대신 2021년 13 주입니다 .
1주차로 돌아가면 정상적으로 시작하지만 52주차에 끝나는 것을 볼 수 있습니다. 여기에서 53주차 계산을 보면 2020년과 2021년의 최대 주 수는 53주입니다. 이것은 주 단위로 작동하지 않습니다.
이 작업을 수행하기 위해 무엇을 할 수 있는지 봅시다. 이 부분에서 바로 DAX 계산을 수정해야 합니다.
어떤 경우에는 1년에 52주만 있을 때 51이 맞지만 53주가 있는 해에는 마지막 기간을 생략하기 때문입니다. 이것은 2020년과 2021년에서 계산이 마지막 기간을 제거한 몇 주 동안 동적 시각적 개체에서 본 것입니다.
이 문제를 해결하기 위해 범위 내 주간 오류 측정 으로 이동합니다 . 실제로는 이전 측정보다 간단해 보입니다. 시작 오프셋 측정이 있었고 최대 오프셋을 계산했습니다. 그런 다음 날짜에서 필터를 제거한 다음 올바른 오프셋으로 이어질 것이라는 가정하에 선택한 주 및 선택한 연도에 필터를 적용했습니다.
그러나 이것은 최대 오프셋 또는 최소 오프셋을 사용하는 것이 중요하지 않기 때문에 작동하지 않습니다. CALCULATE 문에 네이키드 열을 넣지 않도록 애그리게이터를 래핑하는 것뿐입니다.
그러나 여기에서 ISO WeekNumber 로 돌아가면 연도 및 주 번호가 해당 첫 번째 기간의 주간 오프셋을 고유하게 결정하지 않는다는 것을 알 수 있습니다.
나는 이것을하는 방탄 방법을 생각해 냈습니다. MIN을 사용할 수 있지만 이 Week1 Offset 측정값을 만드는 것이 더 합리적입니다 . 1주차 오프셋을 얻기 위해 2주차는 분할되지 않기 때문에 처리하고 있습니다. 1년에 52주가 있든 53주가 있든 관계없이 2주는 그대로 유지됩니다.
이 계산에서는 오프셋을 얻기 위해 2주차까지 필터링합니다. 그런 다음 2주차 오프셋을 받으면 여기에서 1을 뺍니다. 이렇게 하면 분명하게 1주차 오프셋이 제공됩니다. 이것은 결국 우리의 문제를 해결합니다.
매주 내 범위 계산
그런 다음 범위 내 주간 측정 으로 돌아가서 수확 번호가 1주차인 경우 1주차 오프셋을 계산하는 IF 문을 작성합니다. 1주가 아닌 경우 이전 월별 계산에서와 마찬가지로 시작 주 오프셋을 계산합니다.
그런 다음 종료 주 오프셋은 시작 주 오프셋 + 최대 주 번호(52 또는 53일 수 있음)가 됩니다. 그런 다음 시작 오프셋을 두 번 계산하지 않도록 1을 뺍니다.
시작 오프셋과 끝 오프셋 사이에 있는 항목은 모두 1을 얻고 그렇지 않은 항목은 모두 0을 가져오는 주를 필터링하기 위해 월간 범위에 사용한 것과 동일한 구성을 수행할 수 있습니다.
그런 다음 범위 내 주간 측정값을 필터 창에 배치합니다. 모든 것이 확인되고 정확하게 보입니다.
재생 축을 클릭하고 주 단위로 실행할 수 있습니다. 월 컨텍스트에서와 마찬가지로 제대로 작동하는 것을 볼 수 있습니다.
결론
이것은 DAX의 시간 인텔리전스에 대해 매우 깊이 파고들어 주 번호와 관련된 몇 가지 문제를 해결할 수 있는 방법에 대해 논의했습니다. 문제가 있는 주 상황을 처리할 때 이 자습서가 도움이 되었고 도구 상자에 몇 가지 추가 도구를 제공했기를 바랍니다.
이 특정 튜토리얼에서 다루는 내용이 마음에 드셨다면 LuckyTemplates TV 채널을 구독하는 것을 잊지 마십시오. 저와 다양한 콘텐츠 제작자가 항상 제공하는 엄청난 양의 콘텐츠가 있으며 모두 LuckyTemplates 및 Power Platform을 사용하는 방식을 개선하는 데 전념하고 있습니다.
파이썬에서 자기란 무엇인가: 실제 사례
R의 .rds 파일에서 개체를 저장하고 로드하는 방법을 배웁니다. 이 블로그에서는 R에서 LuckyTemplates로 개체를 가져오는 방법도 다룹니다.
이 DAX 코딩 언어 자습서에서는 GENERATE 함수를 사용하는 방법과 측정값 제목을 동적으로 변경하는 방법을 알아봅니다.
이 자습서에서는 다중 스레드 동적 시각적 개체 기술을 사용하여 보고서의 동적 데이터 시각화에서 통찰력을 만드는 방법을 다룹니다.
이 기사에서는 필터 컨텍스트를 살펴보겠습니다. 필터 컨텍스트는 모든 LuckyTemplates 사용자가 처음에 배워야 하는 주요 주제 중 하나입니다.
LuckyTemplates Apps 온라인 서비스가 다양한 소스에서 생성된 다양한 보고서 및 인사이트를 관리하는 데 어떻게 도움이 되는지 보여주고 싶습니다.
LuckyTemplates에서 측정 분기 및 DAX 수식 결합과 같은 기술을 사용하여 수익 마진 변경을 해결하는 방법을 알아봅니다.
이 자습서에서는 데이터 캐시의 구체화 아이디어와 결과 제공 시 DAX 성능에 미치는 영향에 대해 설명합니다.
지금까지 Excel을 계속 사용하고 있다면 지금이 비즈니스 보고 요구 사항에 LuckyTemplates를 사용하기 시작하는 가장 좋은 시기입니다.
LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것