마지막 수정 날짜: 20 Jul 2023
환경
Tableau Desktop답변
일반적으로 조건을 충족하는 차원 멤버의 수를 계산하는 수식은 다음과 같습니다.{ FIXED [Dimension] : SUM(
IF <Condition>
THEN 1
ELSE 0
END
) }
IF <Condition>
THEN 1
ELSE 0
END
) }
몇 가지 사용 사례에서 이 일반 수식을 사용할 수 있습니다. Superstore 샘플 데이터 집합을 사용하는 일부 예가 아래에 나와 있습니다.
클릭하여 해결 방법 확장
예제 1: 매개 변수가 포함된 값 범위 사용
이 예에서 뷰의 행에는 [Category(범주)] 및 [Segment(세그먼트)]가 포함되고, 목표는 범주와 세그먼트의 모든 조합에 대한 두 매개 변수 값 사이의 매출을 포함하는 고객 수를 계산하는 것입니다.
- 분석 > 계산된 필드 만들기를 선택합니다.
- 계산된 필드 대화 상자에서 다음을 수행한 후 확인을 클릭합니다.
- 계산된 필드에 이름을 지정합니다. 이 예에서 계산된 필드의 이름은 "# of Customers with Select Sales(선택 매출이 포함된 고객의 수)"입니다.
- 수식 필드에서 다음과 유사한 계산을 만듭니다.
IF { INCLUDE [Customer Name] : SUM([Sales])} >= [Sales Lower Limit]
AND { INCLUDE [Customer Name] : SUM([Sales])} <= [Sales Upper Limit]
THEN 1
ELSE 0
END
- [# of Customers with Select Sales(선택 매출이 포함된 고객의 수)]를 마크 카드의 텍스트로 끌어옵니다.
클릭하여 해결 방법 확장
예제 2: 텍스트 값 사용
이 예에서 뷰의 행에는 [Order ID(주문 ID)] 및 [Product Name(제품 이름)]이 포함되고, 목표는 "Staple holder(스테이플 홀더)" 제품이 포함된 주문의 수를 계산하는 것입니다.
- 다음과 유사한 계산을 사용하여 "# of Orders with a Staple holder(스테이플 홀더가 포함된 주문의 수)"라는 계산된 필드를 만듭니다.
{ FIXED [Order ID] : MAX(
IF [Product Name] = "Staple holder"
THEN 1
ELSE 0
END)} - [# of Orders with a Staple holder(스테이플 홀더가 포함된 주문의 수)]를 마크 카드의 텍스트로 끌어옵니다.
클릭하여 해결 방법 확장
예제 3: 범주 만들기
이 예에서는 [State(주)]가 텍스트에 추가되었고, 목표는 수익이 음수인 도시의 수로 주를 분류하는 것입니다.
- 다음과 유사한 계산을 사용하여 "# of Unprofitable Cities(수익성이 없는 도시의 수)"라는 계산된 필드를 만듭니다.
{ FIXED [State] : SUM(
IF { INCLUDE [City] : SUM([Profit]) } < 0
THEN 1
ELSE 0
END
) } - 다음과 유사한 계산을 사용하여 "Categories based on city profit(도시 수익에 따른 범주)"라는 계산된 필드를 만듭니다.
IF [# of Unprofitable Cities] = 0
THEN "All cities have positive profit"
ELSEIF [# of Unprofitable Cities] = 1
THEN "One city has negative profit"
ELSE "Multiple cities have negative profit"
END - [Categories based on city profit(도시 수익에 따른 범주)]을 열 선반으로 끌어옵니다.
클릭하여 해결 방법 확장
예제 4: 테이블 함수 사용
이 예에서 뷰는 세그먼트당 범주의 매출을 기준으로 상위 10명의 고객을 표시하도록 이미 필터링되었습니다. 목표는 수익이 음수인 고객이 세 명 이상인 모든 범주/세그먼트를 하이라이트하는 것입니다.
- 다음과 유사한 계산을 사용하여 "3+ Top 10 Customers w/ Neg Profit(3+ 수익이 음수인 고객이 3명 이상인 상위 10명의 고객)"이라는 계산된 필드를 만듭니다.
IF
WINDOW_SUM(
IF SUM([Profit]) < 0
AND [Sales Rank] <= 10
THEN 1
ELSE 0
END ) > 2
THEN "Three or more customers with negative profit"
ELSE "Good standing"
END - [3+ Top 10 Customers w/ Neg Profit(수익이 음수인 고객이 3명 이상인 상위 10명의 고객)]을 마크 카드의 색상으로 끌어옵니다.
- 색상에서 [3+ Top 10 Customers w/ Neg Profit(수익이 음수인 고객이 3명 이상인 상위 10명의 고객)]을 마우스 오른쪽 단추로 클릭하고 다음을 사용하여 계산 > 고객 이름을 선택합니다.
추가 정보
예제 1에 대한 참고:
- [Customer Name(고객 이름)]이 뷰에 없으므로 INCLUDE 식이 필요합니다.
- SUM([Sales(매출)])는 뷰의 세부 수준까지 집계됩니다. 이 예에서는 [Category(범주)] 및 [Segment(세그먼트)]와 INCLUDE 식에 나열된 [Customer Name(고객 이름)]까지 집계됩니다.
- ["# of Customers with Select Sales(선택 매출이 포함된 고객의 수)] 계산은 고객당 매출이 [Sales Upper Limit(매출 상한)] 미만인지와 [Sales Upper Limit(매출 상한)]를 초과하는지를 평가합니다. 고객별 매출이 지정된 범위에 포함되면 이 계산이 1을 반환하고 반환된 값은 합산 후 고객 수로 사용됩니다.
- 이 계산은 COUNTD()를 사용하여 작성될 수도 있습니다.
예제 2에 대한 참고:
- IF 문은 기초 데이터 집합의 모든 레코드를 읽어 [Product Name(제품 이름)]이 "Staple holder(스테이플 홀더)"인지 확인합니다. 그렇다면 계산이 해당 레코드에 대해 1을 반환합니다. 그런 다음 FIXED 식은 [Order ID(주문 ID)] 값이 동일한 모든 레코드에 대해 1 및 0의 최대값을 반환합니다.
- Superstore에서는 [Product Name(제품 이름)]과 [Order ID(주문 ID)]의 고유한 조합에 대한 레코드가 1개이므로 MAX()를 SUM()으로 바꿀 수 있으며 1 값을 합산하는 것과 최대 1의 값을 가져오는 것이 동일하므로 동일한 결과가 반환됩니다.
예제 3에 대한 참고:
- INCLUDE 식은 [State(주)]가 FIXED 식에 있으므로 각 주의 도시별 수익의 합계를 반환합니다. 그런 다음 수익성이 없는 모든 도시에 대해 1을 반환합니다. 이 값은 도시 수를 계산할 때 사용됩니다.
예제 4에 대한 참고:
- 이 예에서는 LOD(세부 수준) 식이 아니라 테이블 계산을 사용해야 합니다. 테이블 계산 필터는 기초 데이터를 필터링하지 않기 때문입니다. 따라서 계산 안에 순위에 대한 조건을 추가해야 합니다. 그러나 RANK()는 테이블 함수이므로 LOD 계산 안에서 사용할 수 없습니다.
- 테이블 계산은 뷰에서 집계되지 않은 모든 차원의 영향을 받습니다. 테이블 계산이 올바른 결과를 반환하지 않는 경우 그 이유는 테이블 계산이 뷰의 차원에 따라 계산되는 방식 때문입니다. 이 문제를 해결하려면 다음을 사용하여 계산 옵션을 변경합니다. 자세한 내용은 테이블 계산으로 값 변환을 참조하십시오.
이 문서의 효과에 대한 의견을 제공해 주셔서 감사합니다.
새 사례 열기
검색 계속
기술 자료
커뮤니티
제품 도움말
교육 및 자습서