아마도 실무에서 가장 많이 하는 작업이 합(∑)을 구하는 것이 아닐까 한다. 합이란 말 그대로 더하기를 하는 거다. 이에 좀 유치하지만 아래 자료를 바탕으로 엑셀에서 더하기를 해본다.
![로딩 중...](http://www.iexceller.com/MyXls/External_lectures/OnRainbow/images/onrainbow_19_01.png)
엑셀에서는 더하기를 위해 Sum 함수를 지원하고 있으니 이용해 보자.
![로딩 중...](http://www.iexceller.com/MyXls/External_lectures/OnRainbow/images/onrainbow_19_02.png)
너무도 쉽구나(^^). 그럼 이번엔 조금 다르게 더하기를 하자.
![로딩 중...](http://www.iexceller.com/MyXls/External_lectures/OnRainbow/images/onrainbow_19_03.png)
어디선가 아우성이 들리는 것 같다(쉬운 거 놔두고 참 복잡하게도 산다).
방식2는 행렬을 이용한 더하기다. 정확하게는 더하기가 아니라 곱하기다. 더하기 얘기 하다가 갑자기 곱하기가 나와서 어리둥절 할 것 같은데, MMULT 함수의 이름 구성을 보면 'Matrix + Multiply, 즉 '행렬 곱하기'라고 충분히 유추할 수 있다. 그러니 위의 방식2는 행벡터와 열벡터를 곱한 것이다. 단지 행벡터의 원소가 모두 1이기 때문에 결과적으로 더하기와 같아진 것 뿐이다.
아무튼 계속 이어가 보자.
![로딩 중...](http://www.iexceller.com/MyXls/External_lectures/OnRainbow/images/onrainbow_19_04.png)
방식3은 방식2에서 사용한 행벡터를 조금 다르게 적용한 것이다. 여기서 TRANSPOSE(ROW(1:5)/ROW(1:5))가 왜 {1,1,1,1,1}이 되는 지는 각자 고민해 보시기 바란다.
참고로, 경우는 다르지만 오픈오피스의 캘크는 단위행렬을 지원하는 함수가 있어서 편리했는데 배열상수를 지원하지 않는 주소 체계라서 한 셀에서 한 방에 처리 할 수 없어 아쉬웠다.
방식2에서 방식3으로 넘어가는 게 자연스럽게(?) 느껴진다면,
![로딩 중...](http://www.iexceller.com/MyXls/External_lectures/OnRainbow/images/onrainbow_19_05.png)
방식4가 좀더 눈길을 끌지 않을까?(어이쿠, 아우성이 더 많이 들리는 것 같다) 하지만 조금만 더 찬찬히 봐주시기 바란다. 노파심에서 말인데, 일부러 복잡하게 더하기 한 게 아니니 오해 마시기를!
바로 앞 내용에 그다지 거부감이 없었다면 또 더하기를 하자.
![로딩 중...](http://www.iexceller.com/MyXls/External_lectures/OnRainbow/images/onrainbow_19_06.png)
자료가 조금 많다.
![로딩 중...](http://www.iexceller.com/MyXls/External_lectures/OnRainbow/images/onrainbow_19_07.png)
비슷한 것 같지만 앞에서 살펴본 방식과 뭔가 또 다르다?
그렇다. 앞에서는 MMULT 함수의 결과가 원소 하나만 나왔기에 SUM 함수를 사용하지 않았는데 여기서는 MMULT 함수 결과가 1 by 4 인 벡터로 나오기에 SUM을 한번 더 씌워줬다. 그렇지만 역시나... 쉬운 걸 놔두고 어렵게 산다.
그리고 빠뜨린 게 있는데, 수식의 구성에 따라 배열수식으로 입력해야 한다. 즉 수식 입력 후 ENTER 키만 누르는 게 아니라 CTRL + SHIFT + ENTER 키를 동시에 눌러야 한다.
이쯤에서 질문 하나 ㅡ 각각의 자료 열의 합이 가장 큰 열은?
뜬금 없는 질문인데 이와 유사한 질문이 어제 모 사이트에 올라왔다. 이 글을 작성하는 이유는 그 질문이 유익한 것이라고 생각되었기 때문이다. 조금 복잡하지만 여러분도 MMULT 함수의 매력을 느껴 보시기 바란다.
다시 돌아가서...
![로딩 중...](http://www.iexceller.com/MyXls/External_lectures/OnRainbow/images/onrainbow_19_08.png)
위의 그림처럼 별도 셀에 중간 결과값을 도출해 놓으면 나중 수식 작성이 쉽다. 이제 최대값을 갖는 자료 열을 찾는다.
![로딩 중...](http://www.iexceller.com/MyXls/External_lectures/OnRainbow/images/onrainbow_19_09.png)
방식1 나온거 봐서 또 줄줄이 엮어 방식4까지 가려는 거 아녀? ㅡ 그렇다!!
![로딩 중...](http://www.iexceller.com/MyXls/External_lectures/OnRainbow/images/onrainbow_19_10.png)
SUM을 놔두고 굳이 MMULT를 고려한 이유는 셀을 이용하지 않고 처리하기 위해서다. 이렇게 별도 셀을 이용하는 것과 이용하지 않는 것 중 어느 것이 효율적인지는 잘 모르겠지만, 자료를 처리하다 보면 셀 내에서만 처리해야 되는 경우가 가끔 있어서다.
![로딩 중...](http://www.iexceller.com/MyXls/External_lectures/OnRainbow/images/onrainbow_19_11.png)
![로딩 중...](http://www.iexceller.com/MyXls/External_lectures/OnRainbow/images/onrainbow_19_12.png)
![로딩 중...](http://www.iexceller.com/MyXls/External_lectures/OnRainbow/images/onrainbow_19_13.png)