나눔터  
  HOME > 나눔터 > 묻고답하기 > 엑셀
엑셀
엑셀에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내

작성자:  

 따따티 (fgdwwt)

추천:  2
파일:     조회:  3655
제목:   해당월의 일수만 가져오기
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 엑셀 버전(95,97,2000,xp,2003,2007):2010

* 아래줄에 질문을 작성하세요 >>

참조값      불러올값
2018-02-01 28
2018-03-01 31
2018-04-01 30

참조값이 
2018-02-01일 경우 2월의 일수 28
2018-03-01일 경우 3월의 일수 31

이처럼 해당월의 일수만 가져올 수 있을까요?
부탁드립니다.

 
[불량 게시물 신고]  
조삿갓워크시트에서(참조 값이 A열에 있다고 가정할 때)
=EOMONTH(A1, 0)
=> 필요한만큼 아래로 복사
End Of Month의 의미로
첫번째 인수는 날짜 일련번호, 두번째 인수는 정수 값입니다.
주어진 날짜 일련번호가 속한 달을 기준으로, 정수 값만큼 전/후의 달(0이면 같은달, -1이면 전월, 1이면 익월, 3이면 석달 후...)의 월말일을 알려줍니다.

또는, 연도 값(정수)과 월(정수)을 가지고 계산할 경우에는
=DATE(연도, 월+1, 0)
으로 구할 수도 있습니다
DATE 함수의 연도 값은 반드시 양수여야 하지만(아니면 오류 발생)
월이나 일에 해당하는 값은 음수를 주어도 오류가 발생하지는 않고 그만큼 이전 달, 이전 날짜의 값을 계산해 줍니다.
마찬가지 원리로
=DATE(2018,15,0)
은 2019년 2월 말일을 구합니다.(윤/평년 자동)
05-08 (22:56)
삭제 ■신고
조삿갓VB에서는 EOMONTH에 대응하는 라이브러리 함수는 없습니다.
물론
WorksheetFunction.EoMonth(날짜, 가산값)
과 같이 빌어다 쓸 수는 있겠지요.

다만, DATE 함수에 대응하는 VB 함수인 DateSerial 함수에서도
월이나 일 지정 값을 음수 또는 12나 31보다 큰 값으로 쓸 수 있습니다.
DateSerial(2016, 3, 0) => 2016년 2월 말일
DateSerial(2018, 15, 0) => 2019년 2월 말일
05-08 (23:07)
삭제 ■신고
조삿갓이상 세 가지 함수 모두 날짜 일련번호를 반환하므로,
월말일의 날짜를 정수로 받고 싶으면 DAY 함수를 덧씌워주면 됩니다. 즉,

=DAY(EOMONTH(A1, 0))

=DAY(DATE(2018,3,0))

Day(DateSerial(2016, 3, 0))
05-08 (23:11)
삭제 ■신고
따따티출장 갔다가 지금 확인했습니다.
상세한 설명 정말 감사합니다.
유용하게 잘 쓰겠습니다.
05-27 (17:41)
삭제 ■신고
        
  

작성일 : 2018-05-08(17:05)
최종수정일 : 2018-05-08(17:05)