DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

이 자습서에서는 LuckyTemplates 데이터 보고서 에서 특정 날짜를 선택하거나 필터링하는 방법에 대해 설명합니다 . 이 튜토리얼에서 사용된 자료는 에서 가져온 것입니다 . 문제를 해결하는 방법과 사용된 방법을 이해하는 방법을 배우게 됩니다. 이 블로그 하단에서 이 튜토리얼의 전체 비디오를 볼 수 있습니다.

목차

LuckyTemplates의 데이터 보고서 이해

이것은 사용될 샘플 데이터 보고서입니다. 하나의 테이블 시각적 개체와 두 개의 슬라이서로 구성됩니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

목표는 슬라이서의 날짜 열에서 날짜를 선택하는 것입니다. 즉, 슬라이서에서 날짜를 선택하면 테이블 시각화에 이전 날짜가 7일 간격으로 표시됩니다. 이 예에서 날짜 슬라이서에서 선택한 데이터는 2007년 5월 12일입니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

표에는 날짜 사이에 7일 차이가 있는 이전 날짜가 표시되어야 합니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

또한 선택 항목에 따라 날짜 수를 동적으로 표시하려면 what if 매개 변수를 만들어야 합니다 . 3 을 선택하면 테이블 시각적 개체에 3개의 날짜만 표시되어야 합니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

테이블 및 시각화 재생성

첫 번째 단계는 what if 매개변수를 만드는 것입니다 . LuckyTemplates 데스크톱 내에서 모델링 탭으로 이동하고 새 매개 변수를 선택합니다 .

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

매개변수에 이름을 추가하고 데이터 유형을 정수 로 설정합니다 . 그런 다음 아래 이미지와 같이 최소, 최대, 증분 및 기본값을 설정합니다. 상자를 선택하여 슬라이서를 페이지에 추가합니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

확인을 누르면 슬라이서가 생성됩니다. 드롭다운 버튼을 클릭하고 목록을 선택하여 슬라이서를 목록으로 변환합니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

다음으로 할 일은 연결이 끊긴 날짜 테이블로 사용할 복제된 날짜 테이블을 만드는 것입니다. 파워 쿼리 편집기로 이동하여 날짜를 복제합니다 .

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

그런 다음 중복 DisDate의 이름을 바꾸고 닫기 및 적용을 클릭합니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

LuckyTemplates에서 날짜 테이블 및 슬라이서 로드

복제된 테이블이 LuckyTemplates 모델에 로드되면 연결이 끊긴 날짜 테이블의 날짜 열이 있는 슬라이서를 만듭니다. DisDate 테이블을 열고 Date를 캔버스로 끕니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

그런 다음 시각화를 슬라이서로 전환합니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

그런 다음 슬라이서의 형식을 List 로 변경합니다 . 그러면 시각화가 다음과 같이 표시됩니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

그런 다음 슬라이서를 복제하고 Dates 테이블의 Date 열을 사용하여 데이터 필드를 변경합니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

날짜 슬라이서에서 날짜를 선택하면 매트릭스에서 표시되는 판매 테이블의 행 수가 제한됩니다. 2005년 3월 14일을 선택하면 매트릭스에 해당 날짜만 표시됩니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

이 설정을 사용하면 결과와 측정이 작동하지 않습니다. 그 이유는 측정이 시작되기 전에 이미 매트릭스에 대한 액세스가 필터링되었기 때문입니다. 필터링된 값의 경우 간격이 있는 날짜를 생성할 수 없습니다.

선택 슬라이서에 대한 측정값 생성

선택 항목이 슬라이서 위에 있을 때 매트릭스를 직접 필터링하지 않는 날짜 설정을 만들어야 합니다. 행렬의 필터링은 슬라이서에서 직접 오는 것이 아니라 DAX 코드를 통해 이루어져야 합니다. 따라서 DisDate 슬라이서에서 날짜를 선택하면 매트릭스에서 변경 사항이 발생하지 않습니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

이것은 DisDate 테이블이 Dates 테이블과 관계가 없기 때문에 발생합니다. 연결이 끊어진 테이블이 필요한 이유입니다.

