-
여러 기념일 중 다가올 빠른 기념일 계산하기Excel/Excel 지식인 2022. 11. 27. 17:01728x90
포스트 목차.
01. 문제Q. 엑셀 함수 질문 드립니다.
날짜 관련된 엑셀 함수 좀 부탁드립니다.
일단 두 기념일이 있습니다. 하나는 2011년 11월 24일, 또 하나는 2012년 12월 17일 입니다.
이 두 기념일은 2년이 주기입니다. 엑셀에 앞으로 다가올 가장 빠른 기념일을 표시하고 싶습니다.
예를 들어 오해엔 두 기념일이 엑셀에 2023년 11월 24일 / 2022년 12월 17일로 나올 수 있도록요.
2023년 11월 10일에 엑셀 파일을 열면 2023년 11월 24일 / 2024년 12월 17일
2023년 11월 30일에 엑셀 파일을 열면 2025년 11월 24일 / 2024년 12월 17일.. 이런식요.문제를 해석하면 다음과 같다.,
1) 2년 단위로 챙기는 기념일 두 개 있다.
2) 오늘날짜를 기준으로 다가올 기념일 중에 빠른 기념일들을 표기
02. 문제 해결 방법(1) 오늘날짜 확인하기
오늘날짜는 now 함수 또는 today 함수로 구할 수 있다.
(2) 날짜 만들기 (년,월,일)
기념일을 만들기 위해서는 년,월,일 정보를 이용하여 날짜를 만들어야 한다.
년, 월, 일에 대한 정보를 이용하여 날짜를 만드는 함수는 Date 함수이다.
https://eggdrop.tistory.com/67
(3) 두 날짜의 전/후 확인하기
엑셀에서 날짜는 숫자로 저장되기 때문에 두 날짜의 빼기 연산을 통해 전/후 관계를 확인 할 수 있다.
A날짜 - B날짜의 값이 0보다 크면 A날짜가 시간적으로 후에 있다고 볼 수 있다.
(4) 날짜에서 년도 추출하기
year함수를 사용하여 날짜에서 년도를 추출할 수 있다.
https://blog.naver.com/excali/222939492391
(5) 짝수와 홀수여부 화인
짝수 여부 확인하기
ISEVEN 함수 사용
홀수 여부 확인하기
ISODD 함수 사용
(6) 가까운 기념일 찾기
기념일1은 2011년 11월 24일을 기준으로 2년마다 챙겨야 한다.
기념일2는 2012년 12월 17일을 기준으로 2년마다 챙겨야 한다.
현재의 년도가 짝수일 경우)
기념일2의 년도는 현재의 년도 또는 현재의 년도 +2가 된다.
기념일1의 년도는 현재의 년도+1이 된다.
현재의 년도가 홀수일 경우)
기념일1의 년도는 현재의 년도 또는 현재의 년도 +2가 된다.
기념일2의 년도는 현재의 년도 +1이 된다.
03. 예제 및 설명(1) 오늘날짜 구하기
NOW 함수를 이용하여 오늘날짜를 구한다.
(2) 기념일 정보를 년/월/일로 구분하여 입력한다.
(3) 오늘날짜에서 년도를 추출한다.
(4) 오늘날짜에서 추출한 년도를 기준으로 기념일1과 기념일2의 기준 년도를 구한다.
오늘의 년도가 홀수인 경우에 기념일1의 년도는 그대로 사용, 짝수인 경우에는 오늘 년도에서 1을 더한다.
오늘의 년도가 짝수인 경우에 기념일2의 년도는 그대로 사용, 홀수인 경우에는 오늘 년도에서 1을 더한다.
(5) 계산한 년도 정보를 기반으로 기념일 만들기
위의 그림처럼 DATE함수를 이용하여 기념일1을 만든다.
위의 그림처럼 DATE함수를 이용하여 기념일2를 만든다.
(6) 기념을 날짜까지 포함하여 재계산
위의 그림처럼 기념일들이 계산되었지만 마지막으로 확인할 것이 있다. 위에 계산한 날짜는 년도만 고려하여 만든 값이므로 만든 기념일이 오늘날짜보다 전에 있을 경우에는 2를 더해주는 로직이 추가되어야 한다.
- 기념일 1 계산
=IF(DATE(D27,E26,F26)-B26>0,DATE(D27,E26,F26),DATE(D27+2,E26,F26))
기념일1의 날짜와 오늘날짜를 비교하여 오늘날짜가 기념일1의 날짜를 경과한 경우 기념일에 2년 더한 값 출력
- 기념일2 계산
=IF(DATE(G27,H26,I26)-B26>0,DATE(G27,H26,I26),DATE(G27+2,H26,I26))
(7) 최종적으로 계산된 기념일
- 만약 오늘날짜를 수기로 입력하여 2022년 12월 18일로 바꾸게 되면 다음과 같은 결과를 볼 수 있다.
(번외) 이전 포스트에서 다룬 LET 함수를 이용하여 수식을 간소화 해보자
https://eggdrop.tistory.com/91
=LET(d_1,DATE(D27,E26,F26),IF(d_1-B26>0,d_1,DATE(D27+2,E26,F26)))
d_1 -> DATE(D27,E26,F26) 로 선언하여 수식 간소화
=LET(d_2,DATE(G27,H26,I26),IF(d_2-B26>0,d_2,DATE(G27+2,H26,I26)))
d_2 -> DATE(G27,H26,I26)로 선언하여 수식 간소화
간소화 한 결과
728x90'Excel > Excel 지식인' 카테고리의 다른 글
엑셀 여러가지 데이터 조건에 따른 합계 내는 방법 (0) 2023.01.16 엑셀 배열 수식의 IF 연산 (0) 2023.01.10 엑셀에서 특정 조건을 만족하는 문자열만 합치기 (2) 2022.11.15 엑셀로 로또 번호 생성기를 만들어 보자 (0) 2022.10.30 Excel 지식인 011. 엑셀을 이용하여 도수분포표 작성하기 (0) 2022.10.03