책 내용 질문하기
응용해본 문제, 약간 난이도가. YEAR()
도서
[2011] 컴퓨터활용능력 1급 실기(엑셀, 액세스 2003 사용자용)
페이지
조회수
44
작성일
2011-08-07
작성자
첨부파일

컴활 1급 실기/ 엑셀/기본3/문제 2-6

=IF(YEAR(TODAY()-$B21),150000,50000)//제가 만든 답.

=IF(YEAR(TODAY())-YEAR($B21)>=12, 150000,50000) //답지에 있는 답

위의 두공식이 저는 같아 보이는 데 ,, 실제로 해보니까 아니네요

두개가 다른것은 YEAR()로 묶였는가 아닌가 차이인데, 어짜피 B21도 셀 수식이 날짜로 되어있기 때문에

TODAY()-B21하면 되지 않나요? 그것을 YEAR()로 묶으면 답이 나와야 하는것 아닙니까?

모르겠어요 부탁드립니다.

답변
2011-08-07 22:55:14

날짜가 실제적으로 컴퓨터 내 메모리 상에 저장될 때는 정수값 형태의 일련번호로 저장됩니다.

즉, 1900년 1월 1일부터 흘러간 날짜수를 정수값으로 저장하고 있죠.(엑셀 함수사전 11page DATE함수 설명부분을 읽어보시면 정확히 알 수 있을것입니다.)

우리가 엑셀의 셀에 표시된 대로 보이는 날짜는 단지 서식이 그렇게 지정되어 있기 때문입니다.

함수에서 날짜간의 계산은 바로 일련번호대로 저장되어있는 정수값 사이의 계산입니다. 즉 질문자님께서 작성하신 수식은 오늘날짜의 일련번호에서 B21셀에 있는 날짜의 일련번호를 뺀 것입니다. 이는 말 그대로 B21에 있는 날짜부터 오늘까지 지난 날짜 수를 내보내게 되죠. 이를 이용하여 YEAR함수로 년도 계산을 하면 책의 답과 같이 구한 것과 차이가 날 수도 있습니다. 왜냐하며, 다음과 같은 이유 때문입니다.

만약 2010년 12월 31일이 입사일이고 오늘이 2011년 1월1일 이라 합시다.

질문자님 수식대로라면 날짜끼리 그냥 뺐으므로 그 결과값은 1일이 될 것입니다. 이 1일을 year함수의 인자로 넣었으니 이는 1년=365일이 되지 않아 0을 출력하겠죠.

반대로 책의 정답대로 하면 입사일과 오늘 날짜의 년도만을 Year함수로 따로 얻어서 뺐기 때문에

2011-2010 = 1이 출력될 것입니다.

한국나이와 만으로 나이의 차이같은 거죠...

이런 차이죠. 그리고 문제를 푸실 때는 아래 주어진 조건을 잘 읽어보셔야 합니다. 문제 조건에 보니 "근속년수는 올해의 연도에서 입사일의 연도를 빼는 것으로 계산하시오." 라고 나와 있네요.

실제로 만약 이런 조건이 없다면 질문자님께서 쓰신 수식도 맞을 수 있겠으나, 조건에 명확히 제시되어 있을경우에는 그 조건에 맞게 수식을 작성하셔야 합니다.

  • *
    2011-08-07 22:55:14

    날짜가 실제적으로 컴퓨터 내 메모리 상에 저장될 때는 정수값 형태의 일련번호로 저장됩니다.

    즉, 1900년 1월 1일부터 흘러간 날짜수를 정수값으로 저장하고 있죠.(엑셀 함수사전 11page DATE함수 설명부분을 읽어보시면 정확히 알 수 있을것입니다.)

    우리가 엑셀의 셀에 표시된 대로 보이는 날짜는 단지 서식이 그렇게 지정되어 있기 때문입니다.

    함수에서 날짜간의 계산은 바로 일련번호대로 저장되어있는 정수값 사이의 계산입니다. 즉 질문자님께서 작성하신 수식은 오늘날짜의 일련번호에서 B21셀에 있는 날짜의 일련번호를 뺀 것입니다. 이는 말 그대로 B21에 있는 날짜부터 오늘까지 지난 날짜 수를 내보내게 되죠. 이를 이용하여 YEAR함수로 년도 계산을 하면 책의 답과 같이 구한 것과 차이가 날 수도 있습니다. 왜냐하며, 다음과 같은 이유 때문입니다.

    만약 2010년 12월 31일이 입사일이고 오늘이 2011년 1월1일 이라 합시다.

    질문자님 수식대로라면 날짜끼리 그냥 뺐으므로 그 결과값은 1일이 될 것입니다. 이 1일을 year함수의 인자로 넣었으니 이는 1년=365일이 되지 않아 0을 출력하겠죠.

    반대로 책의 정답대로 하면 입사일과 오늘 날짜의 년도만을 Year함수로 따로 얻어서 뺐기 때문에

    2011-2010 = 1이 출력될 것입니다.

    한국나이와 만으로 나이의 차이같은 거죠...

    이런 차이죠. 그리고 문제를 푸실 때는 아래 주어진 조건을 잘 읽어보셔야 합니다. 문제 조건에 보니 "근속년수는 올해의 연도에서 입사일의 연도를 빼는 것으로 계산하시오." 라고 나와 있네요.

    실제로 만약 이런 조건이 없다면 질문자님께서 쓰신 수식도 맞을 수 있겠으나, 조건에 명확히 제시되어 있을경우에는 그 조건에 맞게 수식을 작성하셔야 합니다.

  • *
    2011-08-08 14:13:17

    year 안에서 today와 b21의 날짜모두 year 로 계산해 주지 않습니다.

    그렇기 때문에 님과 같이 쓰시면

    오늘 날짜에서 b21을 바로 빼고 난 후에 year 함수를 계산하게 되죠. 이렇게 되면

    정확한 결과가 나오지 않게 됩니다.

    위의 최정헌님의 설명을 참고해 주세요.

    좋은 하루 되세요.

    "
· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.