구글 스프레드시트 QUERY 함수 기초: 방대한 데이터를 자유자재로 추출하는 법

여러 개의 시트에 흩어져 있는 방대한 데이터에서 특정 조건에 맞는 자료만 골라 별도의 표를 만드는 작업은 매우 번거로운 일입니다. 필터 기능을 매번 수동으로 조작하거나 복잡한 필터 함수를 여러 번 중첩해서 사용하다 보면 수식이 꼬이고 관리하기가 어려워집니다. 이 글에서는 SQL의 강력한 기능을 스프레드시트에서 구현하여 단 하나의 수식으로 데이터를 자유자재로 요약하고 추출할 수 있는 QUERY 함수의 기본 사용법을 알아보겠습니다.

1. QUERY 함수의 개념과 기본 구문 이해하기

QUERY 함수는 구글 스프레드시트에서 가장 강력한 함수 중 하나로, 데이터베이스에서 사용하는 SQL 문법을 사용하여 데이터를 조회합니다. 단순히 값을 찾아오는 VLOOKUP이나 INDEX MATCH와 달리, 데이터의 추출, 정렬, 필터링, 산술 계산까지 수식 하나로 해결할 수 있다는 점이 가장 큰 특징입니다.

기본적인 구문은 다음과 같습니다. 에디터의 코드 블록 기능을 활용하여 수식의 형태를 명확히 인지하는 것이 중요합니다.

=QUERY(데이터_범위, "SELECT 명령문", [헤더_행_수])

첫 번째 인자인 데이터 범위는 조회할 전체 표 영역을 의미하며, 두 번째 인자인 SELECT 명령문은 어떤 열을 가져올지, 어떤 조건을 걸지를 결정하는 핵심 부분입니다. 마지막 헤더 행 수는 제목 줄이 몇 줄인지 지정하는 것으로 보통 1을 입력합니다.



2. 특정 열만 골라서 추출하는 방법

모든 열이 아닌 필요한 열만 선택해서 가져오고 싶을 때는 SELECT 문을 사용합니다. 예를 들어 A열부터 E열까지 있는 표에서 사원명인 B열과 부서명인 D열만 가져오고 싶다면 다음과 같이 작성합니다.

[이미지 1: 구글 스프레드시트에서 QUERY 함수를 사용하여 특정 열만 추출하는 화면 스크린샷 / Alt: 구글 스프레드시트 QUERY 함수 SELECT 구문 활용 예시]

=QUERY(A1:E100, "SELECT B, D", 1)

이 수식을 입력하면 원본 데이터에서 B열과 D열의 내용만 실시간으로 동기화되어 나타납니다. 원본 값이 수정되면 QUERY 함수가 적용된 결과값도 자동으로 업데이트되므로 매우 효율적입니다.

3. WHERE 절을 활용한 조건부 데이터 필터링

특정 조건에 맞는 행만 추출하고 싶을 때는 WHERE 절을 추가합니다. 이는 수동 필터 기능을 수식으로 자동화하는 것과 같습니다. 예를 들어 부서가 마케팅인 데이터만 추출하고 싶다면 아래와 같은 형식을 취합니다.

[이미지 2: WHERE 절 조건을 입력하여 특정 부서 데이터만 필터링한 결과 화면 / Alt: QUERY 함수 WHERE 조건을 이용한 데이터 필터링 방법]

=QUERY(A1:E100, "SELECT B, D WHERE D = '마케팅'", 1)

문자열 조건을 입력할 때는 반드시 작은따옴표(' ')로 감싸주어야 한다는 점을 유의해야 합니다. 숫자의 경우에는 따옴표 없이 WHERE E > 50000과 같은 방식으로 작성하여 일정 수치 이상의 데이터만 골라낼 수 있습니다.

4. ORDER BY를 이용한 데이터 정렬 자동화

추출된 데이터를 특정 기준에 따라 정렬하고 싶을 때는 ORDER BY 명령어를 사용합니다. 오름차순은 ASC, 내림차순은 DESC를 뒤에 붙여줍니다. 급여가 높은 순서대로 사원 명단을 보고 싶다면 다음과 같이 입력합니다.

[이미지 3: ORDER BY 구문을 통해 데이터를 내림차순으로 자동 정렬한 모습 / Alt: QUERY 함수 ORDER BY 명령어를 활용한 데이터 정렬 가이드]

=QUERY(A1:E100, "SELECT B, E ORDER BY E DESC", 1)

이처럼 QUERY 함수는 열 선택, 필터링, 정렬을 한 줄의 수식 안에 나열하여 처리할 수 있습니다. 이는 여러 함수를 중첩해서 사용하는 것보다 훨씬 가독성이 높고 오류를 수정하기에도 용이합니다.

결론 및 요약

지금까지 구글 스프레드시트의 핵심 기능인 QUERY 함수의 기초 사용법에 대해 상세히 알아보았습니다. SELECT로 필요한 열을 정하고, WHERE로 조건을 걸며, ORDER BY로 정렬하는 이 세 가지 단계만 익혀도 실무에서 다루는 데이터 관리 업무의 상당 부분을 자동화할 수 있습니다.

이 가이드가 여러분의 데이터 관리 효율을 높이는 데 도움이 되었기를 바랍니다. 다음 포스팅에서는 QUERY 함수를 더욱 강력하게 만들어주는 집계 함수(SUM, AVG, COUNT)와 그룹화(GROUP BY) 기능에 대해 심도 있게 다루어 보겠습니다.

