엑셀에서 주어진 날짜를 생년월일로 하는 만나이를 계산하는 것은 상당히 귀찮고 번거로운 일입니다.
- 오늘의 연도에서 해당 날짜의 연도를 빼면 기본적으로 나이가 되지만,
- 아직 생일을 지나지 않았다면 1을 더 빼야 합니다. 생일이 지나지 않았다는 것은,
- 이번달이 해당 날짜의 월보다 크거나,
- 이번달이 해당 날짜의 월이면서 오늘 일자가 해당 날짜의 일자보다 큰 것을 의미합니다.
만약 생년월일이 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)