---
schema_version: "1"
id: 1e63f582617f8e2b2c4551b517a6a35fe49ae597a32ac8f9248cb9d42f88fa75
title: 관계의 계산에 대한 두려움 극복
collection: tableau
version: current
locale: ko-kr
portal_url: https://docs.salesforce.com/tableau/current/ko-kr/pro/desktop/datasource_dont_be_scared_calcs.md
canonical_url: https://help.tableau.com/current/pro/desktop/ko-kr/datasource_dont_be_scared_calcs.htm
source_site: help.tableau.com
content_type: documentation
content_hash: eaab814ee20eec80fcbb631bd760a44d94f5c09f3f2c6ee4d33f49e6b0bb7c66
description: Understand how calculations work in data sources that use relationships and table-level detail.
---
[주요 콘텐츠로 건너뛰기](#main-content)

# 관계의 계산에 대한 두려움 극복

계산이 어려울 수 있습니다. 관계를 사용하는 데이터 원본의 계산은 더 두려워 보일 수 있습니다. 하지만 관계의 계산을 두려워해야 할 이유가 없습니다.

**참고**: 관계를 사용하는 데이터 원본의 기반이 되는 원리에 아직 익숙하지 않은 경우 이 항목을 살펴보기 전에 [관계에 대한 두려움 극복](https://help.tableau.com/current/pro/desktop/ko-kr/datasource_dont_be_scared.htm)을 읽어 보는 것이 좋습니다.

## 계산 유형

**행 수준 계산**은 데이터의 각 레코드에 대해 계산되는 것입니다. 예를 들어 각 판매 거래에는 할인 비율에 의해 조정될 수 있는 판매 금액인 가격이 있습니다. 이 계산을 `Price * (1- ZN([Discount]))`로 표현할 수 있습니다. 이 계산은 각 거래에 대해 행별로 계산됩니다. 결과는 데이터 원본에 Sales Amount(판매 금액)에 대한 새 열을 추가하는 것으로 생각할 수 있습니다.

**집계 계산**도 있습니다. 집계 계산은 비주얼리제이션의 세부 수준에서 계산되며 해당 값은 뷰의 구조에 따라 달라집니다. Count는 집계 계산의 예입니다. `Count([Title])`의 값은 개수를 판형, 저자 또는 판매 일 중 무엇을 기준으로 보는지에 따라 달라집니다.

계산 유형에 대한 자세한 내용은 [블로그](https://www.tableau.com/about/blog/2019/9/understanding-how-tableau-calculation-types-work-together)를 참조하십시오.

## 테이블 세부 수준

Tableau 데이터 원본에서 각 테이블은 고유한 세부 수준을 가질 수 있으므로 계산이 연결된 테이블이 큰 영향을 받습니다. 예를 들어, 전통적으로 Tableau(2020.2 이전, 관계 이전)에서는 상수 값 `1`로 계산을 만들고 합계를 구하는 방식으로 데이터 원본의 레코드 수를 계산할 수 있었습니다. 데이터 원본의 각 행에 `1`이 할당되었으므로 합계가 행 수와 동일했습니다.

그러나 이제 이 계산의 값은 `1`이 됩니다. 전체 데이터 원본에 대한 글로벌 세부 수준이 없으며 상수 계산은 데이터 패널 하단의 할당되지 않은 영역에 존재합니다. 이 영역에도 고유한 세부 수준이 있습니다. `1`의 합계를 구해도 `1`입니다.

앞서 설명한 것처럼 테이블과 동일한 세부 수준을 갖는 계산(일반적으로 해당 테이블의 필드를 포함하는 계산)은 데이터 패널에서 해당 테이블에 속합니다. 예를 들어, 각 저자의 전체 이름을 가져오기 위한 First Name(이름)과 Last Name(성)의 연결(즉, `[First Name] + " " + [Last Name]`)은 Author 테이블에 배치됩니다.

그러나 한 계산에서 여러 테이블의 필드를 사용하면 계산은 데이터 패널 하단의 할당되지 않은 영역으로 이동합니다. 이를 교차 테이블 행 수준 계산이라고 합니다. 이 계산에는 성능에 영향을 줄 수 있는 관련 테이블의 행 수준 조인이 필요합니다. (관계의 성능 옵션에 올바른 카디널리티가 설정되어 있는지 확인하십시오.)

## 세부 수준 할당

테이블의 세부 수준은 계산 결과가 나타내는 대상을 제어하므로 적절한 테이블에 계산을 포함하는 것이 중요합니다. FIXED 세부 수준 식을 사용하면 계산을 특정 테이블로 가져올 수 있습니다. 식이 고정된 필드([차원 선언](https://help.tableau.com/current/pro/desktop/ko-kr/calculations_calculatedfields_lod.htm#lod-expression-syntax))는 결과의 세부 수준을 결정합니다.

### 예: 저자 북투어

**Q:** 각 저자는 몇 개의 북투어 행사에 참여하고 있습니까?

**A:** 이 수치는 각 저자에게 "속해야" 하므로 Author 테이블에 있어야 합니다.

- **Author Book Tour Events** = `{FIXED [Author Name] : SUM([Book Tour Events])}`
- (일반적인 언어로 "각 저자에 대해 관련된 총 북투어 행사의 수"라고 생각할 수 있습니다.)

**Q:** 북투어를 하지 않는 저자는 몇 명입니까?

**A:** 다음과 같은 계산을 시도하고 싶을 것입니다.

- `COUNTD(IF ISNULL([Book Tour Events]) THEN ([Author Name]) END)`.
- (일반적인 언어로 "북투어 행사가 비어 있는 저자의 이름을 반환하고, 고유한 저자 이름의 수를 계산합니다."라고 생각할 수 있습니다.)

그러나 Book Tour Events(북투어 행사)는 Series 테이블에서 가져오고 Author Name(저자 이름)은 Author 테이블에서 가져오기 때문에 이것은 교차 테이블 행 수준 계산입니다. 이와 같은 교차 테이블 계산은 내부 조인을 사용합니다. 즉, 두 테이블에 해당하는 값이 없으면 조인 결과에서 행이 삭제됩니다. 따라서 존재하지 않는 항목을 계산하도록 Tableau에 요청하는 것입니다. 그러나 두 필드가 동일한 테이블에 있으면 계산을 수행하는 좋은 방법이 될 수 있습니다. 계산에는 데이터 원본의 구조와 잘 맞지 않는다는 사실 외에는 문제가 없습니다.

대신 각 저자에 대한 북투어 행사의 유무를 표시하고 해당 결과를 Author 테이블에 유지해야 합니다. 각 저자가 "북투어에 참여 중"인지 여부가 플래그로 표시되면 북투어에 참여하지 않는 저자의 수를 계산할 수 있습니다.

- **Book tour participant?** = `IF {FIXED [Author Name]: COUNT([Book Tour Events])} = 0 THEN "No" ELSE "Yes" END`
- (이것을 일반적인 언어로 표현하면 "각 저자에 대해 북투어 행사의 수를 센다. 그 수가 0이면 저자에 대해 'No'라고 표시하고 그렇지 않으면 'Yes'라고 표시한다."입니다. 필드 이름을 "Book tour participant?(북투어 참여자?)"로 지정하면 'No'와 'Yes'가 적합하게 됩니다.)

이제 No의 수를 세면 원래 질문에 답할 수 있습니다.

계산이 **Authors without book tours** = `IF [Book tour participant?]= "No" THEN ([Author Name]) END`이면 북투어를 하지 않는 저자 목록을 얻을 수 있습니다. (이 계산은 "Book tour participant?가 no인 모든 저자에 대해 저자 이름을 나열"이라고 생각할 수 있습니다.)

계산이 `COUNTD(IF [Book tour participant?]= "No" THEN ([Author Name]) END)`인 경우 데이터 패널 하단의 할당되지 않은 영역에 표시되는 숫자로 답을 받게 됩니다. 이유는 무엇일까요? 이 계산은 집계이기 때문입니다.

**보너스 질문:**

Book tour participant? 계산의 구조를 직접 사용하여 저자 이름 목록을 반환하는 것도 가능합니다. `IF {FIXED [Author Name]: COUNT([Book Tour Events])} = 0 THEN ([Author Name]) END` . 이 계산은 데이터 패널의 어디에 나타납니까? 이유는 무엇일까요? 자신의 Tableau Desktop 사본에서 시도해 보거나 [이 통합 문서를 다운로드](https://help.tableau.com/samples/en-us/bookshop/dontbescared_calcs.twbx)하여 확인하십시오. (Tableau Desktop 2020.2 이상이 필요합니다. 통합 문서의 데이터 패널에서 계산을 클릭하고 편집을 선택하여 계산 에디터를 연 다음 계산 댓글의 설명을 확인합니다.)

## 관련 리소스

압도 당해서 이전으로 돌아가고 싶으십니까? [관계에 대한 두려움 극복](https://help.tableau.com/current/pro/desktop/ko-kr/datasource_dont_be_scared.htm)을 읽어보십시오.

관계를 사용하여 복잡한 분석을 수행하는 방법을 계속 탐색할 준비가 되셨습니까? [심층적인 관계에 대한 두려움 극복](https://help.tableau.com/current/pro/desktop/ko-kr/datasource_dont_be_scared_deeper.htm)을 확인해 보십시오.

제품 관리 팀에서 직접 제공하는 관계의 기술적 토대에 대한 자세한 내용을 보려면 Tableau 블로그에서 관계에 대한 시리즈를 참조하십시오.

- [관계, 1부: Tableau의 새로운 데이터 모델링 소개(영문)](https://www.tableau.com/about/blog/2020/5/relationships-part-1-meet-new-tableau-data-model)
- [관계, 2부: 팁과 요령(영문)](https://www.tableau.com/about/blog/2020/5/relationships-part-2-tips-and-tricks)
- [관계, 3부: 여러 관련 테이블에서 질문하기(영문)](https://www.tableau.com/about/blog/2020/6/relationships-part-3-asking-questions-across-multiple-related-tables)

[Action Analytics](https://action-analytics.com/library/)에서 [Tableau가 관계를 발명한 이유는 무엇입니까?(영문)](https://action-analytics.com/ep-1-why-did-tableau-invent-relationships/)와 같은 동영상 팟캐스트도 참조하십시오. [Library(라이브러리)](https://action-analytics.com/library/)에서 “Video Podcast(동영상 팟캐스트)”를 클릭하여 자세히 알아볼 수 있습니다.