# Google Sheets 함수 마스터하기 (10/10): 고급 팁 & 함수 조합 총정리 ## 시리즈 완결편 지난 9편에 걸쳐 Google Sheets의 핵심 함수들을 배웠습니다. 마지막 편에서는 이 모든 것을 조합하여 실무에서 바로 사용할 수 있는 고급 패턴과 팁을 총정리합니다! --- ## Part 1: 함수 조합 마스터 ### 조합 1: 완전 자동화 대시보드 여러 함수를 결합하여 자동 업데이트되는 대시보드를 만들어봅니다. #### 데이터 (판매!A1:F) | 날짜 | 영업사원 | 지역 | 제품 | 수량 | 금액 | |------|----------|------|------|------|------| #### 대시보드 필터 (대시보드!A1:A3) - A1: 지역 드롭다운 - A2: 제품 드롭다운 - A3: 기간 선택 #### 동적 필터 결과 ``` =IFERROR( SORT( FILTER(판매!A2:F, (판매!C2:C=대시보드!A1)+(대시보드!A1="전체"), (판매!D2:D=대시보드!A2)+(대시보드!A2="전체"), 판매!A2:A>=대시보드!B1, 판매!A2:A<=대시보드!B2 ), 6, FALSE ), "조건에 맞는 데이터가 없습니다" ) ``` --- ### 조합 2: 다중 파일 통합 리포트 IMPORTRANGE + QUERY + ARRAYFORMULA 조합: ``` =QUERY( { ARRAYFORMULA({"서울", IMPORTRANGE("서울URL", "매출!A2:E100")}); ARRAYFORMULA({"부산", IMPORTRANGE("부산URL", "매출!A2:E100")}); ARRAYFORMULA({"대구", IMPORTRANGE("대구URL", "매출!A2:E100")}) }, "SELECT Col1, SUM(Col5) WHERE Col5 IS NOT NULL GROUP BY Col1 ORDER BY SUM(Col5) DESC LABEL Col1 '지역', SUM(Col5) '총매출'" ) ``` 각 지역 파일에서 데이터를 가져와 지역 라벨을 추가하고 통합 집계! --- ### 조합 3: 스마트 검색 시스템 여러 열에서 동시 검색: ``` =FILTER(A2:F100, REGEXMATCH(A2:A100&B2:B100&C2:C100, "(?i)"&$H$1) ) ``` H1에 검색어를 입력하면 이름, 부서, 직급 모든 열에서 검색! --- ### 조합 4: 조건부 VLOOKUP 대체 일반 VLOOKUP은 첫 번째 일치만 반환합니다. 모든 일치를 반환하려면: ``` =FILTER(B2:D100, A2:A100=G1) ``` G1 값과 일치하는 모든 행을 반환! --- ## Part 2: 람다 함수 활용 ### LAMBDA란? 사용자 정의 함수를 만들 수 있는 강력한 기능입니다. ``` =LAMBDA(매개변수, 표현식)(값) ``` --- ### MAP: 배열의 각 요소에 함수 적용 ``` =MAP(A2:A10, LAMBDA(x, x*1.1)) ``` 모든 값에 10% 인상 적용 --- ### REDUCE: 배열을 단일 값으로 축소 ``` =REDUCE(0, A2:A10, LAMBDA(acc, x, acc+x)) ``` 모든 값의 합계 (SUM과 동일하지만 더 복잡한 로직 가능) --- ### SCAN: 누적 연산 ``` =SCAN(0, A2:A10, LAMBDA(acc, x, acc+x)) ``` 각 행까지의 누적 합계 --- ### BYROW / BYCOL 행별 또는 열별로 함수 적용: ``` =BYROW(A2:D10, LAMBDA(row, SUM(row))) ``` 각 행의 합계 ``` =BYCOL(A2:D10, LAMBDA(col, AVERAGE(col))) ``` 각 열의 평균 --- ### 실전 예제: 커스텀 등급 함수 ``` =LET( 점수, B2:B100, MAP(점수, LAMBDA(s, IF(s>=90, "A", IF(s>=80, "B", IF(s>=70, "C", IF(s>=60, "D", "F")))) )) ) ``` --- ## Part 3: LET 함수로 가독성 향상 ### LET이란? 중간 계산 결과에 이름을 붙여 수식을 더 읽기 쉽게 만듭니다. ### 기본 문법 ``` =LET( 이름1, 값1, 이름2, 값2, 최종계산 ) ``` --- ### 복잡한 수식 개선 #### Before (읽기 어려움) ``` =IFERROR(INDEX(B2:B100, MATCH(XLOOKUP(A1, D2:D100, C2:C100), B2:B100, 0)), "없음") ``` #### After (LET 사용) ``` =LET( 검색값, A1, 중간값, XLOOKUP(검색값, D2:D100, C2:C100), 결과위치, MATCH(중간값, B2:B100, 0), 최종결과, INDEX(B2:B100, 결과위치), IFERROR(최종결과, "없음") ) ``` --- ### 반복 계산 최적화 같은 계산을 여러 번 사용할 때: ``` =LET( 필터결과, FILTER(A2:E100, B2:B100="개발"), 총합, SUM(INDEX(필터결과, 0, 4)), 개수, ROWS(필터결과), 평균, 총합/개수, "개발팀 평균: "&평균 ) ``` --- ## Part 4: 조건부 서식과 함수 연동 ### 상위 N% 강조 조건부 서식 규칙에서: ``` =A2>=PERCENTILE($A$2:$A$100, 0.9) ``` 상위 10% 강조 --- ### 중복 값 강조 ``` =COUNTIF($A$2:$A$100, A2)>1 ``` --- ### 행 전체 강조 특정 조건일 때 전체 행 색상 변경: ``` =$C2="완료" ``` 범위를 $A$2:$Z$100 등 전체 행으로 설정 --- ## Part 5: 데이터 유효성 검사 고급 ### 드롭다운 + 종속 목록 #### A열: 대분류 드롭다운 ``` =UNIQUE(마스터!A:A) ``` #### B열: 소분류 (A열 선택에 따라 변경) ``` =FILTER(마스터!B:B, 마스터!A:A=A2) ``` 데이터 유효성 → 드롭다운 → 범위에서 위 수식 사용 --- ### 중복 입력 방지 데이터 유효성 검사 → 맞춤 수식: ``` =COUNTIF($A$2:$A$100, A2)<=1 ``` --- ## Part 6: 실무 템플릿 ### 템플릿 1: 자동 인보이스 ``` =LET( 고객ID, B2, 고객정보, XLOOKUP(고객ID, 고객DB!A:A, 고객DB!B:E), 제품목록, FILTER(주문!B:F, 주문!A:A=B1), 소계, SUM(INDEX(제품목록, 0, 4)), 세금, 소계*0.1, 총액, 소계+세금, {고객정보; ""; 제품목록; ""; "소계: "&소계; "세금: "&세금; "총액: "&총액} ) ``` --- ### 템플릿 2: 프로젝트 진행률 대시보드 ``` =LET( 데이터, IMPORTRANGE("프로젝트URL", "작업!A:F"), 완료, COUNTIF(INDEX(데이터, 0, 4), "완료"), 진행중, COUNTIF(INDEX(데이터, 0, 4), "진행중"), 대기, COUNTIF(INDEX(데이터, 0, 4), "대기"), 전체, 완료+진행중+대기, 진행률, TEXT(완료/전체, "0%"), {"상태", "개수"; "완료", 완료; "진행중", 진행중; "대기", 대기; "진행률", 진행률} ) ``` --- ### 템플릿 3: 재고 자동 알림 ``` =FILTER( {재고!A2:A100, 재고!B2:B100, 재고!C2:C100, 재고!D2:D100-재고!C2:C100}, (재고!D2:D100-재고!C2:C100) < 재고!E2:E100 ) ``` (현재재고-주문수량) < 안전재고인 항목만 표시 --- ## Part 7: 성능 최적화 총정리 ### 1. 범위 최소화 ``` // 느림 =VLOOKUP(A1, A:Z, 10, FALSE) // 빠름 =VLOOKUP(A1, A1:Z1000, 10, FALSE) ``` --- ### 2. 휘발성 함수 주의 자주 재계산되는 함수들: - NOW(), TODAY() - RAND(), RANDBETWEEN() - INDIRECT() 꼭 필요한 경우에만 사용! --- ### 3. ARRAYFORMULA 대신 단순 복사 행이 자주 변경되지 않으면 수식 복사가 더 빠를 수 있음 --- ### 4. 헬퍼 열 활용 복잡한 조건을 반복 사용할 때 헬퍼 열에 중간 결과 저장: ``` // 헬퍼 열 G: =A2&"-"&B2 // 그 후 G열 참조 =VLOOKUP(조건1&"-"&조건2, G:H, 2, FALSE) ``` --- ### 5. QUERY vs FILTER 선택 - 간단한 필터: FILTER (더 빠름) - 집계/그룹화: QUERY (기능 필요) --- ## Part 8: 디버깅 팁 ### 1. 수식 분해 복잡한 수식을 단계별로 분해: ``` // 전체 수식 =INDEX(B:B, MATCH(MAX(IF(A:A="개발", C:C)), C:C, 0)) // 분해 D1: =MAX(IF(A:A="개발", C:C)) // 결과 확인 D2: =MATCH(D1, C:C, 0) // 결과 확인 D3: =INDEX(B:B, D2) // 최종 결과 ``` --- ### 2. IFERROR로 에러 추적 ``` =IFERROR(수식, "에러발생: "&수식) ``` --- ### 3. 수식 표시 모드 `Ctrl + `` (백틱)으로 모든 셀의 수식 표시 --- ## Part 9: 함수 선택 가이드 ### 조회 함수 선택 | 상황 | 권장 함수 | |------|----------| | 간단한 세로 조회 | VLOOKUP | | 왼쪽 방향 조회 | INDEX-MATCH 또는 XLOOKUP | | 최신 환경 | XLOOKUP | | 다중 조건 조회 | INDEX-MATCH | | 가로 조회 | HLOOKUP 또는 INDEX-MATCH | --- ### 필터링 함수 선택 | 상황 | 권장 함수 | |------|----------| | 간단한 조건 | FILTER | | 복잡한 조건/집계 | QUERY | | 정렬 필요 | SORT 또는 QUERY | | 고유값 추출 | UNIQUE | | 상위 N개 | SORTN | --- ### 배열 함수 선택 | 상황 | 권장 함수 | |------|----------| | 전체 열 계산 | ARRAYFORMULA | | 요소별 변환 | MAP | | 누적 계산 | SCAN | | 행별 집계 | BYROW | | 열별 집계 | BYCOL | --- ## Part 10: 시리즈 총정리 ### 배운 함수 목록 | 편 | 함수 | 핵심 용도 | |----|------|----------| | 1편 | VLOOKUP | 세로 조회의 기본 | | 2편 | HLOOKUP, INDEX | 가로 조회, 위치 참조 | | 3편 | MATCH | 값의 위치 찾기 | | 4편 | INDEX-MATCH | VLOOKUP의 강력한 대안 | | 5편 | XLOOKUP | 차세대 통합 조회 | | 6편 | ARRAYFORMULA | 배열 수식 | | 7편 | QUERY | SQL 스타일 조회 | | 8편 | FILTER, SORT | 동적 필터링과 정렬 | | 9편 | IMPORTRANGE | 파일 간 데이터 연결 | | 10편 | 조합 & 고급 팁 | 실무 활용 | --- ## 마무리 ### 실력 향상을 위한 제안 1. **실제 데이터로 연습**: 이론보다 실전이 중요 2. **작은 것부터 시작**: 간단한 VLOOKUP부터 3. **점진적 복잡화**: 한 번에 하나씩 함수 추가 4. **에러를 두려워하지 말기**: 디버깅도 학습 5. **커뮤니티 활용**: 스택오버플로우, 구글 포럼 --- ### 다음 단계 - **Google Apps Script**: 더 복잡한 자동화 - **데이터 스튜디오**: 시각화 대시보드 - **BigQuery 연동**: 대용량 데이터 처리 --- ## 전체 시리즈 링크 1. [VLOOKUP 완벽 가이드](./mastering-google-sheet-functions-v1.md) 2. [HLOOKUP & INDEX](./mastering-google-sheet-functions-v2.md) 3. [MATCH 함수](./mastering-google-sheet-functions-v3.md) 4. [INDEX-MATCH 콤보](./mastering-google-sheet-functions-v4.md) 5. [XLOOKUP](./mastering-google-sheet-functions-v5.md) 6. [ARRAYFORMULA](./mastering-google-sheet-functions-v6.md) 7. [QUERY 함수](./mastering-google-sheet-functions-v7.md) 8. [FILTER & SORT](./mastering-google-sheet-functions-v8.md) 9. [IMPORTRANGE](./mastering-google-sheet-functions-v9.md) 10. [고급 팁 & 조합](./mastering-google-sheet-functions-v10.md) (현재 글) --- *이 시리즈가 도움이 되셨다면 동료에게도 공유해 주세요!* *Google Sheets 마스터가 되는 여정을 응원합니다!*