글 수 11
본 강좌는 아별닷컴의 주인장 오주원에 의해 작성되었습니다. | |||||||||||
본 강좌에 설명된 내용은 저작권법에 의해 보호 받고 싶고, 개발자의 창의성만큼은 꼭 존중받았으면 좋겠습니다. | |||||||||||
http://www.abyul.com/zbxe/86606 | 작성일 : 2011-01-14 | ||||||||||
아별 함수 실전예제 | |||||||||||
아별이 만든 사용자 정의 함수(UDF : User Defined Function) | |||||||||||
이미 알고 계신것처럼.. 엑셀에는 많은 함수들이 있습니다. | |||||||||||
SUM()함수, AVERAGE()함수, COUNT()함수 등은 많이 보셨을 겁니다. | |||||||||||
위와 같은 엑셀 기본 함수 외에 사용자가 함수를 직접 작성해서 사용할 수 있습니다. | |||||||||||
그런 함수들을 사용자 정의 함수(UDF : User Defined Function)이라고 부릅니다. | |||||||||||
제가 엑셀을 사용하면서 | |||||||||||
아.. 이런 함수들이 있었으며 좋겠다고 생각해서 만든 함수들을 아별함수라고 명명해봤습니다. | |||||||||||
아별함수에 대한 소개는 아래 페이지를 참고하시기 바랍니다. | |||||||||||
http://www.abyul.com/zbxe/86606 | |||||||||||
아별함수의 활용 예 | |||||||||||
1. 수식에서 특정 값을 뽑아낼 때 | |||||||||||
엑셀의 수식 안에는 여러가지 정보를 담아놓을 수가 있습니다. | |||||||||||
예를 들어, 외화금액을 원화금액으로 환산할때 외화금액*환율이라는 수식을 써서 | |||||||||||
외화금액과 환율 정보를 수식안에 담아 놓을 수 있는 것이지요. 나중에 다시 확인할 수 있도록..ㅎ | |||||||||||
그렇게 수식안에 담겨 있는 정보를 뽑아낼때 아별함수를 사용할 수 있습니다. | |||||||||||
=ROUND(50000*1164.6,0) 라고 입력해서 원화금액을 구한 수식이 있다고 했을때, | |||||||||||
아래의 단계로 수식에서 외화금액과 환율을 뽑아낼 수 있습니다. | |||||||||||
a) 수식의 결과값이 아닌 수식 자체를 텍스트로 갖고 오는 f()함수 | |||||||||||
=f(D44) | |||||||||||
b) 수식에서 (문자와 *문자 사이의 값, 즉 외화금액을 갖고 오는 betweenText()함수 | |||||||||||
=betweenText( f(D44), "(", "*" ) | |||||||||||
c) 갖고온 외화금액을 숫자 값으로 만드는 value()함수 ←엑셀기본함수 | |||||||||||
=VALUE(betweenText( f(D44), "(", "*" )) | |||||||||||
원화금액 | 수식 | 외화 | 숫자로 | ||||||||
58,230,000 | =ROUND(50000*1164.6,0) | 50000 | 50,000 | ||||||||
* 환율은 아래처럼 하면 되겠죠? | |||||||||||
1,164.6 | =VALUE(betweenText(f(D44),"*",",")) | ||||||||||
2. 메모에서 특정 값을 뽑아낼 때 | |||||||||||
셀에 추가 정보를 담아놓는 방법 중에 하나인 메모를 살펴보겠습니다. | |||||||||||
Shift+F2를 누르면 메모를 삽입할 수 있는데요.. | |||||||||||
셀에 삽입된 메모의 값을 불러와 사용할 수 있는 아별함수 memo()를 알아보겠습니다. | |||||||||||
아래와 같은 메모가 삽입되어 있습니다. | |||||||||||
abyul: 던진도너츠 15개 견디셔 3개 세워깡 1봉지 |
|||||||||||
메모의 내용을 갖고 오는 memo()함수를 사용하면 아래와 같습니다. | |||||||||||
abyul: 던진도너츠 15개 견디셔 3개 세워깡 1봉지 | |||||||||||
=memo(C57) | |||||||||||
갖고 온 메모에서 각 요소별로 하나씩 갖고 올때 | |||||||||||
abyul: | =splitText(memo($C$57),CHAR(10),1) | ||||||||||
던진도너츠 15개 | =splitText(memo($C$57),CHAR(10),2) | ||||||||||
견디셔 3개 | =splitText(memo($C$57),CHAR(10),3) | ||||||||||
세워깡 1봉지 | =splitText(memo($C$57),CHAR(10),4) | ||||||||||
* 줄바꿈을 의미하는 char(10)을 구분자로 하여 텍스트 나누기했습니다. | |||||||||||
댓글 '3'
memo함수는 왜 엑셀의 기본 함수에 없을까 싶을정도로 꽤 유용한 함수입니다.
수식 자체를 참조하는 f()함수도 마찬가지로 엑셀의 기본 함수에 포함되었으면 하는 함수 중에 하나입니다. ㅎㅎ
암튼..
아별함수를 잘 사용하고 계신다고 하니.. 기분이 좋습니다. ^^
한 시트에 메모가 중구난방으로 여러군데 들어가 있다면,
아별툴 리본 메뉴에서 Info > memo List 하시면 현재 시트의 메모들의 리스트를 만들어줍니다.
리스트에는 메모별 링크도 생성되므로 찾아가기도 쉽습니다. ㅎㅎ
이런 함수가 있었으면 좋겠다고 생각하시는게 있으면 의견 주세요.. 적극 반영합니다. ^^