본문 바로가기
카테고리 없음

구글 시트 ARRAYFORMULA로 배열 계산 자동화하는 완벽 가이드

by 시트자동화 2025. 10. 8.

구글 시트에서 수백 개의 행에 동일한 수식을 일일이 복사하는 작업은 비효율적이며 실수를 유발할 수 있습니다. ARRAYFORMULA 함수는 단 하나의 수식으로 전체 열 또는 범위의 계산을 자동으로 처리할 수 있는 강력한 도구입니다. 이 글에서는 ARRAYFORMULA의 기본 작동 원리와 실무에서 바로 활용할 수 있는 다양한 응용 사례를 상세하게 다룹니다. 특히 배열 연산의 개념부터 시작하여 조건부 계산과 다중 함수 결합 방법, 그리고 데이터 검증 및 자동 업데이트 시스템 구축까지 포괄적으로 설명합니다. 데이터 관리 업무의 자동화를 원하는 실무자들에게 실질적인 도움을 제공할 것입니다.


ARRAYFORMULA의 작동 원리와 기본 활용법

ARRAYFORMULA는 구글 시트만의 독특한 함수로, 단일 셀에 입력된 수식을 여러 행과 열에 자동으로 확장하여 적용하는 기능을 제공합니다. 일반적인 스프레드시트 함수가 하나의 셀 또는 범위에 대해 단일 결과를 반환하는 반면, ARRAYFORMULA는 전체 배열에 대한 연산을 수행하여 여러 개의 결과를 동시에 출력합니다. 이는 마치 프로그래밍 언어의 벡터 연산과 유사한 개념으로, 반복문 없이 대량의 데이터를 일괄 처리할 수 있게 해줍니다.

기본 문법은 매우 간단합니다. =ARRAYFORMULA(수식) 형태로 작성하며, 괄호 안의 수식에는 범위를 참조하는 표현식이 포함됩니다. 예를 들어 A열과 B열의 값을 곱하여 C열에 표시하려면 C1 셀에 =ARRAYFORMULA(A2:A*B2:B)와 같이 입력하면 됩니다. 이렇게 하면 A2부터 데이터가 있는 마지막 행까지 자동으로 계산되어 C열에 결과가 채워집니다. 주의할 점은 일반 수식처럼 단일 셀 참조(A2, B2)를 사용하는 것이 아니라 범위 참조(A2:A, B2:B)를 사용해야 한다는 것입니다.

ARRAYFORMULA의 가장 큰 장점은 데이터가 추가될 때 자동으로 계산이 확장된다는 점입니다. 새로운 행이 추가되면 별도의 수식 복사 없이 자동으로 계산 결과가 나타나므로, 지속적으로 업데이트되는 데이터베이스나 폼 응답 시트에서 특히 유용합니다. 또한 수식이 하나의 셀에만 존재하므로 수정이 필요할 때 해당 셀만 변경하면 전체 범위에 즉시 반영됩니다. 이는 수백 개의 셀에 복사된 수식을 일일이 수정해야 하는 번거로움을 완전히 제거합니다.

실제 업무에서는 단순 사칙연산뿐만 아니라 텍스트 결합, 날짜 계산, 조건부 서식 등 다양한 용도로 활용됩니다. 텍스트를 결합할 때는 =ARRAYFORMULA(A2:A&" "&B2:B)처럼 앰퍼샌드 연산자를 사용할 수 있으며, 날짜 계산에서는 =ARRAYFORMULA(A2:A+30)과 같이 전체 날짜 범위에 일괄적으로 일수를 더할 수 있습니다. 다만 모든 함수가 ARRAYFORMULA와 호환되는 것은 아닙니다. VLOOKUP, INDEX, MATCH 등 일부 함수는 배열 형태로 동작하지만, SUMIF나 COUNTIF 같은 조건부 집계 함수는 특별한 처리가 필요합니다. 이러한 제약사항을 이해하고 적절한 대체 방법을 사용하는 것이 중요합니다.


조건부 논리와 복합 함수를 결합한 고급 배열 연산

ARRAYFORMULA의 진정한 위력은 IF, IFERROR, ISBLANK 같은 조건부 함수와 결합할 때 나타납니다. 조건에 따라 다른 계산을 수행하거나 오류를 처리하는 로직을 배열 전체에 적용할 수 있기 때문입니다. 가장 기본적인 형태는 =ARRAYFORMULA(IF(A2:A>100, "고액", "일반"))과 같이 단일 조건을 검사하는 것입니다. 이 수식은 A열의 각 값을 확인하여 100보다 크면 고액, 그렇지 않으면 일반이라는 텍스트를 반환합니다.

더 복잡한 조건을 처리하려면 중첩 IF문을 사용할 수 있습니다. 예를 들어 점수에 따라 등급을 부여하는 경우 =ARRAYFORMULA(IF(A2:A="", "", IF(A2:A>=90, "A", IF(A2:A>=80, "B", IF(A2:A>=70, "C", "D")))))와 같이 작성합니다. 여기서 첫 번째 IF(A2:A="", "", ...)는 빈 셀을 처리하는 부분으로, 이를 포함하지 않으면 데이터가 없는 행에도 결과가 표시되어 시트가 지저분해집니다. 빈 셀 처리는 ARRAYFORMULA를 사용할 때 반드시 고려해야 할 중요한 요소입니다.

