제품 상세정보
[ 기초 강좌 ]
제 31강
사용자정의함수(근속수당)
사용자정의함수를 이용해 근속수당을 구해봅니다.
이럴 때 필요해요
입사날짜가 다 다른 사람들의 근속수당을 구할떄 사용됩니다.
이렇게 사용해요
위의 표에서 근속년수에 해당하는 값은 언젠가 배운 적이 있는 매크로함수 DATEDIF()함수를 사용한 결과입니다만
위 표의 근속수당란에 해당하는 값은 어떻게 산출해야 할까요?
즉, 근속년수를 3년, 5년, 7년,…21년까지로 구분하여 각각 10,000원, 20,000원…100,000원 등으로 산출해야 한다면
무슨 함수를 사용해야 할까요?
예? IF()함수로 해결하면 되지 않겠느냐구요? 글쎄요!
=IF(D5>=3,10000,IF(D5>=5,20000,IF(D5>=7,30000……))) 의 형태로 중첩하여 입력한다 해도 아시는 바와 같이
IF() 함수는 7개 이상 중첩할 수 없으며, 설령 7개 이상 중첩하여 사용할 수 있다 하더라도 수식이 엄청 길어져서
나중에는 무슨 내용인지조차 이해할 수 없는 사태(?)가 발생할 수도 있을 것입니다.
이와 같이 실제로 업무에서 Excel이 제공하는 함수로는 해결하기 어려운 경우가 적지 않은데, 바로 이런 경우에
필요한 함수(사용자정의 함수)을 만들어 사용합니다.
이것이 바로, 사용자정의 함수 의 매력이라고도 할 수 있을 것입니다.
그렇다고 해서, 엄청 복잡하거나 어려울 것도 없습니다.
자! 그럼, 모듈시트에서 Function프로시저로 다음내용을 추가시켜봅시다
Function 근속수당(근속년수)
Dim yNum As Integer
yNum = 근속년수
If yNum < 3 Or yNum > 25 Then
근속수당 = "해당없음"
Else
근속수당 = Int((yNum - 1) / 2) * 10000
End If
End Function
앞서에서도 소개해 드린 바와 같이 사용자정의 함수의 구문은 'Function('~~기능을 하다'라는 뜻이죠?)'로
시작해서 'End Function' 으로 마칩니다.
위의 구문 중 시작부분인 'Function 근속수당(근속년수)' 에서 '근속수당' 은 함수의 기능에 맞게 적당히 붙여 준 이름이고
그밑의 코드 부분에 대해서는 특별히 설명드릴 것도 없어 생략합니다.
다만, 근속수당 = Int((yNum - 1) / 2) * 10000 에서의 Int 부분은 Excel에서의 INT 함수와 동일한 기능을 갖습니다.
위 E5 셀을 클릭한 상태로 [함수]-[사용자 정의]에서 '근속수당()' 이라는 함수를 선택한 다음,'근속년수' 입력란에
위 그림과 같이 입력하고 '확인' 해 보십시요.
그리고 나서 나머지 영역(E6:E19)에 '자동채우기'를 사용하여 값을 구한 다음, 그 결과값을 살펴 보시기 바랍니다.
각 근속년수에 따른 근속수당의 금액이 정확하게 출력될 것입니다.
자! 어떻습니까?... 생각보다는 어렵지 않죠? *^^*
이렇게 한번 만들어진 사용자정의 함수는 다른 함수들과 마찬가지로 필요할 때 마다 아래의 그림과 같이 [함수마법사] 메뉴의
'사용자 정의' 목록에서 찾아 사용하시면 됩니다.
다만, 현재 파일에서 만들어진 사용자정의 함수는 다른 파일에서는 사용할 수 없습니다.
저작권정보
1. 콘텐츠의 저작권은 쿠키(www.coukey.co.kr)에 있으며, 사용권한은 1인 1카피입니다.
2. 다운로드 받은 콘텐츠는 본인(본인회사)만 사용할 수 있습니다.
3. 다른 사람과 공유하거나 원본 또는 수정 후 무단전제,무단배포,무단판매,무단 공유할 수 없습니다.
4. 웹상에서 배포는 상업,비상업적 목적을 불문하고, 손해배상등 가중처벌됩니다.
2. 다운로드 받은 콘텐츠는 본인(본인회사)만 사용할 수 있습니다.
3. 다른 사람과 공유하거나 원본 또는 수정 후 무단전제,무단배포,무단판매,무단 공유할 수 없습니다.
4. 웹상에서 배포는 상업,비상업적 목적을 불문하고, 손해배상등 가중처벌됩니다.