본문 바로가기

Google Spreadsheet

[기초] 함수에 대해서

   함수(Function)

 학창시절에 수학 시간에 공부한 함수를 기억하시나요? y=f(X) 같은 함수들이죠. 예를 들어, y=2x라는 함수를 생각해봅시다. y=f(x)라고 표현할 수 있고, f(x)=2x라고 표현 할 수도 있죠. 이 함수의 x에 1이 대입될 경우 어떤 결과가 나올까요? 당연히 2라는 결과가 나옵니다. 이 함수에서 x에 1이 대입되었을 때 2 외의 답은 절대 나올 수 없습니다.

 

 갑자기 수학 이야기가 왜 나오지 싶은 분들이 계실것 같습니다. 하지만 이 기본적인 함수의 개념은 구글 스프레드시트의 함수를 이해하는데 도움이 됩니다. sum() 함수를 예로 들어보겠습니다. 엑셀 처음 공부하시는 분들이 가장 먼저 접하는 함수는 아마도 sum()함수가 아닐까 싶습니다. 입력된 범위 또는 수들의 합을 계산해주는 집계함수죠. sum()함수를 통해 구글 스프레드시트에서의 함수가 무엇인지 알아보도록 하겠습니다.

 

   구글 스프레드시트에서의 함수

 sum()함수에 인자(argument)로 x1, x2, x3를 넣어 합을 계산해봅시다(=sum(x1, x2, x3)). 이 함수에서 어떤 결과가 나올까요? 엑셀을 한번도 공부해보지 않으셨어도 x1, x2, x3의 합이 나올 것이라는걸 쉽게 추측할 수 있습니다. 처음 말씀드린 수학 함수처럼 표현하면 다음과 같습니다.

y(결과값) = sum(x1, x2, x3) = x1 + x2 + x3

 x1, x2, x3에 각각 2, 3, 4를 대입하면 '=sum(2, 3, 4)'와 같은 구글 스프레드시트에서 작동하는 함수를 작성할 수 있습니다. 이 식의 값은 2, 3, 4의 합인 9를 계산해줍니다. 여기서 알 수 있는건 구글 스프레드시트 함수는 다음 형식으로 작성된다는걸 알 수 있니다. '=함수명(인자1, 인자2, 인자3, ...)'

 

   함수의 작동과정

 어떻게 9라는 결과가 나온걸까요? 그 과정을 알아보기 위해 sum_two_num()라는 임의의 함수를 만들어보겠습니다. 이 함수는 두개의 숫자가 함수의 변수로 입력되면 합을 계산해줍니다. 구글 스프레드시트 내에서 엑셀의 VBA처럼 매크로를 만들 수 있는 App Script가 있습니다. 여기서 프로그레밍 언어인 Java Script로 다음과 같이 커스텀 함수를 만들 수 있습니다.

 

 프로그레밍을 모르시는 분들이어도 이 함수가 어떻게 작동할지 예측이 가능할거라 생각됩니다. x1, x2에 입력된 두 값을 더해서 계산해주는 함수이지요. 만든 sum_two_num() 함수를 구글 스프레드시트에서 실행시키면 의도했던 결과가 정확하게 나옵니다.

위 sum_two_num()함수는 예시를 위하여 간단히 만든 함수입니다. 구글 스프레드시트에 있는 함수들은 다양한 경우를 고려하였기에 저 함수보다 당연히 더 복잡할 수 밖에 없습니다. 다만, 위 케이스에서 알아두셔야 하는 점은 함수는 특정한 코드를 통하여 (필요에 따라 인자를 받은 후) 계산된 값을 반환한다는 점을 알아두시면 좋겠습니다. 

 

   결론

 구글 스프레드시트의 모든 함수는 함수 개발자이 의도한 대로 작동합니다. 위에서 제가 직접 개발한 sum_two_number() 함수처럼 두 수의 덧셈을 의도한 것처럼 말이죠. 하지만 이 커스텀 함수는 여러 문제점이 있습니다. 대표적으로 기존의 sum() 함수와는 달리 세개 이상의 숫자의 합을 구할 수 없죠. 그래서 sum() 함수와 같은 구글 스프레드시트에 기본으로 설계된 함수들은 함수 개발자들이 다양한 경우들을 고려하여 사용자들이 사용하기 쉽고 편하게 만든 개발자들의 노력이 담겨있습니다. 

 

그러면 모든 함수의 실제 작동 코드를 알고 있어야 함수를 효과적으로 쓸 수 있을까요? 아닙니다. 함수의 학습 포인트는 해당 함수가 어떠한 값을 반환하는지, 어떠한 자료 형태의 인자를 넣어야하는지, 인자를 어떠한 순서로 넣어야 하는지 등의 기본적인 논리만 알면 누구나 쉽게 구글 스프레드시트의 함수를 마스터 할 수 있습니다.