콘텐츠로 건너뛰기
Home » 엑셀에서 주어진 생년월일로부터 만나이 구하기

엑셀에서 주어진 생년월일로부터 만나이 구하기

엑셀에서 주어진 날짜를 생년월일로 하는 만나이를 계산하는 것은 상당히 귀찮고 번거로운 일입니다.

  1. 오늘의 연도에서 해당 날짜의 연도를 빼면 기본적으로 나이가 되지만,
  2. 아직 생일을 지나지 않았다면 1을 더 빼야 합니다. 생일이 지나지 않았다는 것은,
  3. 이번달이 해당 날짜의 월보다 크거나,
  4. 이번달이 해당 날짜의 월이면서 오늘 일자가 해당 날짜의 일자보다 큰 것을 의미합니다.

만약 생년월일이 A2 셀에 있다면, 그 날짜에 대한 오늘 기준의 만나이는 다음과 같이 계산합니다.

=YEAR(TODAY()) - YEAR(A2) - IF(
   OR(MONTH(TODAY()) > MONTH(A2), 
      AND(MONTH(TODAY()) = MONTH(A2), DAY(TODAY()) > DAY)
   ), 
  1, 0
)

날짜를 년, 월, 일로 분리해서 오늘과 그날을 비교해야하는 로직이기 때문에 불가피하게 수식이 복잡하고 길어집니다. 물론 오늘의 연, 월, 일을 특정한 셀에 넣어두고 참조하는 방법도 있겠지만, 그것도 뭐 그리 내키는 수식은 아닙니다.

하지만 엑셀에서 날짜를 다루는 방식을 이해한다면 좀 더 간단한 만나이 계산을 할 수 있습니다. 엑셀에서 날짜는 1900년 1월 1일부터 하루씩 센 일수로 정의됩니다. 따라서 TODAY() – A2 라고하면, A2의 날짜에서 오늘까지의 일수가 됩니다. 이 값을 윤년을 포함한 1년의 평균일수로 나눈 몫이 바로 현재의 만 나이가 됩니다. 물론 이렇게했을 때 나이가 수 백살이 된다면 오차가 발생할 수도 있겠지만, 인간 수명이라고 할 수 있는 기간 내에서는 오차가 발생하지 않습니다. (실제로 1900년 1월 1일생부터 시작해서 하루씩 날짜에 대해 만나이를 위 두 가지 방식으로 구해서 차이가 나는지로 검증해봐도 됩니다.)

=INT((TODAY() - A2) / 365.25)

댓글 남기기