엑셀(Excel)

[Excel]생일 알림 및 메시지 만들기-TEXT, AND, MONTH,DAY

진아사랑해 2022. 12. 17. 10:04
반응형

개요

현재 날짜가 알려진 생일과 일치할 때 '생일 축하합니다!'를 표시하려면 IF 함수와 TODAY 함수를 사용하여 TEXT 함수를 기반으로 하는 공식을 사용할 수 있습니다. 

=IF(TEXT(D6,"mmdd")=TEXT(TODAY(),"mmdd"),"생일 축하합니다!","")

E의 각셀에 공식이 복사되면 D열의 생일이 현재 날짜와 일치하면 "생일 축하합니다!"가 반환됩니다. 그렇지 않으면 공식은 빈 문자열()을 반환하고 빈 셀로 표시됩니다.

일반적으로 사용되는 수식

=IF(TEXT(D2,"mmdd")=TEXT(TODAY(),"mmdd"),"생일 축하합니다!","")

이 예에서 목표는 주어진 셀의 생일이 현재 날짜와 일치할 때 생일 축하 메시지를 표시하는 것입니다.

연도를 무시한 채 주어진 생일을 현재 날짜와 비교하는 것이 문제의 핵심입니다.

그 문제에 접근하는 두 가지 주요 방법이 있다.

첫 번째 방법은 MONTH 함수와 DAY 함수를 사용하여 D열의 생일을 현재 날짜와 비교하는 것입니다. 이것은 잘 작동하지만 공식은 조금 더 복잡합니다.

두 번째 방법은 사용자 지정 번호 형식의 TEXT 함수를 사용하여 D열의 생일을 현재 날짜와 비교하는 것입니다. 이 해결책은 좀 더 멋있습니다.

또 다른 수식

이 문제에 대한 전통적인 솔루션은 다음과 같은 공식을 사용하는 것입니다.

=IF(AND(MONTH(C5)=MONTH(TODAY()),DAY(C5)=DAY(TODAY())),"생일 축하합니다!","")

IF 함수 내부의 논리 테스트는 AND 기능을 기반으로 합니다.

AND(MONTH(C5)=MONTH(TODAY())

AND 함수 내부에는 월을 확인하는 논리식과 일을 확인하는 논리식 두 가지가 있습니다.

MONTH(C5)= MONTY(TODAY()) // 월 확인

DAY(C5)= DAY(TODAY()) // 일 확인

MONTH함수는 지정된 날짜의 월을 숫자로 반환합니다(즉, MONTH는 5월 날짜의 경우 5를 반환함).

DAY 함수는 날짜의 일 부분을 반환합니다.

TODAY 함수는 현재 날짜를 반환합니다.

기본적으로 AND 함수 내부의 논리식은 월과 일이 모두 일치하는지 확인합니다. 

AND 함수는 월과 일이 모두 일치하는 경우에만 TRUE로 반환됩니다.

즉, 현재 날짜에 맞는 생일을 의미합니다.

AND가 TRUE를 반환하면 IF 함수는 결과적으로 생일 축하합니다!를 반환합니다.

월 또는 일이 일치하지 않으면 AND는 FALSE를 반환하고 IF 함수는 빈 문자열()을 반환합니다. 이 공식은 잘 작동하지만 TEXT 함수는 아래에 설명된 바와 같이 공식을 어느 정도 간소화할 수 있습니다.

https://power-of-optimism.tistory.com/757

 

[Excel]Month() 월 함수

개요 MONTH() 함수는 주어진 날짜에서 1에서 12 사이의 숫자로 월을 추출합니다. MONTH() 함수를 사용하여 날짜에서 월 숫자를 셀로 추출하거나 DATE 함수와 같은 다른 함수에 월 숫자를 입력할 수 있

power-of-optimism.tistory.com

TEXT 함수 사용하는 수식

TEXT 함수는 또한 이 문제를 보다 멋진 방식으로 해결하는 데 사용될 수 있습니다. TEXT 함수는 수식 내부에 사용자 지정 번호 형식을 적용하는 데 사용됩니다. 월과 일만 포함된 숫자 형식을 사용하면 두 값을 동시에 확인할 수 있습니다. 표시된 워크시트에서 E열의 공식은 다음과 같습니다.

=IF(TEXT(D6,"mmdd")=TEXT(TODAY(),"mmdd"),"생일 축하합니다!","")

IF 기능 내부에서 논리적 테스트는 다음과 같습니다.

TEXT(D6,"mmdd")=TEXT(TODAY(),"mmdd")

여기서 TEXT 함수는 숫자 형식 mmdd를 D열의 날짜와 TODAY 함수에서 제공하는 현재 날짜에 모두 적용하는 데 사용됩니다. 표시된 워크시트에서 D2의 날짜는 1998년 1월 23일이고 현재 날짜는 2022년 12월 17일입니다. 이 날짜를 사용하여 TEXT 함수는 다음과 같은 월과 일을 모두 포함하는 텍스트 문자열을 반환합니다.

TEXT(TODAY(),mmdd) // 1217을 반환합니다.

TEXT(D2,mmdd) // 0123을 반환합니다.

이러한 값이 일치하지 않으므로 논리 테스트는 FALSE를 반환하고 IF 함수는 빈 문자열()을 반환합니다. 그러나 D6의 날짜가 1998년 12월 17일인 D6열에는 다음이 있습니다.

TEXT(TODAY(),mmdd) // 0513을 반환합니다.

TEXT(D6,mmdd) // 0513을 반환합니다.

여기서 텍스트 값이 일치합니다. 논리 테스트는 TRUE를 반환하고 IF 함수는 결과적으로 생일 축하합니다!를 반환합니다.

이름이 포함된 메시지 출력

생일 축하 메시지에 이름을 포함하려면 다음과 같이 C열의 이름을 연결할 수 있습니다.

위 예제를 사용하시기 바랍니다

 

 

 

반응형