DAX 최적화: 숨겨진 DAX 함정을 찾을 수 있는 위치

DAX 최적화: 숨겨진 DAX 함정을 찾을 수 있는 위치

오늘은 숨겨진 DAX 함정이라고 부르는 것에 집중하고 싶습니다. 이러한 상황이 발생하면 DAX가 제대로 표시되지만 제대로 작동하지 않기 때문에 미쳐버릴 것 같은 느낌이 들 것입니다. 이러한 상황이 발생하는 경우와 이에 대해 수행할 수 있는 작업을 안내하고 그 과정에서 몇 가지 일반적인 DAX 최적화 모범 사례에 대해서도 설명합니다. 이 블로그 하단에서 이 튜토리얼의 전체 비디오를 볼 수 있습니다.

먼저 우리가 여기서 작업하고 있는 것을 살펴보겠습니다. 우리는 Internet Movie Database에서 약 10년 간의 데이터를 가지고 있습니다. 팩트 테이블은 매우 간단하며 등급 데이터, 예산 데이터 및 총 데이터가 있습니다.

오늘은 전 세계 매출에 대해 알아보겠습니다.

DAX 최적화: 숨겨진 DAX 함정을 찾을 수 있는 위치

확장 날짜 테이블도 있습니다. 이것은 날짜 테이블과 팩트 테이블을 기반으로 한 시간 인텔리전스 분석이 될 것입니다.

DAX 최적화: 숨겨진 DAX 함정을 찾을 수 있는 위치

목차

연간 전 세계 총액

우리는 정말 일반적이고 단순한 일을 하고 싶습니다. Total Worldwide Gross는 백분율로 변환하려는 매우 단순한 합계 합계 측정값입니다.

DAX 최적화: 숨겨진 DAX 함정을 찾을 수 있는 위치

이를 위해 분자( Total Worldwide Gross measure)와 분모( Total Worldwide Gross measure, 그러나 연도 필터에서 컨텍스트를 제거함)를 사용합니다.

DAX 최적화: 숨겨진 DAX 함정을 찾을 수 있는 위치

코드를 읽을 때 더 직관적이라고 생각하기 때문에 사용했지만 선호하는 경우에도 마찬가지입니다. 결과를 얻기 위해 분자를 분모로 나누기만 하면 됩니다.

결과 측정값을 가져와서 테이블에 놓으면 우리가 예상한 대로 정확하게 작동하는 것을 볼 수 있습니다. 하단에 100%가 표시되고 연도가 개별 백분율로 변환됩니다. 지금까지는 좋았고 아직 문제가 발생하지 않았습니다.

DAX 최적화: 숨겨진 DAX 함정을 찾을 수 있는 위치

분기당 전 세계 총액

분기별로 가는 비슷한 상황을 살펴보겠습니다. 이 측정은 여름 영화 시즌의 총 수익이 연초와 다르고 오스카 시즌으로 이어지는 연말로 갈수록 다르다는 가설이 있기 때문에 유용할 수 있습니다.

다시, 우리는 연도 대신 분기 번호에 대한 REMOVEFILTERS 함수를 사용하여 정확히 동일한 측정값을 갖습니다.

DAX 최적화: 숨겨진 DAX 함정을 찾을 수 있는 위치

방금 만든 측정값을 테이블에 놓으면 예상대로 정확하게 수행됩니다.

DAX 최적화: 숨겨진 DAX 함정을 찾을 수 있는 위치

월별 및 연도별 전 세계 총액

세 번째 경우를 살펴보겠습니다. 정말 흔할 수 있는 것으로 월별, 연도별로 살펴보고자 합니다.

DAX 최적화: 숨겨진 DAX 함정을 찾을 수 있는 위치

그리고 다시, 우리는 이전과 같은 척도를 사용할 것입니다. 하지만 이번에는 월과 연도에 대한 필터를 제거하겠습니다.

DAX 최적화: 숨겨진 DAX 함정을 찾을 수 있는 위치

그것을 우리 테이블에 떨어뜨리자. 갑자기 작동하지 않습니다.

DAX 최적화: 숨겨진 DAX 함정을 찾을 수 있는 위치

우리는 그것에 대해 작동하지 않는 것을 말할 수 있습니다. 우리는 Worldwide Gross 척도가 작동한다는 것을 알고 있으므로 분자는 괜찮지만 분모는 그렇지 않다는 것을 의미합니다. 이전의 각 경우에서 REMOVEFILTERS 함수는 필터를 적절하게 제거했지만 여기서는 확실히 제거하지 않았습니다.