Dates 테이블이 있는 슬라이서를 삭제하고 첫 번째 측정값을 만듭니다. 측정값은 표시할 날짜 슬라이서에서 선택된 값을 검색합니다. 만들어야 하는 첫 번째 변수는 ValuesToShow 입니다 . 그런 다음 표시할 날짜 값과 동일시하고 RETURN을 입력하여 선택한 값을 반환합니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

해당 측정값을 행렬로 드래그합니다. 표시할 날짜 슬라이서에서 6을 선택하면 행렬의 측정값 열도 6을 산출합니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

다음으로 슬라이서에서 선택한 연결이 끊긴 날짜를 검색할 다른 변수를 만듭니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

완료되면 측정 열에 표시된 DisDate 슬라이서에서 선택된 값을 볼 수 있습니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

계산된 테이블 만들기

슬라이서에서 선택한 날짜부터 시작하여 7일 간격으로 날짜 목록을 만듭니다. 그런 다음 매트릭스가 표시할 날짜 슬라이서 선택에 따라 일 수를 생성하는지 확인합니다. 이렇게 하려면 먼저 계산된 테이블을 만들어야 합니다 .

계산된 테이블은 DAX 코드 내에서 날짜가 생성되는 방식을 시각화하는 데 도움이 됩니다. 데이터 보기로 이동하여 새 테이블을 클릭합니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

SelectedDate 변수를 입력 하고 DATE 함수 와 동일시합니다 . 그런 다음 괄호 안에 날짜를 입력합니다. 다음으로 행렬에 표시할 날짜 수를 지정하는 다른 변수를 만듭니다. DatesToShow를 입력 하고 날짜 수와 동일시합니다.

그런 다음 7일 간격으로 날짜 목록을 생성할 다른 변수를 만듭니다. DatesList를 입력 하고 GENERATESERIES 함수를 사용합니다. 여러 인수를 전달하여 숫자 목록을 생성하는 함수입니다.

첫 번째 인수의 경우 SelectedDate – (DatesToShow * 7)을  시작 값으로 입력합니다. 다음으로 종료 값으로 SelectedDate를 입력합니다. 마지막 인수에는 증분 값 또는 날짜 사이의 간격으로 7을 입력합니다. 완료되면 함수를 닫고 RETURNDateList 를 입력합니다 .

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

그러면 5월 5일부터 시작하여 7씩 증가하는 7개의 값이 포함된 테이블을 볼 수 있습니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

이제 필요한 것보다 너무 많은 날짜를 생성했음을 알 수 있습니다. 원본 샘플 보고서에서 동일한 표시 날짜 및 날짜 선택으로 표시된 마지막 날짜는 3월 31일이었습니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

이를 수정하려면 DatesToShow 변수 값을 5로 변경하거나 6에서 1을 빼면 됩니다. 이 예에서는 6에서 1을 뺍니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

그러면 값이 3월 31일에 끝나는 것을 볼 수 있습니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

필터 컨텍스트에 날짜 삽입

다음으로 이러한 날짜를 사용하고 날짜 필터 컨텍스트에 삽입해야 합니다. 또한 필터 컨텍스트에서 판매 금액을 계산해야 합니다. 따라서 GENERATESERIES 구문을 복사하고 측정값으로 돌아갑니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

측정값에서 새 변수를 추가하고 DatesToShow 를 입력합니다 . 그런 다음 해당 변수를 GENERATESERIES 구문과 동일시합니다. 구문 내 변수를 SelectedDate 에서 DisSelectedDate 로 , DatesToShow 에서 ValuesToShow 로 변경합니다 .

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

마지막으로 결과에 대한 변수를 만듭니다. GENERATESERIES 구문에서 받은 모든 날짜를 필터 컨텍스트에 삽입하려면 Total Sales 및 DatesToShow에 대한 CALCULATE 함수 와 동일시합니다 . 완료되면 RETURN 함수 에 Result를 입력합니다 .

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

