DAX의 시간 인텔리전스: 시작 기간을 동적으로 선택하는 방법

이 블로그 게시물에서는 시간 인텔리전스의 몇 가지 골치 아픈 문제, 특히 주 세분성으로 인해 발생하는 문제와 1년의 불규칙한 주 수로 인해 발생할 수 있는 문제를 다룰 것입니다. DAX에서 정확한 시간 인텔리전스를 제공하기 위해 오프셋을 사용합니다.

오늘 흥미로운 시나리오가 있습니다. 이것은 최근 LuckyTemplates 포럼에서 몇 번 나왔습니다. 사람들이 원했던 것은 시각 자료(선 그래프 또는 막대 차트일 수 있음)를 가져와 시작 날짜에 동적으로 변경하는 것이었습니다. 이 블로그 하단에서 이 튜토리얼의 전체 비디오를 볼 수 있습니다.

DAX의 시간 인텔리전스: 시작 기간을 동적으로 선택하는 방법

이 경우에는 석유 배럴당 평균 현물 가격 에 대해 작업한 것과 동일한 데이터 세트를 사용했습니다 . 항상 1월 초에 시작하는 대신 시각적 개체를 클릭하고 다른 시작 날짜로 변경하지만 항상 1년 데이터를 표시할 수 있기를 원했습니다.

목차

DAX의 시간 인텔리전스 샘플 시나리오

이 기술을 수행하려는 여러 가지 이유가 있습니다. 계산 방법 측면에서 지속적으로 재조정되는 메트릭이 있는 경우 이를 사용할 수 있습니다. 재조정 기간 이후의 데이터만 표시하려고 할 수 있습니다.

이것을 사용하는 또 다른 이유는 이것을 애니메이션 방식으로 시각화하려는 경우입니다. 이것은 기본적으로 데이터를 가져 와서 재생 액세스를 클릭하면 동적으로 표시됩니다.

DAX의 시간 인텔리전스: 시작 기간을 동적으로 선택하는 방법

이 시각적 개체에서는 시작 날짜를 매월 변경하여 시간이 지남에 따라 12개월 동안 어떻게 변경되는지 보여 줄 수 있습니다. 이것은 다양한 비즈니스 사례에 대한 흥미롭고 유용한 시각적 개체이지만 이론적으로는 DAX 및 데이터 모델링과 관련된 여러 주요 문제를 나타냅니다.

LuckyTemplates로 이동하여 먼저 데이터 모델을 살펴보겠습니다. 이것은 확장된 날짜 테이블 과 날짜에 연결된 현물 가격 테이블이 있는 정말 간단한 데이터 모델입니다 .

DAX의 시간 인텔리전스: 시작 기간을 동적으로 선택하는 방법

DAX에서 시간 인텔리전스를 위한 오프셋 사용

우리가 작업할 것 중 하나는 오프셋 입니다 . 확장 날짜 테이블의 오프셋은 동적으로 계산됩니다. 보고서를 새로 고치거나 열 때마다 M 코드를 통과합니다. 예를 들어 월별 오프셋에서 현재 달은 0, 이전 달은 -1, 이전 두 달은 -2로 할당합니다. 미래를 내다보며 다음 달에 +1을 할당하고 앞으로 두 달 동안 +2를 할당합니다.

이것은 간단한 개념이지만 DAX에서 시간 인텔리전스를 처리하고 , 분기주를 사용하여 작업할 때 매우 강력합니다 . 오프셋을 사용하지 않는 경우 때때로 계산에서 상당한 복잡성이 발생합니다.

오프셋을 사용한다는 것은 한 달 뒤로 돌아가는 것은 항상 -1이고 한 달 앞으로 가는 것은 연도의 어디에 있든 항상 +1인 일련의 숫자를 사용하는 것을 의미합니다.

DAX에서 시간 인텔리전스를 위한 러버 덕 전략 구현

과거에는 DAX 작성을 시작하기 전에 전략을 소리내어 말로 표현하는 고무 더킹 에 대해 이야기했습니다.