여기 결과에서 반환한 내용을 변경하여 실제로 이를 테스트할 수 있습니다.

DAX 최적화: 숨겨진 DAX 함정을 찾을 수 있는 위치

결과 대신 분모를 사용합시다. 이 형식은 백분율로 표시되므로 약간 웃기게 보일 것입니다.

DAX 최적화: 숨겨진 DAX 함정을 찾을 수 있는 위치

분모에 대해 우리가 얻어야 하는 것은 모든 행에서 같은 숫자이지만 그렇지 않습니다.

DAX 최적화: 숨겨진 DAX 함정을 찾을 수 있는 위치

월과 연도에 대한 필터를 제거하지 않는다는 것을 알 수 있으며 월과 연도가 텍스트에 있기 때문이라고 생각합니다.

DAX 최적화: 숨겨진 DAX 함정을 찾을 수 있는 위치

하지만 이전 분기도 텍스트로 표현되었으므로 단순히 텍스트 때문만은 아닙니다. 정리만 하면 됩니다. 정렬하지 않고 필드를 놓으면 사전순으로 정렬됩니다.

확장 날짜 테이블에서 Month & Year 라는 필드를 살펴보겠습니다 . 정렬 기준 열 에서 이를 보면 흥미로운 것을 볼 수 있습니다.

해당 열이 MonthnYear라는 숫자로 정렬된 것을 볼 수 있습니다. 한 열을 다른 열로 정렬하면 해당 정렬 열이 실제로 필터 컨텍스트의 일부가 됩니다. 이것이 이 계산을 버리는 것입니다.

DAX 최적화: 숨겨진 DAX 함정을 찾을 수 있는 위치

측정값으로 돌아가서 정렬로 사용하는 월과 연도의 컨텍스트를 제거해 보겠습니다.

DAX 최적화: 숨겨진 DAX 함정을 찾을 수 있는 위치

이제 우리는 적절한 백분율로 계산된 월과 연도를 정확하게 얻고 있습니다.

DAX 최적화: 숨겨진 DAX 함정을 찾을 수 있는 위치

필터 컨텍스트를 제거할 때 정렬될 때 이를 수행하기 위해 두 개의 필드가 필요합니다 . 여기서 두 개의 필드를 수행하는 대신 전체 날짜 테이블에서 필터를 제거할 수 없는 이유는 무엇입니까?

대답은 가능하다는 것입니다. 각 열이 날짜 테이블의 일부이기 때문에 이것은 우리가 이야기한 세 가지 예에 대해 작동할 것입니다. 해당 테이블에서 모든 필터 컨텍스트를 제거하면 세 가지 경우 모두에 대해 작동하지만 실제로는 좋지 않습니다.

일반적인 DAX 최적화 원칙에 따라 원하는 결과를 얻는 데 필요한 만큼 필터 컨텍스트를 제거해야 합니다.

대부분의 경우 이를 표 형식으로 표시하지 않을 것입니다. 이를 매트릭스로 표시하고 동일한 열에 두 개의 서로 다른 세분성이 있기 때문에 더 복잡한 측정이 필요합니다. 이 측정은 복잡해 보이지만 실제로는 그렇지 않습니다.

DAX 최적화: 숨겨진 DAX 함정을 찾을 수 있는 위치

이것은 우리가 이미 수행한 작업의 확장일 뿐입니다. 이 DAX 최적화 계산의 첫 번째 부분은 다양한 세분성의 분모를 보여줍니다. 월, 연도 및 전체 테이블에 대한 필터 컨텍스트를 제거합니다.

DAX 최적화: 숨겨진 DAX 함정을 찾을 수 있는 위치

계산의 두 번째 부분에서는 SWITCH TRUE를 사용했습니다. 이 기능을 사용하려면 가장 구체적인 것부터 가장 덜 구체적인 것으로 이동해야 합니다. 월은 우리의 가장 좁고 구체적인 범위이므로 여기에서 시작합니다. 식별한 두 필드를 사용하여 컨텍스트를 제거해야 합니다.

DAX 최적화: 숨겨진 DAX 함정을 찾을 수 있는 위치

연도 범위의 경우 연도의 컨텍스트를 제거하고 전체 테이블의 컨텍스트를 제거해야 합니다.

DAX 최적화: 숨겨진 DAX 함정을 찾을 수 있는 위치

전체 날짜 테이블 에서 컨텍스트를 가져오고 제거하는 경우 어떤 일이 발생하는지 살펴보겠습니다 . 세 가지 경우 모두에 대해 전체 날짜 테이블에서 컨텍스트를 제거하는 다른 측정을 사용합니다.

