오늘 날짜를 구해주는 today, 지금의 날짜와 시간을 구해주는 now, 요일이 뭔지 알려주는 weekday, 몇 번째 주인지 알려주는 weeknum, 그리고 기간이 1년중 차지하는 비율을 알려주는 yearfrac에 대해 알아보겠습니다.
5. 오늘은 today 함수
① 함수는 인수를 입력받는데, today와 now는 인수가 필요없습니다. 왜냐하면 오늘을 구해주는 함수이고, 오늘이 몇 일인지 컴퓨터가 알고 있기 때문입니다. 그렇다고 괄호까지 입력하지 않으면 안됩니다.
따라서,
=today()
라고 입력하면 됩니다.
② A3셀에 =today()라고 입력하면 날짜가 표시됩니다.
③ A4셀에
="오늘은 " & a3 & " 입니다."
라고 입력하면 어떻게 될까요?
날짜로 표시되지 않고 숫자로 표시됩니다. 날짜의 원래 모습은 숫자이기 때문인 듯 합니다.
④ 그렇다면 어떻게 해야 날짜로 표시될까요?
text 함수를 써서 A5셀에
="오늘은 " & text(a3,"yyyy-mm-dd") & " 입니다."
라고 입력해야 합니다.
text함수로 숫자를 표시할 때는 "#,##0.00" 식으로 지정했는데, 날짜는 "yyyy-mm-dd"라고 지정합니다. 대소문자를 구분하지 않기 때문에 "YYYY-mm-DD"라고 지정해도 결과는 같습니다.
⑤ A열의 너비가 좁으므로 A열과 B열 사이를 더블클릭해서 열 너비를 자동 조절하겠습니다.
⑥ 아래와 같이 입력된 값에 맞게 열 너비가 자동 조절됩니다.
⑦ A6셀에
="오늘은 " & text(a3,"yy-m-d") & " 입니다."
라고 입력하면
위와 같이 19-9-6이라고 두 자리-한 자리-한 자리로 표시됩니다.
⑧ 그렇다면 19-9-16이면 어떻게 표시될까요?
A3셀에 +10을 추가해서
=today()+10
이라고 입력해 봅시다.
날짜를 d라고 줬지만 숫자가 16이므로 두 자리로 표시됩니다.
today()함수도 연산자를 사용해 더하고, 뺄 수 있습니다.
=today()-10
하면 2019-08-27 이 됩니다.
6. 지금은 now 함수
①now함수는 날짜뿐만 아니라 시간까지 표시해주는 기능이 today 함수와 다릅니다.
B3셀에
=now()
라고 입력해 봅시다.
초는 안나오고 날짜와 시간이 분까지 표시됩니다.
② 물론 사용자 지정형식을 사용하면 초까지 표시할 수 있습니다.
㈀ 표시형식 콤보박스의 역삼각형 버튼을 누른 다음, '기타 표시 형식'을 클릭합니다.
㈁ 똑같은 것은 없고 가장 비슷한 것이 yyyy-mm-dd h:mm 입니다.
㈂ 형식 줄 mm 다음에 :ss 를 추가하고, 확인버튼을 클릭합니다.
㈃ 그러면 아래와 같이 초까지 표시되는 것을 알 수 있습니다.
㈄ F2키를 누른 다음 엔터 키를 치면 now가 현재 날짜 및 시간을 알려주는 함수이므로 시간이 바뀝니다.
엑셀 파일을 저장했다가 내일 그 파일을 열면 today함수의 날짜도 자동으로 바뀝니다.
㈅ today 함수의 경우 시,분,초가 표시되는지 B3셀의 서식을 A3셀에 복사해 보겠습니다.
B3셀이 선택된 상태에서 홈 - 서식복사 아이콘을 클릭합니다.
㈆ A3셀을 마우스로 클릭합니다. 그러면 A3셀에 서식이 아래와 같이 적용됩니다.
now함수는 시:분:초가 있는데, today 함수는 시:분:초가 0임을 알 수 있습니다.
㈇ B5셀에
="오늘은 " & text(b3,"yy-m-d") & " 입니다."
라고 입력하고,
b6셀에는
="오늘은 " & text(b3,"yy-m-d h:m:s") & " 입니다."
라고 입력해 봅시다.
text 함수로 지정한 표시형식에 따라 날짜와 시간이 표시되는 것을 알 수 있습니다.
㈈ B열과 C열 사이 경계선을 마우스로 더블 클릭해서 B열의 너비를 자동 조절합니다.
7. 요일에 해당하는 수는 weekday 함수
① weekday 함수는 요일에 해당하는 수를 반환해 줍니다.
입력 형식은 WEEKDAY(serial_number,[return_type]) 로
일련번호는 날짜에 해당하는 수인데, 수를 알기 어려우므로 날짜를 입력한 후 그 셀의 주소로 입력하는 것이 편하며, 반환 형식은 대괄호로 되어 있으므로 생략 가능한데, 아래 표와 같습니다.
return_type | 반환되는 수 |
1 또는 생략 | 1(일요일)에서 7(토요일) 사이의 숫자 (Microsoft Excel 이전 버전과 같음) |
2 | 1(월요일)에서 7(일요일) 사이의 숫자 |
3 | 0(월요일)에서 6(일요일) 사이의 숫자 |
11 | 1(월요일)에서 7(일요일) 사이의 숫자 |
12 | 1(화요일)에서 7(월요일) 사이의 숫자 |
13 | 1(수요일)에서 7(화요일) 사이의 숫자 |
14 | 1(목요일)에서 7(수요일) 사이의 숫자 |
15 | 1(금요일)에서 7(목요일) 사이의 숫자 |
16 | 1(토요일)에서 7(금요일) 사이의 숫자 |
17 | 1(일요일)에서 7(토요일) 사이의 숫자 |
반환 형식을 생략하면 1은 일요일, 7은 토요일이 됩니다.
② c3셀에
=weekday(today())
라고 입력해 봅시다.
③ 오늘은 금요일이므로 6이라고 표시됩니다.
④ 숫자가 무엇을 의미하는지 헷갈리므로 이 때는 choose 함수를 사용할 수 있는데, choose함수는 숫자에 따른 결과값을 알려주는 함수입니다.
입력형식은
=choose(숫자,1에 대한 값,2에 대한 값,...........)
입니다.
⑤ 따라서,
C4셀에
=choose(weekday(today()),"일","월","화","수","목","금","토")
라고 입력하면 결과값은 아래와 같습니다.
⑥ C4셀을 복사해서 C5셀에 붙여 넣고, today()를 A3으로 바꿔봅시다.
8.27의 요일은 3인 화요일입니다.
⑦ 아래와 같이 마우스로 끌어 weekday(a3)를 선택한 다음 F9키를 누르면
3으로 바뀝니다. 원래의 수식으로 돌아가기 위해 Esc키를 누릅니다.
8. 몇 번째 주인지는 weeknum 함수
① weeknum은 몇 번째 주인지 알려주는 함수로 인수는 weekday와 같아서,
WEEKNUM(serial_number,[return_type])
식으로 입력하는데, 반환 형식은 아래와 같습니다.
return_type | 주가 시작되는 요일 | 체계 |
1 또는 생략 | 일요일 | 1 |
2 | 월요일 | 1 |
11 | 월요일 | 1 |
12 | 화요일 | 1 |
13 | 수요일 | 1 |
14 | 목요일 | 1 |
15 | 금요일 | 1 |
16 | 토요일 | 1 |
17 | 일요일 | 1 |
21 | 월요일 | 2 |
각국의 제도에 따라 반환 형식이 다른데, 우리는 일요일부터 시작하므로 1 또는 17이고, 생략하면 1입니다.
② D3셀에
=weeknum(a3)
라고 입력합니다.
8월 27일은 35번째 주입니다.
9. 기간이 1년중 차지하는 비율 계산은 yearfrac 함수
① yearfrac 함수는 시작일로부터 종료일까지의 기간이 1년중 차지하는 비율을 계산해 줍니다. frac는 fraction의 약자로 비율이란 개념입니다. YEARFRAC(start_date, end_date, [basis]) 식으로 입력하는데, 시작일과 종료일은 바뀌어도 관계없으며, basis는 아래와 같습니다.
basis | 날짜 계산 기준 |
0 또는 생략 | 미국(NASD) 30/360 |
1 | 실제/실제 |
2 | 실제/360 |
3 | 실제/365 |
4 | 유럽 30/360 |
생략하면 360일을 기준으로 계산하기 때문에 생략하면 이상한 결과가 나오므로 반드시 1로 입력해야 합니다. 1로 하면 윤년인 경우는 366일이 됩니다.
② E3셀에
=yearfrac("2019-01-01",today(),1)
라고 입력하면
③ 검증을 해보면
e4셀에 =today() 라고 입력하고,
e5셀에 "2019-01-01"이라고 입력한 후
e6셀에=days(e5, e4) 라고 입력하고,
e7셀에 =e6/365라고 입력합니다.
그러나, 365는 해에 따라 달라지므로, 올해 말에서 작년 말을 빼는 것이 좋습니다.
올해 말은 올해 날짜 기준으로 연도, YEAR를 구하고, 12,31이므로,
DATE 함수를 이용해 DATE(YEAR(E4),12,31)이 되고,
작년 말은 올해 날짜 기준으로 연도에서 1을 뺀 다음, 12,31 이므로,
DATE(YEAR(E4)-1,12,31)이 됩니다.
올해 말에서 1월 1일을 빼면 364가 되기 때문에 연말에서 작년말을 빼는 것입니다.
따라서 e7셀의 수식은
=E6/(DATE(YEAR(E4),12,31)-DATE(YEAR(E4)-1,12,31))
이 됩니다.
e3셀의 값과 e7셀의 값이 같으므로 yearfrac 값이 맞는 것입니다.
④ yearfrac(e5,e4) 라고 입력하면 360일을 기준으로 하므로 값이 커집니다.
⑤ 그런데, 역산해 보면 364.408163이 나옵니다. 이상하네요.
'Excel' 카테고리의 다른 글
엑셀, 텍스트와 숫자 다루기(1)(텍스트와 숫자의 구분, 입력 방법, 에러 표시시 조치방법) (0) | 2020.07.23 |
---|---|
엑셀 날짜 관련 함수 총정리(6) (workday.intl, networkdays.intl) (0) | 2020.07.21 |
엑셀 날짜 관련 함수 총정리(3) (year, month, day, hour, minute, second, date, time 함수) (2) | 2020.07.16 |
엑셀 날짜 관련 함수 총정리(2) (days, networkdays, datedif 함수) (0) | 2020.07.15 |
엑셀 날짜 관련 함수 총정리(1) (연산자 +,- 및 workday, edate, eomonth 함수) (0) | 2020.07.14 |