DAX의 시간 인텔리전스: 시작 기간을 동적으로 선택하는 방법

DAX의 시간 인텔리전스를 사용하여 월별 컨텍스트에서 이 문제를 어떻게 처리할지 크게 생각하고 있습니다. 선택한 연도와 월을 기준으로 무언가를 시작하고 연결이 끊어진 테이블을 사용하여 선택합니다. 생각해 보면 다른 모든 선택에는 연도가 교차(1월 제외)하기 때문입니다.

3월부터 시작하여 12개월을 원하고 다음 해에는 최소 2개월이 필요하다고 가정해 보겠습니다. 연결된 슬라이서를 사용하는 경우 해당 연도에 대해서만 필터링할 수 있으며 다음 연도로 필터링할 수 없습니다.

시작 날짜에서 오프셋 수확

월과 연도에 대해 연결된 테이블을 사용하여 이 작업을 수행해 보겠습니다. 먼저 시작 날짜를 처리하는 첫 번째 오프셋을 수집해야 합니다.

그런 다음 해당 오프셋을 12개월 앞으로 이동한 다음 해당 오프셋 집합 내에 있는 날짜만 확인하려고 합니다. DAX에서 어떻게 보이는지 보여드리겠습니다.

월간 범위 계산

이는 내 범위 월간 에 대한 측정값 으로, 연도(연결이 끊긴 연도 테이블에서 수집)와 월(연결이 끊긴 월 테이블에서 수집)을 선택합니다.

또한 선택하지 않은 경우 기본적으로 1월로 설정되는 다른 매개변수도 있습니다. 이 매개변수는 주로 디버깅 목적으로만 사용됩니다.

DAX의 시간 인텔리전스: 시작 기간을 동적으로 선택하는 방법

시작 및 종료 월 오프셋 계산

MAX 오프셋을 계산하여 시작 월 오프셋을 살펴보겠습니다 . 날짜 테이블에서 모든 필터를 제거하고 선택한 월과 연도로 필터링합니다. 매월 해당 월과 연도에 해당하는 오프셋이 하나만 있어야 합니다.

DAX의 시간 인텔리전스: 시작 기간을 동적으로 선택하는 방법

그 시점부터 시작 월 오프셋 + 11개월인 종료 월 오프셋을 가져올 수 있습니다 .

DAX의 시간 인텔리전스: 시작 기간을 동적으로 선택하는 방법

그런 다음 선택한 각 날짜를 보고 초기 월 오프셋과 종료 월 오프셋에 속하는지 확인합니다. 해당 기간 내에 있으면 1을 주고 그렇지 않으면 0을 줍니다.

DAX의 시간 인텔리전스: 시작 기간을 동적으로 선택하는 방법

시각적 개체에서 월별 보기로 돌아가면 1로 설정한 범위 내 시각적 개체를 볼 수 있습니다 . 따라서 시작부터 오프셋 종료까지 해당 월만 표시됩니다. 예를 들어 2월을 클릭하면 2월에서 1월로 표시됩니다.

DAX의 시간 인텔리전스: 시작 기간을 동적으로 선택하는 방법

주간 범위 계산

이것이 주간 관점에서 어떻게 보이는지 봅시다. 비주얼은 처음에는 괜찮게 시작해서 1주차부터 52주차까지 진행됩니다. 지금까지는 아주 좋습니다.

DAX의 시간 인텔리전스: 시작 기간을 동적으로 선택하는 방법

그러나 연도 슬라이서에서 다른 연도를 클릭하면 52주째로 표시되는 반면 일부는 53주째로 표시되어 많은 문제가 발생합니다. 이 예에서 문제가 나타나기 시작했음을 알 수 있습니다.

2020년 15주 시작 기간이 있지만 종료 기간은 2021년 14주 대신 2021년 13 주입니다 .

DAX의 시간 인텔리전스: 시작 기간을 동적으로 선택하는 방법