이제 행렬에 DAX 코드가 요청하는 날짜가 표시되지 않는 것을 볼 수 있습니다. 매트릭스에서 Total Sales 측정값을 가져오면 코드가 Sales 금액 자체를 반환하는 것을 볼 수 있습니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

측정값의 문제는 GENERATESERIES 구문 에서 생성된 날짜에 연결이 끊긴 날짜 테이블과의 데이터 계보가 있다는 것입니다. 이는 Date 테이블이 Sales 테이블에 연결되어 있지 않음을 의미합니다. 그렇기 때문에 날짜 목록이 필터 컨텍스트에 적용되었을 때 Sales 테이블이 포함되지 않았습니다.

기능을 사용하여 가상 관계를 생성하고 필터 컨텍스트를 적용 해야 합니다 .

TREATAS를 사용하여 LuckyTemplates 매트릭스에서 날짜 수정

GENERATESERIES 구문 에서 받은 값을 원래 날짜 테이블의 일부인 것처럼 처리해야 합니다. 이는 기본적으로 데이터 모델에 있는 Date 테이블의 Date 열과 계보를 구축하는 것입니다.

따라서 Result 변수에서 Total Sales 테이블 다음에 TREATAS를 입력하고 인수를 제공합니다. 첫 번째 인수에는 관계가 없는 열 또는 테이블을 제공하십시오. 이 경우 DatesToShow 열이 사용됩니다.

두 번째 인수의 경우 첫 번째 인수에서 열의 계보를 매핑할 열을 제공합니다. 이 예에서는 날짜 테이블의 날짜 열이 사용됩니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

그러나 코드를 수정해도 슬라이서를 사용할 때 매트릭스의 측정 열에 여전히 올바른 값이 표시되지 않습니다. 또한 열 내부의 값이 반복되는 것을 알 수 있습니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

문제는 코드가 작성된 방식에 있습니다. TREATAS는 모든 값을 필터 컨텍스트에 적용하고 선택한 날짜의 기존 필터 컨텍스트를 GENERATESERIES 함수 에서 검색된 모든 값으로 재정의합니다 .

TREATAS보다 KEEPFILTERS 기능 사용

기존 필터 컨텍스트를 재정의하지 않고 필터가 필터에 삽입되도록 하려면 KEEPFILTERS 함수를 사용해야 합니다. CALCULATE 의 필터링 의미 체계를 변경합니다 .

TREATAS 기능 앞에 KEEPFILTERS를 입력 하고 측정값을 확인합니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

이제 측정 열 내부의 값이 반복되지 않는 것을 볼 수 있습니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

5월과 4월을 확장하면 측정값 열의 값이 총 판매액 열의 값과 같은 것을 볼 수 있습니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

매트릭스에서 Total Sales 측정값을 제거하고 표시할 날짜 슬라이서에서 숫자를 선택합니다. 그러면 매트릭스에 해당 날짜 수가 표시되는 것을 볼 수 있습니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

LuckyTemplates 매트릭스에서 누락된 날짜 문제 수정

이 보고서의 또 다른 문제는 DatesToShow 슬라이서 에서 8을 선택해도 행렬이 변경되지 않는다는 것입니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

슬라이서에서 9를 선택하면 행렬에 8개의 날짜만 표시됩니다. 또한 날짜 목록에서 3월 17일이 누락되었음을 알 수 있습니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

그 이유는 Date 테이블의 어떤 날에는 Sales 테이블에 일치하는 트랜잭션이 없기 때문입니다. 따라서 측정값은 해당 날짜에 대해 공백을 반환합니다. 공백을 반환하기 때문에 행렬 뒤에서 실행되는 코드는 결과에서 빈 행을 제거합니다.

그런 다음 LuckyTemplates는 반환된 결과를 사용하여 행렬을 채웁니다. 따라서 어떤 날은 공백으로 반환되기 때문에 매트릭스에서 해당 날짜의 판매 및 항목을 볼 수 없습니다.

데이터에 매출이 없는 날짜에 대해 무언가를 표시하려면 측정값으로 돌아가서 CALCULATE 구문을 제거하십시오.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