DAX 최적화: 숨겨진 DAX 함정을 찾을 수 있는 위치

측정값이 컨텍스트를 과도하게 제거하는 것을 볼 수 있습니다. 해당 연도에 대한 각 달의 기여도를 계산하는 대신 전체 데이터 세트에 대한 해당 월의 기여도를 계산합니다. 전체 테이블에서 컨텍스트를 제거하는 것은 메스가 필요할 때 무딘 도구에 불과하기 때문에 이것은 우리가 원하는 것이 아닙니다.

결론

행렬이 있고 제거할 컨텍스트를 신중하게 제어해야 하는 경우가 많이 있습니다. 전체 테이블에서 컨텍스트를 제거하면 이러한 종류의 문제가 발생합니다.

이 상황이 발생하면(언젠가는 변함없이) 이 DAX 최적화 게시물에서 논의한 숨겨진 함정으로 인식하고 같은 좌절감 없이 피할 수 있기를 바랍니다. 처음 보았을 때 내 DAX가 제대로 작동하지 않는 이유를 알 수 없었습니다.

이 특정 자습서에서 다루는 DAX 최적화 주제가 마음에 드셨다면 LuckyTemplates TV 채널을 구독하십시오 . 저와 다양한 콘텐츠 작성자가 항상 제공하는 엄청난 양의 콘텐츠가 있습니다. 이들 모두는 LuckyTemplates 및 Power Platform을 사용하는 방식을 개선하는 데 전념하고 있습니다.


파이썬에서 자기란 무엇인가: 실제 사례

파이썬에서 자기란 무엇인가: 실제 사례

파이썬에서 자기란 무엇인가: 실제 사례

R에서 RDS 파일을 저장하고 로드하는 방법

R에서 RDS 파일을 저장하고 로드하는 방법

R의 .rds 파일에서 개체를 저장하고 로드하는 방법을 배웁니다. 이 블로그에서는 R에서 LuckyTemplates로 개체를 가져오는 방법도 다룹니다.

첫 N 영업일 재방문 – DAX 코딩 언어 솔루션

첫 N 영업일 재방문 – DAX 코딩 언어 솔루션

이 DAX 코딩 언어 자습서에서는 GENERATE 함수를 사용하는 방법과 측정값 제목을 동적으로 변경하는 방법을 알아봅니다.

LuckyTemplates에서 다중 스레드 동적 시각적 개체 기술을 사용한 인사이트 쇼케이스

LuckyTemplates에서 다중 스레드 동적 시각적 개체 기술을 사용한 인사이트 쇼케이스

이 자습서에서는 다중 스레드 동적 시각적 개체 기술을 사용하여 보고서의 동적 데이터 시각화에서 통찰력을 만드는 방법을 다룹니다.

LuckyTemplates의 컨텍스트 필터링 소개

LuckyTemplates의 컨텍스트 필터링 소개

이 기사에서는 필터 컨텍스트를 살펴보겠습니다. 필터 컨텍스트는 모든 LuckyTemplates 사용자가 처음에 배워야 하는 주요 주제 중 하나입니다.

LuckyTemplates 온라인 서비스에서 앱을 사용하기 위한 최고의 팁

LuckyTemplates 온라인 서비스에서 앱을 사용하기 위한 최고의 팁

LuckyTemplates Apps 온라인 서비스가 다양한 소스에서 생성된 다양한 보고서 및 인사이트를 관리하는 데 어떻게 도움이 되는지 보여주고 싶습니다.

시간 경과에 따른 이익 마진 변화 분석 - LuckyTemplates 및 DAX를 사용한 분석

시간 경과에 따른 이익 마진 변화 분석 - LuckyTemplates 및 DAX를 사용한 분석

LuckyTemplates에서 측정 분기 및 DAX 수식 결합과 같은 기술을 사용하여 수익 마진 변경을 해결하는 방법을 알아봅니다.

DAX Studio의 데이터 캐시에 대한 구체화 아이디어

DAX Studio의 데이터 캐시에 대한 구체화 아이디어

이 자습서에서는 데이터 캐시의 구체화 아이디어와 결과 제공 시 DAX 성능에 미치는 영향에 대해 설명합니다.

LuckyTemplates를 사용한 비즈니스 보고

LuckyTemplates를 사용한 비즈니스 보고

지금까지 Excel을 계속 사용하고 있다면 지금이 비즈니스 보고 요구 사항에 LuckyTemplates를 사용하기 시작하는 가장 좋은 시기입니다.

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것