1주차로 돌아가면 정상적으로 시작하지만 52주차에 끝나는 것을 볼 수 있습니다. 여기에서 53주차 계산을 보면 2020년과 2021년의 최대 주 수는 53주입니다. 이것은 주 단위로 작동하지 않습니다.

DAX의 시간 인텔리전스: 시작 기간을 동적으로 선택하는 방법

이 작업을 수행하기 위해 무엇을 할 수 있는지 봅시다. 이 부분에서 바로 DAX 계산을 수정해야 합니다.

DAX의 시간 인텔리전스: 시작 기간을 동적으로 선택하는 방법

어떤 경우에는 1년에 52주만 있을 때 51이 맞지만 53주가 있는 해에는 마지막 기간을 생략하기 때문입니다. 이것은 2020년과 2021년에서 계산이 마지막 기간을 제거한 몇 주 동안 동적 시각적 개체에서 본 것입니다.

이 문제를 해결하기 위해 범위 내 주간 오류 측정 으로 이동합니다 . 실제로는 이전 측정보다 간단해 보입니다. 시작 오프셋 측정이 있었고 최대 오프셋을 계산했습니다. 그런 다음 날짜에서 필터를 제거한 다음 올바른 오프셋으로 이어질 것이라는 가정하에 선택한 주 및 선택한 연도에 필터를 적용했습니다.

DAX의 시간 인텔리전스: 시작 기간을 동적으로 선택하는 방법

그러나 이것은 최대 오프셋 또는 최소 오프셋을 사용하는 것이 중요하지 않기 때문에 작동하지 않습니다. CALCULATE 문에 네이키드 열을 넣지 않도록 애그리게이터를 래핑하는 것뿐입니다.

그러나 여기에서 ISO WeekNumber 로 돌아가면 연도 및 주 번호가 해당 첫 번째 기간의 주간 오프셋을 고유하게 결정하지 않는다는 것을 알 수 있습니다.

DAX의 시간 인텔리전스: 시작 기간을 동적으로 선택하는 방법

나는 이것을하는 방탄 방법을 생각해 냈습니다. MIN을 사용할 수 있지만 이 Week1 Offset 측정값을 만드는 것이 더 합리적입니다 . 1주차 오프셋을 얻기 위해 2주차는 분할되지 않기 때문에 처리하고 있습니다. 1년에 52주가 있든 53주가 있든 관계없이 2주는 그대로 유지됩니다.

DAX의 시간 인텔리전스: 시작 기간을 동적으로 선택하는 방법

이 계산에서는 오프셋을 얻기 위해 2주차까지 필터링합니다. 그런 다음 2주차 오프셋을 받으면 여기에서 1을 뺍니다. 이렇게 하면 분명하게 1주차 오프셋이 제공됩니다. 이것은 결국 우리의 문제를 해결합니다.

매주 내 범위 계산

그런 다음 범위 내 주간 측정 으로 돌아가서 수확 번호가 1주차인 경우 1주차 오프셋을 계산하는 IF 문을 작성합니다. 1주가 아닌 경우 이전 월별 계산에서와 마찬가지로 시작 주 오프셋을 계산합니다.

DAX의 시간 인텔리전스: 시작 기간을 동적으로 선택하는 방법

그런 다음 종료 주 오프셋은 시작 주 오프셋 + 최대 주 번호(52 또는 53일 수 있음)가 됩니다. 그런 다음 시작 오프셋을 두 번 계산하지 않도록 1을 뺍니다.

DAX의 시간 인텔리전스: 시작 기간을 동적으로 선택하는 방법

시작 오프셋과 끝 오프셋 사이에 있는 항목은 모두 1을 얻고 그렇지 않은 항목은 모두 0을 가져오는 주를 필터링하기 위해 월간 범위에 사용한 것과 동일한 구성을 수행할 수 있습니다.

그런 다음 범위 내 주간 측정값을 필터 창에 배치합니다. 모든 것이 확인되고 정확하게 보입니다.

DAX의 시간 인텔리전스: 시작 기간을 동적으로 선택하는 방법

