논리 함수
이 문서에서는 Tableau의 논리 함수와 관련 사용법을 소개합니다. 또한 예제를 사용하여 논리 계산을 만드는 방법을 보여 줍니다.
논리 계산을 사용하면 특정 조건이 참인지, 아니면 거짓인지(부울 논리)를 결정할 수 있습니다. 예를 들어 특정 구분 단위를 기준으로 값을 분류할 수 있습니다.
논리 계산은 다음과 비슷한 모양입니다.
IF [Profit] > 0
THEN 'Profitable'
ELSEIF [Profit] = 0 THEN 'Break even'
ELSE 'Loss'
END
구문 | <expr1> AND <expr2> |
정의 | 두 식에 대한 논리곱을 수행합니다. (양변 모두 참이면 논리 테스트는 true를 반환합니다.) |
출력 | 부울(true 또는 false) |
예 | IF [Season] = "Spring" AND "[Season] = "Fall" "(Season = Spring) 및 (Season = Fall)이 동시에 참이면 It's the apocalypse and footwear doesn't matter가 반환됩니다." |
참고 | 경우에 따라 IF 및 IIF와 함께 사용됩니다. 또한 NOT 및 OR을 참조하십시오. 두 식이 모두
참고: |
구문 | CASE <expression>
|
출력 | 데이터 유형의 <then> 값에 따라 다릅니다. |
정의 |
|
예 |
"Season 필드를 보십시오. 값이 Summer이면 Sandals를 반환합니다. 값이 Winter이면 Boots를 반환합니다. 계산의 옵션 중 Season 필드의 옵션과 일치하는 것이 없으면 Sneakers를 반환합니다." |
참고 | WHEN, THEN, ELSE 및 END와 함께 사용됩니다. 팁: 그룹을 여러 번 사용하여 복잡한 CASE 함수와 동일한 결과를 얻거나 이전 예와 같이 CASE를 사용하여 기본 그룹화 함수를 대체할 수 있습니다. 해당하는 시나리오에 어느 함수의 성능이 더 우수한지 테스트하는 것이 좋을 수 있습니다. |
구문 | CASE <expression>
|
정의 | 테스트된 식 중 참이 아닌 경우 반환할 기본값을 지정하는 데 사용되는 IF 또는 CASE 식의 선택적 부분입니다. |
예 | IF [Season] = "Summer" THEN 'Sandals' CASE [Season] |
참고 | CASE, WHEN, IF, ELSEIF, THEN 및 END와 함께 사용됩니다.
|
구문 | [ELSEIF <test2> THEN <then2>] |
정의 | 초기 IF 이외의 추가 조건을 지정하는 데 사용되는 IF 식의 선택적 부분입니다. |
예 | IF [Season] = "Summer" THEN 'Sandals' |
참고 | IF, THEN, ELSE 및 END와 함께 사용됩니다.
|
정의 | IF 또는 CASE 식을 닫는 데 사용됩니다. |
예 | IF [Season] = "Summer" THEN 'Sandals' "Season = Summer이면 Sandals을 반환합니다. 그렇지 않으면 옆의 식을 봅니다. Season = Winter이면 Boots를 반환합니다. 두 식 중 어느 것도 참이 아니면 Sneakers를 반환합니다." CASE [Season] "Season 필드를 보십시오. 값이 Summer이면 Sandals를 반환합니다. 값이 Winter이면 Boots를 반환합니다. 계산의 옵션 중 Season 필드의 옵션과 일치하는 것이 없으면 Sneakers를 반환합니다." |
참고 |
구문 | IF <test1> THEN <then1> |
출력 | 데이터 유형의 <then> 값에 따라 다릅니다. |
정의 | 일련의 식을 테스트하여 true인 첫 번째 |
예 | IF [Season] = "Summer" THEN 'Sandals' "Season = Summer이면 Sandals을 반환합니다. 그렇지 않으면 옆의 식을 봅니다. Season = Winter이면 Boots를 반환합니다. 두 식 중 어느 것도 참이 아니면 Sneakers를 반환합니다." |
참고 |
구문 | IFNULL(expr1, expr2) |
출력 | 데이터 유형의 <expr> 값에 따라 다릅니다. |
정의 | null이 아니면 |
예 | IFNULL([Assigned Room], "TBD") "Assigned Room 필드가 null이 아닌 경우 해당 값을 반환합니다. Assigned Room 필드가 null인 경우 대신 TBD를 반환합니다." |
참고 | ISNULL과 비교하십시오. ZN도 참조하십시오. |
구문 | IIF(<test>, <then>, <else>, [<unknown>]) |
출력 | 식에 있는 값의 데이터 유형에 따라 다릅니다. |
정의 | 조건이 충족되는지 확인하고(<test> ) 테스트가 참이면 <then> 을 반환하고, 테스트가 거짓이면 <else> 를 반환하며, 테스트가 null이면 <unknown> 에 대한 선택적 값을 반환합니다. 선택적 unknown이 지정되지 않은 경우 IIF 가 null을 반환합니다. |
예 | IIF([Season] = 'Summer', 'Sandals', 'Other footwear') "Season = Summer이면 Sandals을 반환합니다. 그렇지 않은 경우 Other footwear를 반환합니다." IIF([Season] = 'Summer', 'Sandals', "Season = Summer이면 Sandals을 반환합니다. 그렇지 않으면 옆의 식을 봅니다. Season = Winter이면 Boots를 반환합니다. 둘 다 참이 아니면 Sneakers를 반환합니다." IIF('Season' = 'Summer', 'Sandals', "Season = Summer이면 Sandals을 반환합니다. 그렇지 않으면 옆의 식을 봅니다. Season = Winter이면 Boots를 반환합니다. 식 중 어느 것도 참이 아니면 Sneakers를 반환합니다." |
참고 |
즉, 아래 계산에서는 A=A가 true로 평가되자마자 식 평가가 중지되므로 결과는 Orange가 아닌 Red가 됩니다.
|
구문 | <expr1> IN <expr2> |
출력 | 부울(true 또는 false) |
정의 | <expr1> 의 값이 <expr2> 의 값 중 하나와 일치하는 경우 TRUE 를 반환합니다. |
예 | SUM([Cost]) IN (1000, 15, 200) "Cost 필드의 값이 1000, 15 또는 200입니까?" [Field] IN [Set] "Field의 값이 Set에 존재합니까?" |
참고 |
WHEN도 참조하십시오. |
ISDATE
구문 | ISDATE(string) |
출력 | 부울(true 또는 false) |
정의 | <string> 이 유효한 날짜이면 true를 반환합니다. 입력 식은 문자열(텍스트) 필드여야 합니다. |
예 | ISDATE("2018-09-22") "2018-09-22 문자열이 올바른 형식의 날짜입니까?" |
참고 | 유효한 날짜로 간주되는 날짜는 계산을 평가하는 시스템의 로캘(링크가 새 창에서 열림)에 따라 다릅니다. 예를 들면 다음과 같습니다. 미국의 경우:
영국의 경우:
|
구문 | ISNULL(expression) |
출력 | 부울(true 또는 false) |
정의 |
|
예 | ISNULL([Assigned Room]) "Assigned Room 필드가 null입니까?" |
참고 | IFNULL과 비교하십시오. ZN도 참조하십시오. |
구문 | MAX(expression) 또는 MAX(expr1, expr2) |
출력 | 인수와 동일한 데이터 유형이거나, 인수의 일부가 null인 경우 NULL 값이 출력됩니다. |
정의 | 두 인수의 최대값을 반환합니다(두 인수가 동일한 데이터 유형이어야 함).
|
예 | MAX(4,7) = 7 |
참고 | 문자열의 경우
데이터베이스 데이터 원본의 경우 날짜의 경우 날짜의 경우 집계 형식
비교 형식
|
구문 | MIN(expression) 또는 MIN(expr1, expr2) |
출력 | 인수와 동일한 데이터 유형이거나, 인수의 일부가 null인 경우 NULL 값이 출력됩니다. |
정의 | 두 인수의 최소값을 반환합니다(두 인수가 동일한 데이터 유형이어야 함).
|
예 | MIN(4,7) = 4 |
참고 | 문자열의 경우
데이터베이스 데이터 원본의 경우 날짜의 경우 날짜의 경우 집계 형식
비교 형식
|
구문 | NOT <expression> |
출력 | 부울(true 또는 false) |
정의 | 식에 대한 논리 부정을 수행합니다. |
예 | IF NOT [Season] = "Summer" "Season이 Summer와 같지 않으면 Don't wear sandals를 반환합니다. 그렇지 않은 경우 Wear sandals를 반환합니다." |
참고 |
구문 | <expr1> OR <expr2> |
출력 | 부울(true 또는 false) |
정의 | 두 식에 대한 논리합을 수행합니다. |
예 | IF [Season] = "Spring" OR [Season] = "Fall" "(Season = Spring) 또는 (Season = Fall)이 참인 경우 Sneakers를 반환합니다." |
참고 | 경우에 따라 IF 및 IIF와 함께 사용됩니다. 또한 AND 및 NOT을 참조하십시오. 식이 하나라도
참고: |
구문 | IF <test1> THEN <then1>
|
정의 | 특정 값이나 테스트가 true인 경우 반환할 결과를 정의하는 데 사용되는 IF , ELSEIF 또는 CASE 식의 필수 부분입니다. |
예 | IF [Season] = "Summer" THEN 'Sandals' "Season = Summer이면 Sandals을 반환합니다. 그렇지 않으면 옆의 식을 봅니다. Season = Winter이면 Boots를 반환합니다. 두 식 중 어느 것도 참이 아니면 Sneakers를 반환합니다." CASE [Season] "Season 필드를 보십시오. 값이 Summer이면 Sandals를 반환합니다. 값이 Winter이면 Boots를 반환합니다. 계산의 옵션 중 Season 필드의 옵션과 일치하는 것이 없으면 Sneakers를 반환합니다." |
참고 |
구문 | CASE <expression>
|
정의 | CASE 식의 필수 부분입니다. <expression> 과 일치하는 첫 번째 <value> 를 찾고 해당 <then> 을 반환합니다. |
예 | CASE [Season] "Season 필드를 보십시오. 값이 Summer이면 Sandals를 반환합니다. 값이 Winter이면 Boots를 반환합니다. 계산의 옵션 중 Season 필드의 옵션과 일치하는 것이 없으면 Sneakers를 반환합니다." |
참고 | CASE, THEN, ELSE 및 END와 함께 사용됩니다.
CASE <expression>
|
구문 | ZN(expression) |
출력 | <expression> 의 데이터 유형에 따라 달라지거나 0입니다. |
정의 | null이 아니면 <expression>을 반환하고, 그렇지 않으면 0을 반환합니다. |
예 | ZN([Test Grade]) "test grade가 null이 아닌 경우 해당 값을 반환합니다. test grade가 null이면 0을 반환합니다." |
참고 |
ISNULL도 참조하십시오. |
참고: 일부는 실제로 논리 연산자이며 파란색이 아니라 검은색으로 표시됩니다. 자세한 내용은 연산자 구문을 참조하십시오.
아래의 단계를 수행하여 논리 계산을 만드는 방법을 배워 보십시오.
- Tableau Desktop에서 Tableau와 함께 제공된 샘플 – 슈퍼스토어라는 저장된 데이터 원본에 연결합니다.
- 워크시트로 이동합니다.
- 데이터 패널에서 State(시/도)를 행 선반에 끌어 놓습니다.
- 데이터 패널에서 Category(범주)를 행 선반으로 끌어 State(시/도) 오른쪽에 놓습니다.
- 데이터 패널에서 Sales(매출)를 열 선반에 끌어 놓습니다.
- 분석 > 계산된 필드 만들기를 선택합니다.
- 계산 에디터가 열리면 다음을 수행합니다.
- 계산된 필드의 이름을 KPI로 지정합니다.
- 다음 수식을 입력합니다.
SUM([Profit]) > 0
이 계산은 멤버가 0보다 큰지 빠르게 확인합니다. 0보다 큰 경우 true를 반환하고 그렇지 않으면 false를 반환합니다.
- 작업을 마쳤으면 확인을 클릭합니다.
- 데이터 패널에서 KPI를 마크 카드의 색상으로 끌어 놓습니다.
이제 각 주에서 손해가 발생한 범주를 확인할 수 있습니다.
새 계산된 필드가 데이터 패널의 측정값 아래에 나타납니다. 다른 필드와 마찬가지로, 하나 이상의 비주얼리제이션에서 이 필드를 사용할 수 있습니다.