기술 자료

차원을 측정값으로 변환할 수 없음


게시 날짜: 01 May 2013
마지막 수정 날짜: 17 Mar 2023

문제

계산된 필드를 만들 때 Tableau Desktop이 필드를 차원이 아닌 측정값으로 인식할 수 있습니다. 필드를 차원으로 변환하려고 해도 변환이 되지 않습니다.

환경

Tableau Desktop

해결 방법

옵션 1: FIXED 구문 추가

세부 수준(LOD) 함수 FIXED는 차원으로 변환될 수 있습니다. 정확한 솔루션은 원래 계산에 따라 다르지만 계산은 전체로 집계되지 않아야 합니다(FIXED, 집계되지 않은 필드, 매개 변수 및 상수 리터럴 값은 모두 집계되지 않음). 다음 예제를 참조하기 바랍니다.
 
예제 1
다음 측정값만 가능합니다.
IF SUM([SALES]) < 100
THEN "Low"
ELSE "High"
END	
다음과 같이 차원값으로 변환할 수 있습니다.
IF { FIXED [Region] : SUM( [Sales] ) } < 100
THEN "Low"
ELSE "High"
END	
 
예제 2
다음 측정값만 가능합니다.
AVG( 
   IF { FIXED [Region] : SUM( [Sales] ) } < 100 
   THEN "Low" 
   ELSE "High" 
   END 
)
다음과 같이 차원값으로 변환할 수 있습니다.
{FIXED [Category] : AVG(
   IF { FIXED [Region] : SUM( [Sales] ) } < 100
   THEN "Low"
   ELSE "High"
   END
) }
 
예제 3
다음 측정값만 가능합니다.
ATTR( [Category] ) + " value"
다음과 같이 차원값으로 변환할 수 있습니다.
{ FIXED [Order ID] : MIN( [Category] ) } + " value"
 
참고: ATTR()는 테이블 함수이며 FIXED 식에서 사용할 수 없으므로 ATTR()를 MIN()으로 대체해야 했습니다. ATTR()은 뷰에서 하나의 파티션(행, 셀, 막대, 라인, 점 등)에 [Category]의 고유 값이 둘 이상 있는 경우 NULL을 반환하며, 이는 데이터 품질 문제를 식별하는 데 활용할 수 있습니다. 그러나 MIN()은 항상 최솟값을 반환하며, 최솟값은 문자열 값의 알파벳 순으로 첫 번째 값입니다. MIN([Category])이 항상 하나의 범주 값만 가지는 차원 또는 차원의 조합에 고정되어 있으면 문제가 없습니다.
 

옵션 2: 집계 제거

집계가 실제로 필요하지 않은 경우가 있습니다. 예를 들어 {FIXED [Region] : SUM([Sales] })은 지역별 총 매출을 반환하지만 데이터 원본에 지역별 레코드가 하나만 있는 경우 [Sales]는 동일한 값을 반환합니다.
 
예제 1
다음 측정값만 가능합니다.
IF SUM([SALES]) < 100
THEN "Low"
ELSE "High"
END	
다음과 같이 차원값으로 변환할 수 있습니다.
IF [Sales] < 100
THEN "Low"
ELSE "High"
END	

 

옵션 3: Tableau에서 생성된 구간차원 필드 사용

경우에 따라 원래 계산을 Tableau에서 생성된 구간차원 필드로 대체할 수도 있습니다. 주소 지정에 대한 내용은 연속형 측정값에서 구간차원 만들기
참조하기 바랍니다.
 

옵션 4: Tableau Prep에서 계산 수행

Tableau Prep의 일부 출력은 집계되지 않을 수 있으므로 항상 차원으로 변환할 수 있습니다. 원래 계산에 따라 Tableau Prep에 필요한 단계가 달라집니다. 일반적으로 Tableau Prep의 SUM([Sales])과 같은 식을 복제하려면 집계 단계가 필요합니다.

테이블 계산은 세부 함수 수준의 내부에 배치할 수 없기 때문에 비집계적으로 만들 수 없습니다. 일부 테이블 계산은 Tableau Prep에서 다시 만들 수 있습니다. 예를 들어 LOOKUP()은 이동된 자체 조인으로 대체될 수 있습니다. Tableau Prep에서 테이블 계산 조회를 참조하기 바랍니다.
 

옵션 5: 데이터 통합 사용 대신 데이터 조인 수행

보조 데이터 원본의 필드를 집계해야 합니다. 이는 데이터 통합의 한계값으로, 해결 방법이 없습니다. 교차 데이터베이스 조인 또는 Tableau Prep의 조인을 고려할 수 있습니다.
 

원인

계산된 필드에 집계가 사용되는 경우 계산 결과가 동적이기 때문에 측정값을 차원으로 변환할 수 없습니다.

예를 들어, SUM([Sales])은 [Region]이 행 선반에 있을 경우와 [Category]가 행 선반에 있을 경우 서로 다른 결과를 반환합니다. 그러나 {FIXED [Region] : SUM([Sales])} 식은 항상 지역별 총 매출이 됩니다. FIXED 구문을 추가하면 Tableau는 SUM()을 계산하는 방법을 알 수 있으며, 이를 통해 Tableau는 속한 지역의 총 판매량을 기준으로 각 레코드를 그룹화하는 방법도 알 수 있습니다.

 

추가 정보

왜 Tableau는 차원과 측정값을 사용하나요?

Tableau는 데이터를 효과적으로 표시하기 위해 매우 다른 데이터 원본 간에 공유되는 데이터의 공통 속성을 활용합니다.

예를 들어, 숫자 값이 있는 필드가 있지만 이름은 "ID"인 데이터 원본이 있다고 가정하겠습니다.  모든 ID 값을 합산하는 의미 없는 막대 차트를 가져오는 대신 행 선반에 "ID"를 추가하면 각 ID에 대한 행이 표시됩니다.  Tableau는 어떻게 이 정보를 알 수 있을까요?  "ID"라는 이름을 가진 필드는 기본적으로 차원으로 간주되는 특수한 경우입니다.

Tableau에는 차원에 다른 데이터를 그룹화하는 데 사용되는 데이터가 있으므로 차원에 숫자 데이터가 포함되어 있더라도 일반적으로 차원은 차트가 아니라 머리글이어야 한다는 사실을 알고 있습니다. 

차원측정값은 데이터가 어떻게 표시되어야 하는지에 대한 단서를 Tableau에 제공하는 데이터 관리의 개념입니다. Tableau가 차원과 측정값을 처리하는 방법에 대한 자세한 내용은 차원 및 측정값, 파란색 및 녹색을 참조하기 바랍니다.

 
이 문서로 문제가 해결되었습니까?