배열 내에서 합계나 평균을 구하는 것도 가능합니다. SUMIF나 COUNTIF 함수는 기본적으로 배열 연산을 지원하지 않지만, SUMPRODUCT나 MMULT 같은 행렬 함수를 활용하면 유사한 결과를 얻을 수 있습니다. 또는 조건부 집계가 필요한 경우 =ARRAYFORMULA(IF(A2:A="", "", SUMIF($A$2:$A, A2:A, $B$2:$B)))처럼 SUMIF를 ARRAYFORMULA 안에 포함시키되, 참조 범위를 절대 참조로 고정하는 방법도 있습니다. 다만 이 방식은 성능에 영향을 줄 수 있으므로 데이터가 매우 많은 경우 주의가 필요합니다.

텍스트 처리 함수와의 결합도 매우 유용합니다. ARRAYFORMULA와 REGEXMATCH를 함께 사용하면 정규표현식 패턴에 맞는 데이터를 필터링할 수 있고, SUBSTITUTE나 TRIM 함수를 적용하면 대량의 텍스트 데이터를 일괄 정제할 수 있습니다. 예를 들어 전화번호에서 하이픈을 제거하려면 =ARRAYFORMULA(IF(A2:A="", "", SUBSTITUTE(A2:A, "-", "")))와 같이 작성합니다. SPLIT 함수를 사용하면 하나의 셀에 있는 데이터를 여러 열로 분리하는 작업도 자동화할 수 있으며, 이는 CSV 형식의 데이터를 처리할 때 특히 효과적입니다. 이러한 고급 기법들을 조합하면 복잡한 데이터 가공 작업을 완전히 자동화할 수 있습니다.


실시간 데이터 검증 및 동적 대시보드 구축 전략

ARRAYFORMULA를 활용하면 데이터가 입력되는 즉시 유효성을 검증하고 오류를 표시하는 시스템을 구축할 수 있습니다. 이메일 주소 형식 검증을 예로 들면, =ARRAYFORMULA(IF(A2:A="", "", IF(REGEXMATCH(A2:A, "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"), "유효", "오류")))와 같은 수식으로 전체 이메일 목록을 실시간으로 검증할 수 있습니다. 이러한 검증 결과를 조건부 서식과 연결하면 시각적으로 오류 항목을 강조 표시할 수 있어 데이터 품질 관리가 훨씬 수월해집니다.

중복 데이터를 찾아내는 것도 ARRAYFORMULA의 중요한 활용 사례입니다. COUNTIF 함수를 배열 형태로 사용하여 =ARRAYFORMULA(IF(A2:A="", "", COUNTIF(A$2:A2, A2:A)))와 같이 작성하면, 각 행까지의 범위에서 해당 값이 몇 번 나타났는지 계산할 수 있습니다. 결과가 1보다 크면 중복으로 판단할 수 있으며, 이를 다시 IF문으로 감싸서 "중복" 또는 "고유"와 같은 레이블을 표시할 수 있습니다. 이러한 방식은 고객 데이터베이스나 재고 관리 시스템에서 데이터 무결성을 유지하는 데 필수적입니다.

동적 대시보드를 만들 때는 ARRAYFORMULA와 QUERY 함수를 조합하는 것이 효과적입니다. QUERY 함수는 SQL과 유사한 문법으로 데이터를 필터링하고 집계할 수 있는데, 이를 ARRAYFORMULA로 감싸면 더욱 복잡한 조건부 추출이 가능합니다. 예를 들어 월별 매출 합계를 자동으로 계산하는 대시보드를 만들려면, 날짜 열에서 월을 추출하는 ARRAYFORMULA와 해당 월의 매출을 합산하는 QUERY를 결합하면 됩니다. 또한 UNIQUE 함수와 함께 사용하면 고유한 값 목록을 동적으로 생성할 수 있어, 드롭다운 메뉴나 필터 옵션을 자동으로 업데이트하는 시스템도 구현할 수 있습니다.

성능 최적화도 중요한 고려사항입니다. ARRAYFORMULA는 강력하지만 잘못 사용하면 시트의 속도를 크게 저하시킬 수 있습니다. 특히 중첩된 ARRAYFORMULA나 복잡한 정규표현식은 계산 부하가 큽니다. 이럴 때는 계산 범위를 제한하거나, 꼭 필요한 경우가 아니면 배열 함수 대신 일반 수식을 사용하는 것이 좋습니다. 또한 참조하는 데이터 범위를 최소화하고, 가능한 한 절대 참조를 활용하여 불필요한 재계산을 방지해야 합니다. 대용량 데이터를 다룰 때는 필요한 열만 처리하고, 결과를 별도 시트에 저장한 후 해당 시트를 참조하는 방식으로 분리하는 것도 효과적인 전략입니다. 이렇게 구축된 자동화 시스템은 수동 작업 시간을 대폭 줄여주고 오류 가능성을 최소화하여 업무 효율성을 극대화합니다.