구글 스프레드시트 INDEX MATCH 함수: VLOOKUP의 한계를 넘는 최강 조합

지난 포스팅에서 다뤘던 VLOOKUP 함수는 매우 유용하지만, 결정적인 단점이 하나 있습니다. 바로 '기준 열의 왼쪽에 있는 데이터는 가져올 수 없다'는 점입니다. 또한, 데이터가 방대해지면 계산 속도가 느려지기도 하죠.

이러한 VLOOKUP의 치명적인 한계를 완벽하게 해결해 주는 것이 바로 INDEX와 MATCH 함수의 조합입니다. 오늘은 실무 고수들만 안다는 이 두 함수의 협업 원리와 활용법을 상세히 파헤쳐 보겠습니다.



1. INDEX와 MATCH, 각각 어떤 역할을 하나요?

이 두 함수를 합치기 전에, 각각의 기능을 먼저 이해하는 것이 중요합니다.

INDEX 함수: "좌표로 값 찾기"

INDEX 함수는 지정한 범위 내에서 특정 행과 열이 교차하는 지점의 값을 가져옵니다.

  • 구문: =INDEX(범위, 행_번호, [열_번호])

  • 역할: "이 표에서 5번째 줄, 2번째 칸에 있는 값을 가져와!"라고 명령하는 것과 같습니다.

MATCH 함수: "값의 위치 번호 찾기"

MATCH 함수는 내가 찾는 값이 특정 범위 내에서 몇 번째에 위치하는지 '숫자'로 반환합니다.

  • 구문: =MATCH(검색_값, 범위, [일치_유형])

  • 역할: "이 명단에서 '홍길동'이 몇 번째 줄에 있어?"라고 물어보고 그 줄 번호를 알려줍니다.

2. 왜 INDEX와 MATCH를 같이 써야 할까요? (VLOOKUP과의 차이)

VLOOKUP보다 이 조합이 강력한 이유는 크게 세 가지입니다.

  1. 왼쪽 방향 검색 가능: VLOOKUP은 기준 열 기준 오른쪽 데이터만 찾을 수 있지만, INDEX MATCH는 데이터 위치와 상관없이 어디든 찾을 수 있습니다.

  2. 유지보수의 편리함: 중간에 열을 삽입하거나 삭제해도 수식이 깨지지 않습니다. VLOOKUP은 열 번호를 숫자로 직접 입력하기 때문에 표 구조가 바뀌면 오류가 발생합니다.

  3. 대용량 데이터 최적화: 수만 행의 데이터에서 VLOOKUP보다 훨씬 빠르게 결과값을 계산합니다.

3. 실전! INDEX MATCH 합체 공식

이제 두 함수를 하나로 합쳐보겠습니다. 기본 구조는 다음과 같습니다.

=INDEX(가져올_값이_있는_열, MATCH(찾을_기준_값, 기준_열, 0))

사례: 사원번호로 사원명 찾기 (사원명이 사원번호보다 왼쪽에 있을 때)

  • A열: 사원명

  • B열: 사원번호

  • C열: 부서

사원번호(B열)를 기준으로 왼쪽에 있는 사원명(A열)을 찾고 싶다면?

=INDEX(A:A, MATCH("S2026", B:B, 0))

  1. MATCH: B열에서 "S2026"이라는 사원번호가 몇 번째 행에 있는지 찾습니다. (예: 5행)

  2. INDEX: A열(사원명 열)에서 MATCH가 찾아준 5번째 행의 값을 가져옵니다.

4. 자주 발생하는 오류 및 해결 팁

#N/A 오류

MATCH 함수에서 찾는 값이 범위 내에 없을 때 발생합니다. 정확한 값을 찾으려면 MATCH의 마지막 인자인 '일치_유형'을 반드시 0으로 설정했는지 확인하세요.

#REF! 오류

INDEX 범위로 지정한 영역보다 더 큰 행/열 번호를 참조하려고 할 때 발생합니다. 범위 지정이 제대로 되었는지, 혹은 전체 열(A:A 등)을 선택했는지 체크해 보세요.

5. [심화] 다중 조건으로 데이터 찾기

VLOOKUP으로는 불가능에 가까운 '두 가지 이상의 조건'을 만족하는 값 찾기도 가능합니다.

예를 들어, '학년'과 '반'이라는 두 가지 조건을 모두 만족하는 학생의 이름을 찾을 때 INDEX MATCH는 수식 하나로 깔끔하게 해결할 수 있습니다. (이 부분은 다음 심화 가이드에서 더 자세히 다루겠습니다.)

결론 및 요약

처음에는 INDEX와 MATCH를 따로 쓰는 것이 복잡해 보일 수 있습니다. 하지만 "MATCH로 줄 번호를 찾고, INDEX로 그 줄의 값을 집어온다"는 개념만 잡으면 VLOOKUP보다 훨씬 안전하고 강력한 데이터 관리가 가능해집니다.

스프레드시트 실력을 한 단계 업그레이드하고 싶다면, 오늘부터 VLOOKUP 대신 INDEX MATCH를 연습해 보시는 건 어떨까요?

행동을 이끄는 문장의 힘: 고단가 전환을 유도하는 심리적 콘텐츠 설계법

블로그 운영에서 트래픽이 엔진의 연료라면, 콘텐츠 설계는 그 연료를 추진력으로 바꾸는 정교한 기계 장치와 같습니다. 단순히 정보를 나열하는 것만으로는 독자의 시선을 오래 붙잡을 수 없으며, 광고 클릭과 같은 구체적인 행동을 이끌어내기도 어렵습니다. 독...