수식이란 무엇인가.

"추석이란 무엇인가"

"추석이란 무엇인가"

제가 존경하는 김영민 교수님입니다. 머리스타일이 비슷해서 존경하는 것은 아닙니다. 김영민 교수님이 "추석이란 무엇인가"하고 물었던 것처럼, 일을 할 때 우리는 항상 당연시했던 것들을 되물어야 합니다. 수식이란 무엇인가.

우리는 매일매일 엑셀 수식을 쓰고 있습니다. 수식은 특정한 결과를 도출하기 위한 범위와 조건의 조합입니다. SUMIF(범위, 조건, 값범위)는 "조건에 맞는 셀의 합"을 구하기 위해 "범위"와 "값범위", "조건"을 조합합니다. VLOOKUP(조건, 범위, 몇번째 열)은 "조건에 맞는 옆옆 셀의 값"을 구하기 위해 "범위"와 "조건", "몇번째 열"이라는 다른 조건을 조합합니다. 즉, 수식은 범위와 조건의 조합입니다.

엑셀에서는 범위와 조건이 고정된 단일 값이고 따라서 반환하는 값도 단일값입니다. 그런데, 구글 시트는 좀 다릅니다. 사실 단일 값일 이유는 없잖아요. 그래서 구글 시트의 수식에서는 범위도 변화가능하고, 조건도 배열로 지정할 수 있습니다. 범위와 조건이 단일값이 아니므로 반환하는 값도 단일값이 아닌 배열입니다. 아까 잠깐 맛 보기로 봤던 { } 형식이나 IMPORTRANGE, ARRAYFORMULA가 모두 이런 류의, 배열을 반환하는 함수입니다. 엑셀에서는 배열을 범위로 사용하기 위해서는 CTRL+SHIFT+ENTER로 배열 수식을 만들어줘야 하고, 이 경우에도 배열함수가 들어갈 셀을 모두 미리 선택해주어야 합니다. 배열을 결과값으로 반환하는 함수도 TRANSPOSE등으로 제한적이고, 최근 오피스 2019에 들어온 FILTER, UNIQUE 함수 정도에서야 비슷한 기능이 생겼습니다.

그림으로 정리해보면 아래와 같습니다. 수식의 구성요소인 범위, 조건, 반환값이 엑셀은 모두 고정, 단일값인 반면, 구글시트는 범위도 변화가능하고 조건도 배열로 부여할 수 있으며 결과값이 배열로 반환됩니다. 구글시트의 생소한 함수들을 사용할 때 이 함수가 엑셀의 함수와 다른 것이 범위인지, 조건인지를 알면 적절한 함수를 고르는 데 도움이 됩니다.

그림으로 표현하면 대충 아래와 같습니다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/364ec553-1b75-444c-9fa8-5f30ba399980/Untitled.png

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/d52d1f83-473c-49f4-9a55-afccb71bffce/Untitled.png

변화가능한 범위; A:A vs A2:A, 2:2 vs A2:2

엑셀에도 변화가능한 범위를 지정하는 방법이 있습니다. 열 전체를 A:A 형식으로 지정하거나 행 전체를 2:2 형식으로 지정하는 방법입니다. 구글 시트는 특정 셀에서 시작해서 아래로 전체, 혹은 오른쪽으로 전체 셀을 선택할 수 있습니다. A2:AA2셀에서 시작해서 아래로 A열 전체를 범위로 선택하는 방법이고, A2:2A2셀에서 시작해서 2행 전체를 범위로 지정하게 됩니다. 변화가능한 범위를 사용하면 수식의 대상이 되는 데이터의 양이 달라지는 경우에도 수식을 수정할 필요가 없다는 장점이 있습니다. 좀 더 게을러질 수 있죠. 구글 시트는 특정 셀부터 시작하는 범위를 지정할 수 있기 때문에 엑셀보다 조금 더 편리합니다. 써보시면 금방 이해할 수 있습니다.

왜 내가 이제 와서 구글시트를 해야 합니다_final

예제를 수행해 봅니다. raw1과 raw2시트에 있는 데이터를 SUMIF로 계산해 볼 겁니다.

<aside> <img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/27b825e1-96b8-4faf-9e54-ad969c334cf1/fx.png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/27b825e1-96b8-4faf-9e54-ad969c334cf1/fx.png" width="40px" /> [예제2-1] SUMIF('raw2'!B9:B,B6,'raw2'!D9:D)

</aside>

위 수식은 친절하게도 이미 예제시트에 입력되어 있습니다. CTRL+~를 눌러서 수식을 비교해 볼까요? 엑셀은 B:B, D:D로 입력하는 범위를 구글 시트는 B9:B, D9:D로 입력합니다. 필요없는 값들이 범위에 참고되는 걸 방지할 수 있습니다. 예를 들어 제일 위 행에 합계를 계산해 놓았을 경우 유용하게 쓸 수 있습니다. 엑셀에도 2019버전부터 새로운 범위 기반 함수들이 들어오긴 했지만, 변화가능한 범위를 지정해주기 위해서는 OFFSET함수와 COLUMNS함수를 결합해서 사용해야 하는 등, 아직 귀찮은 일이 많습니다. 구글 시트는 엑셀에 비해 변화가능한 범위를 사용하기 편합니다.

ARRAYFORMULA(수식, 배열화된 조건)