기본 콘텐츠로 건너뛰기

글

라벨이 스칼라 연산인 게시물 표시

[엑셀]배열수식이란 무엇인가 — 하나의 셀에 여러 계산이 담기는 원리 스칼라 연산과 배열 연산의 차이

 셀 하나를 클릭했는데 그 안에서 수백 번의 계산이 동시에 일어나고 있다면 믿어지는가. 앞선 글에서 다룬 SUMPRODUCT나 SUMIF의 조건 판정이 바로 그런 경우였다. 겉으로는 셀 하나에 결과값 하나만 보이지만, 그 이면에서는 범위 전체를 대상으로 한 계산이 통째로 진행되고 있었다. 이 글에서는 이 현상의 정체, 즉 배열수식이라는 개념을 원리 차원에서 짚어본다. 스칼라 연산과 배열 연산의 차이 평소 우리가 쓰는 대부분의 수식은 '스칼라 연산'이다. =A2+B2 처럼 셀 하나와 셀 하나를 계산해서 값 하나를 내놓는 방식이다. 입력도 하나, 출력도 하나다. 반면 '배열 연산'은 여러 개의 값을 하나의 묶음(배열)으로 취급해서 한꺼번에 계산한다. =A2:A10+B2:B10 이라고 쓰면, 이는 A2+B2, A3+B3, ... A10+B10이라는 아홉 번의 계산을 동시에 수행하라는 뜻이 된다. 입력은 여러 개(범위 대 범위)지만, 이 계산 결과를 최종적으로 어떻게 압축해서 보여줄지는 그 다음 문제다. 결과가 여러 개인데 셀은 하나뿐이라면? 여기서 배열수식의 진짜 개념이 드러난다. 아홉 번의 계산 결과 아홉 개의 값이 나왔는데, 이를 담을 셀이 하나뿐이라면 엑셀은 어떻게 해야 할까. 과거 방식에서는 이 아홉 개의 값을 SUM이나 COUNT 같은 함수로 다시 하나로 압축해서 보여주는 방식을 썼다. 예를 들어 {=SUM(A2:A10*B2:B10)} 이라는 수식은 A와 B 각 행을 곱한 아홉 개의 결과를 배열로 만든 뒤, 그 아홉 개를 SUM으로 다시 하나로 합쳐 셀 하나에 담아내는 구조다. 여기서 중괄호 {} 는 사용자가 직접 입력하는 기호가 아니라, 예전 엑셀에서 Ctrl+Shift+Enter를 눌러 "이건 배열수식입니다"라고 선언했을 때 엑셀이 자동으로 붙여주던 표시였다. 왜 예전에는 이런 특별한 입력이 필요했나 일반 함수는 셀 하나 대 셀 하나로 계산하도록 설계되어 있었기 때문에, 여러 값을 배열째로 넘기려면 엑셀에게...