📐 기초 개념: 행, 열, 키 이해하기
인터랙티브 그리드 다이어그램
행 (Row)
가로 방향으로 배열된 셀들의 집합으로, 숫자로 식별됩니다. 하나의 레코드나 개체의 모든 정보를 담습니다.
열 (Column)
세로 방향으로 배열된 셀들의 집합으로, 알파벳으로 식별됩니다. 같은 속성의 데이터를 담습니다.
키 (Key)
각 행을 고유하게 식별할 수 있는 값입니다. 중복되면 안 되는 고유 식별자 역할을 합니다.
🔍 LOOKUP 함수군: 데이터 검색의 핵심
VLOOKUP
=VLOOKUP(search_key, range, index, is_sorted)
세로 방향으로 값을 검색하여 같은 행의 다른 열 값을 반환합니다.
예제:
=VLOOKUP("김철수", A2:D10, 3, FALSE)
A2:D10 범위에서 "김철수"를 찾아 3번째 열의 값 반환
HLOOKUP
=HLOOKUP(search_key, range, index, is_sorted)
가로 방향으로 값을 검색하여 같은 열의 다른 행 값을 반환합니다.
예제:
=HLOOKUP("1월", A1:M3, 2, FALSE)
가로로 배치된 월별 데이터에서 "1월"의 값 찾기
XLOOKUP
=XLOOKUP(search_key, lookup_range, result_range, missing_value)
양방향 검색을 지원하는 더 유연한 검색 함수입니다.
예제:
=XLOOKUP(A2, B:B, C:C, "없음")
A2 값을 B열에서 찾아 C열의 대응값 반환, 없으면 "없음" 표시
언제 어떤 함수를 사용할까요?
| 함수 | 검색 방향 | 장점 | 제한사항 | 추천 상황 |
|---|---|---|---|---|
| VLOOKUP | 세로 (↓) | 가장 널리 사용됨 | 왼쪽 열에서만 검색 | 일반적인 데이터 테이블 |
| HLOOKUP | 가로 (→) | 가로 배치 데이터에 적합 | 첫 번째 행에서만 검색 | 월별/분기별 데이터 |
| XLOOKUP | 양방향 | 가장 유연함 | 구버전에서 지원 안됨 | 복잡한 검색 요구사항 |
⚡ IF 함수군: 조건부 로직의 마스터
IF
=IF(logical_expression, value_if_true, value_if_false)
조건에 따라 다른 값을 반환하는 기본 조건함수입니다.
예제:
=IF(A1>80, "합격", "불합격")
=IF(AND(A1>60, B1>60), "통과", "재시험")
IFS
=IFS(condition1, value1, condition2, value2, ...)
여러 조건을 순차적으로 평가하여 해당하는 값을 반환합니다.
예제:
=IFS(A1>=90, "A", A1>=80, "B", A1>=70, "C", TRUE, "F")
점수에 따른 등급 부여 (90이상=A, 80이상=B, 70이상=C, 나머지=F)
IFERROR
=IFERROR(value, value_if_error)
오류 발생 시 대체값을 반환하여 에러를 방지합니다.
예제:
=IFERROR(VLOOKUP(A1, B:C, 2, FALSE), "미등록")
VLOOKUP에서 값을 찾지 못하면 "미등록" 표시
조건부 집계 함수들
SUMIF / SUMIFS
=SUMIF(A:A, ">=100", B:B)
조건에 맞는 값들의 합계를 구합니다.
COUNTIF / COUNTIFS
=COUNTIF(A:A, "합격")
조건에 맞는 셀의 개수를 세어줍니다.
AVERAGEIF / AVERAGEIFS
=AVERAGEIF(A:A, ">80", B:B)
조건에 맞는 값들의 평균을 구합니다.
📊 QUERY 함수: SQL과 같은 강력한 데이터 조작
QUERY 함수는 SQL과 유사한 문법으로 데이터를 필터링, 정렬, 집계할 수 있는 강력한 함수입니다.
기본 필터링
=QUERY(A:E, "SELECT * WHERE B > 50")
B열 값이 50보다 큰 모든 행을 선택합니다.
문자열 검색
=QUERY(A:E, "SELECT * WHERE C CONTAINS '서울'")
C열에 '서울'이 포함된 모든 행을 선택합니다.
복합 조건
=QUERY(A:E, "SELECT * WHERE B > 50 AND C = '개발부'")
B열이 50보다 크고 C열이 '개발부'인 행을 선택합니다.
정렬과 제한
=QUERY(A:E, "SELECT * ORDER BY B DESC LIMIT 10")
B열을 기준으로 내림차순 정렬하여 상위 10개 행만 표시합니다.
QUERY 연산자 가이드
논리 연산자
AND- 그리고OR- 또는NOT- 아님
문자열 연산자
CONTAINS- 포함STARTS WITH- ~로 시작ENDS WITH- ~로 끝남MATCHES- 정규식 매치
날짜 함수
YEAR()- 연도 추출MONTH()- 월 추출DAY()- 일 추출
🔗 IMPORTRANGE: 외부 데이터 연동
IMPORTRANGE
=IMPORTRANGE("spreadsheet_url", "range_string")
다른 구글 시트에서 데이터를 가져올 수 있습니다.
예제:
=IMPORTRANGE("1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms", "Class Data!A2:E")
지정된 시트의 'Class Data' 탭에서 A2:E 범위 데이터 가져오기
IMPORTRANGE 활용 팁
💡 권한 설정
처음 사용 시 소스 시트에 대한 액세스 권한을 허용해야 합니다.
⚡ 성능 최적화
필요한 범위만 지정하여 불필요한 데이터 로딩을 피하세요.
🔄 실시간 업데이트
소스 데이터가 변경되면 자동으로 반영됩니다.
🚨 일반적인 오류와 해결방법
#N/A
=IFNA(VLOOKUP(A1, B:C, 2, FALSE), "찾을 수 없음")
#REF!
- 삭제된 행/열 참조 확인
- 범위 선택 다시 확인
- 절대 참조($) 사용 고려
#VALUE!
- 숫자가 텍스트로 저장되었는지 확인
- VALUE() 함수로 텍스트를 숫자로 변환
- 따옴표 사용법 확인
💡 모범 사례
1. 절대 참조 사용
복사 시 범위가 변하지 않도록 $ 기호를 활용하세요.
$A$1:$C$10
2. 오류 처리
IFERROR, IFNA 함수로 사용자 친화적인 메시지를 제공하세요.
3. 데이터 검증
입력 전에 데이터 형식과 범위를 확인하세요.