재생 축을 클릭하고 주 단위로 실행할 수 있습니다. 월 컨텍스트에서와 마찬가지로 제대로 작동하는 것을 볼 수 있습니다.

결론

이것은 DAX의 시간 인텔리전스에 대해 매우 깊이 파고들어 주 번호와 관련된 몇 가지 문제를 해결할 수 있는 방법에 대해 논의했습니다. 문제가 있는 주 상황을 처리할 때 이 자습서가 도움이 되었고 도구 상자에 몇 가지 추가 도구를 제공했기를 바랍니다.

이 특정 튜토리얼에서 다루는 내용이 마음에 드셨다면 LuckyTemplates TV 채널을 구독하는 것을 잊지 마십시오. 저와 다양한 콘텐츠 제작자가 항상 제공하는 엄청난 양의 콘텐츠가 있으며 모두 LuckyTemplates 및 Power Platform을 사용하는 방식을 개선하는 데 전념하고 있습니다.

Leave a Comment

SharePoint의 계산된 열 | 개요

SharePoint의 계산된 열 | 개요

SharePoint에서 계산된 열의 중요성과 목록에서 자동 계산 및 데이터 수집을 수행하는 방법을 알아보세요.

Power Apps에서 변수 만들기: 컬렉션 작업

Power Apps에서 변수 만들기: 컬렉션 작업

컬렉션 변수를 사용하여 Power Apps에서 변수 만드는 방법 및 유용한 팁에 대해 알아보세요.

Microsoft Flow HTTP 트리거 | Power Automate 자습서

Microsoft Flow HTTP 트리거 | Power Automate 자습서

Microsoft Flow HTTP 트리거가 수행할 수 있는 작업과 Microsoft Power Automate의 예를 사용하여 이를 사용하는 방법을 알아보고 이해하십시오!

Power Automate 흐름: 사용법 및 유형 설명

Power Automate 흐름: 사용법 및 유형 설명

Power Automate 흐름 및 용도에 대해 자세히 알아보세요. 다양한 작업 및 시나리오에 사용할 수 있는 다양한 유형의 흐름에 대해 설명합니다.

흐름에서 Power Automate 종료 작업 제어

흐름에서 Power Automate 종료 작업 제어

조건이 충족되지 않는 경우 흐름에서 작업을 종료하는 Power Automate 종료 작업 컨트롤을 올바르게 사용하는 방법을 알아봅니다.

PowerApps 시작 기능: 앱에서 다른 서비스를 시작하는 방법

PowerApps 시작 기능: 앱에서 다른 서비스를 시작하는 방법

PowerApps 실행 기능에 대해 자세히 알아보고 자신의 앱에서 바로 웹사이트, 전화, 이메일 및 기타 앱과 같은 기타 서비스를 실행하십시오.

Power Automate의 HTTP 요청 – 소개

Power Automate의 HTTP 요청 – 소개

타사 애플리케이션 통합과 관련하여 Power Automate의 HTTP 요청이 작동하는 방식을 배우고 이해합니다.

Power Automate Desktop: 마우스 클릭 보내기 기능을 사용하는 방법

Power Automate Desktop: 마우스 클릭 보내기 기능을 사용하는 방법

Power Automate Desktop에서 Send Mouse Click을 사용하는 방법을 알아보고 이것이 어떤 이점을 제공하고 흐름 성능을 개선하는지 알아보십시오.

PowerApps 변수: 컨텍스트 및 전역 변수 식별

PowerApps 변수: 컨텍스트 및 전역 변수 식별

PowerApps 변수의 작동 방식, 다양한 종류, 각 변수가 앱에 기여할 수 있는 사항을 알아보세요.

Power Automate에서 실행할 데스크톱 흐름 예약

Power Automate에서 실행할 데스크톱 흐름 예약

이 자습서에서는 Power Automate를 사용하여 웹 또는 데스크톱에서 작업을 자동화하는 방법을 알려줍니다. 데스크톱 흐름 예약에 대한 포괄적인 가이드를 제공합니다.