DAX를 사용하여 LuckyTemplates에서 누락된 날짜 해결

DatesToShowDates 테이블의 Date 열에 대해 TREATAS를 작성하여 데이터 계보를 만듭니다 . 그런 다음 TREATAS 함수 에서 반환한 모든 날짜가 필터 컨텍스트에 포함되어 있는지 확인합니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

거기에서 여러 변수로 실행을 분할하십시오. 변수 이름을 Result 에서 CreateDataLineage 로 변경하여 TREATAS 의 결과를 저장함을 표시합니다 .

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

그런 다음 매트릭스에서 오는 필터 컨텍스트에 표시되는 모든 날짜를 보유할 또 다른 변수를 만듭니다. VisibleDate를 변수 이름으로 입력 하고 날짜 열에 사용합니다 .

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

다음으로 해야 할 일은 판매액을 포함하는 TREATAS 함수 의 결과에 대한 열을 만드는 것입니다 . DatesWithSales를 변수 이름으로 쓰고 CreateDataLineage 변수 에 사용합니다 .

함수 내에서 새 열을 만들고 컨텍스트 전환을 시작하기 위해 행 컨텍스트의 Total Sales 측정값과 함께 Sales Amount 로 이름을 지정합니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

그런 다음 DatesWithSales 변수 에 저장된 모든 날짜가 필터 컨텍스트에 포함되는지 확인하는 변수를 만듭니다. IsDateInFilterContext를 변수 이름으로 입력 하고 함수를 사용합니다.

거기에서 함수의 첫 번째 인수로 DatesWithSales를 작성합니다. 다음으로 Dates[Date] IN VisibleDate를 두 번째 인수로 입력하여 DatesWithSales 테이블 에 포함된 날짜가 VisibleDate 변수 에 포함되어 있는지 확인합니다 .

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

생성해야 하는 마지막 변수는 Result 입니다 . IsDateInFilterContext 변수 에 함수를 사용하십시오 . 이전에 포함되지 않은 날짜를 포함하려면 [@Sales Amount] + 0을 작성하십시오 .

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

그런 다음 매트릭스에서 누락된 날짜인 3월 17일을 볼 수 있습니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

원래 소절에서 +0 사용

이전 단계에서는 팩트 테이블에 트랜잭션이 없는 모든 날짜를 포함하도록 측정값을 작성하는 방법을 보여 주었습니다. 이제 생성한 원래 측정값에서 + 0 을 사용하면 측정값 열의 값이 모두 0이 됩니다.

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

DAX 계산을 사용하여 LuckyTemplates에서 특정 날짜 선택

그 이유는 Result 변수에 공백 또는 판매 금액이 포함되어 있기 때문입니다 . 따라서 0을 추가하면 공백이 0으로 바뀝니다. 요약된 열은 데이터세트에서 빈 행을 제거한다는 점을 기억하세요. 공백이 아닌 제한된 행만 표시할 수 있도록 LuckyTemplates로 반환합니다.

그러나 0이 추가되었으므로 요약 열은 강제로 행을 유지합니다. 그런 다음 Dates 테이블에 있는 모든 날짜가 포함된 테이블을 반환하고 적용 가능하거나 비어 있을 때 0을 표시합니다.

이것이 필터 컨텍스트에 표시되고 DatesToShow 변수에 포함된 날짜에 0만 추가하면 되는 방식으로 측정값을 다시 작성해야 하는 이유입니다 .


Power Automate 커넥터: 숫자, 텍스트 및 날짜 시간
확장된 날짜 테이블 파워 쿼리 M 함수
파워 쿼리 LuckyTemplates | 날짜 필드를 기반으로 새 레코드 만들기

결론

LuckyTemplates 매트릭스 에서 특정 날짜를 선택할 수 있는 데이터 보고서를 만들려면 계산된 테이블과 DAX 함수를 사용해야 합니다 . DAX 함수 및 측정값은 결과를 쉽게 얻을 수 있는 방식으로 작성해야 합니다.


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

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

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

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 게이트웨이란? 당신이 알아야 할 모든 것