[Tableau] 연습

[Tableau] 나이 계산하기

Simon Yoon 2022. 3. 19. 19:11

이번 태블로 포스팅에서는 고객의 나이를 알아보는 방법에 대해서 다루고자 합니다.

 

  • 사용한 태블로 버전: Tableau Desktop 2021.4
  • 사용한 데이터: 예시 구매내역 데이터
  • 목표 화면: 아래 목표 화면은 각 회원별 나이에 대한 테이블입니다.

목표 화면

시작하기 전에:

원본 예시 데이터는 아래와 같이 각 회원의 '회원ID', '생년월일' 등의 컬럼으로 구성되어 있습니다.

원본 예시 데이터

방법1: 나이를 연도로만 계산하려면 DATEDIFF 함수를 사용해서 계산된 필드를 생성해주면 됩니다.

1-1. 아래와 같이 계산된 필드를 생성합니다. DATEDIFF 함수를 활용해서 [생년월일]과 #2022#년도 사이의 'year'연도의 차이를 계산합니다. 예를 들어 1995년 11월 24일생인 JJ3840 회원은 2022년에 27세로 계산됩니다.

1-2. 단, 한국에서는 28세라고 계산하려면 수식 마지막에 +1 만 붙여주면 됩니다.

출생년도로 계산

 

방법2: 나이를 년, 월, 일을 활용하여 생일이 지났는지 여부도 판단하려면 수식을 조금 수정해야 합니다.

2-1. 아래와 같이 계산된 필드를 생성합니다.

생년,월,일까지 포함하여 계산

2-2. 먼저 IF문을 사용하는 이유는 오늘(TODAY)과 생일을 비교했을 때, 아직 생일이 지나지 않았다면 -1 을 해줘서 아직 1살을 먹지 않은 것으로 하고 올해 생일이 지났다면 올해 나이로 계산하기 위해서 입니다. 따라서 IF - THEN - ELSE 형식이 사용되었습니다.

2-3. 두 번째로 DATEADD() 함수를 해석하자면, DATEDIFF로 계산된 연도 차이를 회원의 생년월일에 더하는 것입니다. 예를 들어 1995년 11월 24일생인 JJ3840 회원은 2022년과 27년 차이가 납니다. 이 27년을 1995년 11월 24일에 더하면 올해의 생일날인 2022년 11월 24일 입니다. TODAY()와 비교해보면 아직 이 회원은 생일이 지나지 않았기 때문에 27살이 아닌 26살로 계산되도록 합니다. 아래의 테이블을 참고해 볼 수 있습니다.

계산 방식 참고용

 

참고로 만들어진 필드는 측정값으로 생성됩니다. 측정값은 합계로 집계되는 부분에 주의해야합니다. 따라서 측정값이 아닌 차원으로 변경하여 이용할 수 있습니다.