앞선 초급편에서는 IF문, NULL 처리, DATEDIFF 등 기본 계산식 9개를, 중급 ①편에서는 전년/전월 대비 증감률과 LOD-FIXED, 누적 합계를 살펴봤습니다. 이번 글에서는 남은 중급 계산식 3개인 이동 평균, 상위 N개 필터링, LOOKUP을 정리합니다. 모든 예제는 태블로 기본 제공 슈퍼스토어(Superstore) 데이터의 필드를 기준으로 설명합니다. 데이터의 언어에 따라 [Sales]는 [매출], [Order Date]는 [주문 날짜] 등 실제 필드명에 맞춰 사용해 주세요.
실무 계산식 TOP 15 — 한눈에 보기
초급 9개 + 중급 6개, 총 15개 계산식을 한 표로 정리했습니다. 이번 편에서 상세히 다루는 항목은 12위, 14위, 15위입니다. 순위는 학습의 편의를 돕기 위한 참고용이며 절대적인 중요도를 의미하지 않습니다. 수식을 복사한 뒤 필드명과 매개 변수, 계산 기준을 자신의 뷰에 맞게 설정해야 합니다.
| 순위 | 레벨 | 이름 | 계산식 |
|---|---|---|---|
| 1 | 초급 | IF 조건문 | IF [Profit] < 0 THEN "손실" |
| 2 | 초급 | 날짜 필터링 (동적·전년) | YEAR([Order Date]) = YEAR(TODAY()) - 1 |
| 3 | 초급 | NULL 처리 (ZN, IFNULL) | ZN(SUM([Profit])) |
| 4 | 중급 | 전년/전월 대비 증감률 (YoY) | ZN((SUM([Sales]) - LOOKUP(SUM([Sales]), -1)) / |
| 5 | 초급 | 조건부 합계 | SUM(IF [Discount] > 0 |
| 6 | 초급 | 문자열 결합 | [Customer Name] + " (" + [Segment] + ")" |
| 7 | 초급 | 날짜 차이 (DATEDIFF) | DATEDIFF('day', [Order Date], [Ship Date]) |
| 8 | 초급 | 퍼센트 계산 (수익률) | SUM([Profit]) / SUM([Sales]) |
| 9 | 초급 | 순위 매기기 (RANK) | RANK(SUM([Sales])) |
| 10 | 중급 | LOD – FIXED (신규/재구매) | IF [Order Date] = { FIXED [Customer ID] : MIN([Order Date]) } |
| 11 | 중급 | 누적 합계 (RUNNING_SUM) | RUNNING_SUM(SUM([Sales])) |
| 12 | 중급 | 이동 평균 (WINDOW_AVG, 3개월) | WINDOW_AVG(SUM([Sales]), -2, 0) |
| 13 | 초급 | 중복 제거 카운트 (COUNTD) | COUNTD([Customer ID]) |
| 14 | 중급 | 상위 N개 필터링 (Top N) | IF RANK(SUM([Sales])) <= [Top N] THEN "Top N" |
| 15 | 중급 | LOOKUP (이전 행 값) | LOOKUP(SUM([Sales]), -1) |
[필드명, 함수·키워드, 문자열, 숫자·연산자] — 기존 편과 같은 색상 구분으로 수식을 표시했습니다.
ㅤ
| 이번 편의 세 가지 계산식은 모두 테이블 계산을 활용합니다. 뷰에 놓인 차원, 정렬 순서, 계산 대상 범위에 따라 결과가 달라집니다. 먼저 간단한 텍스트 표에서 값을 확인하고 차트에 적용하는 것이 좋습니다. |
ㅤ
ㅤ
12위. 이동 평균 (WINDOW_AVG)
변동성이 큰 매출 데이터에서 단기 변동을 줄이고 전체 추세를 파악할 때 사용합니다.
ㅤ
방법 1. 계산된 필드에서 직접 작성
월별 매출이 날짜순으로 이어지는 뷰에서 다음 계산식을 사용하면, 현재 월을 포함한 최근 3개 월의 매출 평균을 구할 수 있습니다.
WINDOW_AVG(SUM([Sales]), -2, 0) |
-2는 두 칸 전, 0은 현재 칸을 뜻합니다. 즉 전전월, 전월, 이번 달의 월별 매출 합계를 평균냅니다. 예를 들어 세 달 매출이 100, 200, 300이라면 세 번째 달의 이동 평균은 200입니다. 이는 주문별 매출의 평균이 아니라 월별 매출 합계의 평균이라는 점을 구분해야 합니다.
범위를 (-6, 0)으로 바꾸면 7개 구간, (-3, 3)으로 바꾸면 현재 구간의 앞뒤를 포함한 중심 이동 평균이 됩니다. 일별 뷰의 7개 구간은 7일, 월별 뷰의 7개 구간은 7개월에 해당합니다. 단, 중간 날짜가 빠지지 않고 표시되어 있어야 달력상의 기간과 일치합니다.
ㅤ
방법 2. 퀵 테이블 계산 사용
측정값 우클릭 → 퀵 테이블 계산 → 이동 평균을 선택합니다.

그림 1. 측정값 메뉴에서 퀵 테이블 계산 → 이동 평균을 선택합니다.
구간을 바꾸려면 필드 우클릭 → 테이블 계산 편집에서 이전과 다음 값을 조정합니다. 위 계산식과 동일한 최근 3개 구간 평균은 이전 2, 다음 0입니다.

그림 2. 화면은 이전 3, 다음 0으로 총 4개 구간을 계산하는 예시입니다. 본문의 3개 구간 평균을 만들 때는 이전을 2로 변경합니다.
ㅤ
가장 중요한 설정: 날짜순 계산과 시작 구간
월을 가로로 배치했다면 월 방향으로, 세로로 배치했다면 아래쪽으로 계산하도록 설정합니다. 여러 연도가 포함되면 연도와 월을 함께 구분하고, 연도를 넘어 이어서 계산할지 연도마다 다시 시작할지도 확인합니다. 시작 부분에 이전 두 구간이 없으면 존재하는 구간만으로 평균이 계산될 수 있으므로, 완전한 3개월 평균과 구분해서 해석해야 합니다.
ㅤ
ㅤ
14위. 상위 N개 필터링 (Top N)
매출 상위 10개 제품처럼 순위 기준의 분석 대상을 정하고, 사용자가 N값을 직접 조절하게 만들 때 사용합니다.
ㅤ
방법 1. 동적 Top N — 매개 변수 + RANK
1단계 — 매개 변수 생성
정수형 매개 변수 Top N을 만듭니다. 현재 값은 10, 허용 가능한 값은 범위, 최소값 1·최대값 50·단계 크기 1로 설정합니다.

그림 3. Top N 매개 변수의 범위 설정 예시입니다.
ㅤ
2단계 — 계산식 작성
IF RANK(SUM([Sales])) <= [Top N] THEN "Top N" |
ㅤ
3단계 — 뷰 구성과 필터 적용
제품명([Product Name])을 행에, 매출 합계를 열에 배치합니다. 계산식을 필터 선반으로 옮겨 Top N만 선택합니다. 테이블 계산 편집에서 계산 기준이 제품명 방향인지 확인한 뒤, 매개 변수 표시를 켜면 N값을 바꿔가며 볼 수 있습니다.
동점이 있으면 N개보다 많이 나올 수 있습니다.
RANK는 같은 매출에 같은 순위를 부여합니다. 경계 순위에 동점이 있으면 Top N에 포함되는 제품 수가 N개를 초과할 수 있습니다. 반드시 N개가 필요하다면 RANK_UNIQUE 등의 방식과 함께 동점일 때 어떤 제품을 우선할지 기준도 정해야 합니다.
ㅤ
다른 필터와 함께 쓸 때
위 RANK 계산식을 필터로 사용하면 테이블 계산 필터로 동작합니다. Category·Region 같은 차원 필터가 먼저 적용된 결과를 기준으로 순위가 계산됩니다. 예를 들어 Region을 먼저 선택하면 선택한 지역 안에서의 매출 순위를 구합니다. 뷰에 다른 차원이 추가되어 있으면 순위가 전체 제품 기준인지, 그룹별 기준인지도 확인해야 합니다.
ㅤ
방법 2. Tableau 내장 Top N 필터
제품명 같은 차원을 필터 선반에 놓고 필터 편집 → 상위 → 필드 기준에서 상위 10개, 매출, 합계를 지정합니다. 고정된 상위 개수만 필요할 때 간단하게 사용할 수 있습니다. 내장 Top N 필터에서도 매개 변수를 연결해 N값을 동적으로 바꿀 수 있습니다.
주의: 내장 Top N 필터의 실행 순서는 RANK 방식과 다릅니다.
선택한 지역 안에서 상위 제품을 구하려면 해당 지역 필터를 컨텍스트에 추가하여 먼저 적용되도록 설정합니다. 일반 차원 필터와 Top N 필터를 단순히 함께 놓는 것만으로 원하는 지역별 순위가 보장되지는 않습니다. 중급 ①편의 FIXED 역시 차원 필터보다 먼저 계산된다는 점을 함께 기억해 두면 좋습니다.
ㅤ
ㅤ
15위. LOOKUP (이전 행 값)
현재 위치에서 지정한 칸만큼 떨어진 값을 가져오는 함수로, 전년·전월 대비 계산의 바탕이 됩니다.
ㅤ
기본 계산식
LOOKUP(SUM([Sales]), -1) |
현재 위치의 바로 이전 값을 가져옵니다. 날짜를 오름차순으로 놓은 연도별 뷰라면 이전 연도, 월별 뷰라면 이전에 표시된 월의 값입니다. LOOKUP이 달력을 보고 자동으로 전월을 찾는 것은 아니므로, 중간 월이 누락되어 있으면 기대한 전월과 다를 수 있습니다. 대상 위치가 없으면 NULL을 반환합니다.
| 오프셋 | 의미 | 대표 용도 |
|---|---|---|
| -1 | 이전 위치 | 전년·전월 대비 |
| 1 | 다음 위치 | 다음 구간의 값과 비교 |
| FIRST() | 현재 위치에서 파티션 첫 위치까지의 거리 | 첫 값 대비 성장률 |
| LAST() | 현재 위치에서 파티션 마지막 위치까지의 거리 | 마지막 값과 비교 |
ㅤ
응용 — 첫 값 대비 성장률
(SUM([Sales]) - LOOKUP(SUM([Sales]), FIRST())) |
월별 뷰에 적용하면 파티션의 첫 월을 기준으로 각 월의 매출이 얼마나 변했는지 볼 수 있습니다. 첫 월 매출이 100이고 현재 월 매출이 130이면 성장률은 30%입니다. 계산 결과의 숫자 서식을 백분율로 설정합니다. 이 계산은 첫 값과 현재 값의 비교이며, 월별 성장률을 더하거나 누적 매출을 계산하는 식은 아닙니다.
ㅤ
기준값이 0이거나 NULL일 때
IF ISNULL(LOOKUP(SUM([Sales]), FIRST())) |
FIRST()와 LAST()는 값 자체가 아니라 현재 위치에서 첫 위치 또는 마지막 위치까지의 오프셋을 반환합니다. 따라서 실제 매출을 가져오려면 LOOKUP 안에 넣어 사용합니다. 날짜 필터로 앞부분을 제외하면 기준이 되는 첫 월도 달라질 수 있으므로, 고정된 기준월과 비교하려는 경우에는 필터 범위까지 확인해야 합니다.
ㅤ
ㅤ
이상으로 초급 9개와 중급 6개, 실무 계산식 TOP 15를 모두 살펴봤습니다. 이동 평균은 추세를 파악할 때, Top N은 분석 대상을 좁힐 때, LOOKUP은 다른 기간의 값과 비교할 때 활용할 수 있습니다. 세 가지 모두 수식만 외우기보다 계산 방향, 정렬 순서, 필터 적용 범위를 함께 확인하는 습관이 중요합니다.
처음부터 모든 계산식을 외우기보다는 실제 분석 과제에 하나씩 적용해 보시기 바랍니다. 기본 계산은 초급편에서, 증감률·LOD-FIXED·누적 합계는 중급 ①편에서 다시 확인하실 수 있습니다.