본문으로 건너뛰기
ArumSoft Learning
EN

    엑셀 고급 · 12개 중 11번째 튜토리얼

    엑셀 통합 문서 속도 높이기와 유지 관리하기 쉽게 만들기

    통합 문서가 느린 원인을 찾고, 휘발성 함수와 지나치게 넓은 범위를 바꾸고, 수동 계산을 안전하게 쓰고, 다음 사람이 관리할 수 있도록 기록을 남겨요.

    난이도
    고급
    Time
    13분 분량
    수정:
    적용 대상:
    Microsoft 365용 Excel, Excel 2021, Excel 2019
    TODAY() 대신 G2에 입력한 보고 기준일로 연체 일수를 계산했어요. G2를 바꾸면 모든 행이 업데이트되고, 그 전에는 아무것도 저절로 다시 계산되지 않아요.
    예시: TODAY() 대신 G2에 입력한 보고 기준일로 연체 일수를 계산했어요. G2를 바꾸면 모든 행이 업데이트되고, 그 전에는 아무것도 저절로 다시 계산되지 않아요.

    배울 내용

    • 통합 문서가 계산, 열기, 새로 고침 중 어디서 느린지 진단하기
    • TODAY, OFFSET, INDIRECT 같은 휘발성 함수를 시간을 잡아먹는 곳에서 바꾸기
    • 전체 열 참조가 비싸지는 경우를 설명하고 표나 범위를 지정한 참조로 바꾸기
    • 오래된 숫자를 남기지 않고 자동 계산과 수동 계산 사이를 전환하기
    • 도우미 열, LET, 문서화로 통합 문서를 관리하기 쉽게 유지하기

    예제 파일

    엑셀 통합 문서 속도 높이기와 유지 관리하기 쉽게 만들기.xlsx

    이 튜토리얼에서 사용하는 통합 문서를 내려받아 엑셀에서 직접 따라 해 보세요.

    엑셀 통합 문서(.xlsx) · 7 KB

    예제 파일 다운로드

    키를 누를 때마다 멈칫하는 통합 문서에는 대개 찾아서 고칠 수 있는 원인이 몇 가지 있어요. 끊임없이 다시 계산되는 함수, 데이터보다 훨씬 넓은 범위, 빈 행 백만 개에 걸린 서식 같은 것들이죠. 원인을 찾는 건 진단 기술이지, 더 빠른 컴퓨터를 살 이유가 아니에요. 이 글에서는 무엇을 찾아봐야 하는지, 무엇으로 바꿔야 하는지, 그리고 다음 사람이 관리할 수 있는 상태로 통합 문서를 남기는 방법을 알아봐요.

    먼저 어디가 느린지 찾기

    "느리다"는 말에도 여러 뜻이 있고, 원인도 저마다 달라요.

    증상흔한 원인
    편집할 때마다 멈칫해요휘발성 함수, 전체 열에 걸친 큰 수식, 길게 이어진 조회 수식
    열거나 저장하는 데 오래 걸리고 파일이 커요실제 데이터보다 훨씬 넓게 걸린 서식이나 데이터, 같은 데이터의 사본 여러 개, 데이터를 따로 저장하는 피벗 테이블
    모두 새로 고침(Refresh All)이 오래 걸려요큰 파일을 다시 읽는 파워 쿼리 단계, 따로 노는 쿼리와 피벗 테이블 여러 개

    무엇이든 바꾸기 전에 두 가지를 빠르게 확인하세요.

    • 상태 표시줄을 보세요. 엑셀이 다시 계산하는 동안 상태 표시줄에 계산 진행률이 퍼센트로 나와요. 편집할 때마다 이게 나타난다면 계산이 문제예요.
    • Ctrl+End를 누르세요. 엑셀이 사용 중이라고 여기는 마지막 셀로 이동해요. 데이터는 500행에서 끝나는데 6만 행으로 이동한다면, 데이터 한참 아래까지 서식이나 쓰레기 값이 남아 있는 거예요.

    최적화하기 전에 사본을 저장하고(F12) 총합계, KPI 하나 같은 주요 결과값을 몇 개 적어 두세요. 하나씩 바꿀 때마다 그 값이 그대로인지 확인하세요. 빨라졌는데 답이 달라졌다면 개선이 아니에요.

    휘발성 함수 바꾸기

    대부분의 수식은 자신이 참조하는 셀이 바뀔 때만 다시 계산돼요. 휘발성(volatile) 함수는 엑셀이 무엇이든 다시 계산할 때마다 함께 다시 계산되고, 이 함수에 의존하는 모든 수식도 마찬가지예요. 대표적인 것이 TODAY, NOW, RAND, RANDBETWEEN, OFFSET, INDIRECT예요. TODAY() 하나는 괜찮지만, 조회 수식과 합계로 이어지는 =TODAY()-B2가 2만 행에 있다면 어디에 무엇을 입력하든 그 계산이 전부 다시 돌아가요.

    휘발성 패턴이렇게 바꾸세요
    모든 행의 =TODAY()-B2입력 셀 하나에 Ctrl+;로 보고 기준일을 입력하고 =$G$2-B2
    늘어나는 목록을 위한 =SUM(OFFSET(B1,1,0,COUNTA(B:B)-1,1))엑셀 표: =SUM(Sales[Amount]). 또는 휘발성이 아닌 INDEX: =SUM(B2:INDEX(B:B,COUNTA(B:B)))
    시트 이름으로 시트를 고르는 =SUM(INDIRECT("'"&A1&"'!B2:B100"))월(또는 지역) 열이 있는 표 하나로 합치고 SUMIFS로 요약
    예시 데이터용 RAND나 RANDBETWEEN숫자를 한 번 만든 다음 값으로 붙여넣기

    INDIRECT에는 문제가 하나 더 있어요. 참조가 텍스트라서 시트 이름을 바꾸거나 행을 삽입해도 업데이트되지 않고, 참조되는 셀 추적으로도 따라갈 수 없어요. 바꾸면 통합 문서가 빨라지는 동시에 감사하기도 쉬워져요.

    직접 입력한 보고 기준일에는 덤이 있어요. "9월 30일 기준" 보고서는 누가 11월에 열어도 계속 9월 30일 기준이에요. 아래 예시는 G2의 보고 기준일로 연체 일수를 계산해요.

    ABCDEFG
    1청구서만기일금액연체 일수설정값
    2INV-1012026-09-021,20028보고 기준일2026-09-30
    3INV-1022026-09-1885012연체 금액 합계2,050
    4INV-1032026-10-052,300-5
    TODAY() 대신 G2에 입력한 보고 기준일로 연체 일수를 계산했어요. G2를 바꾸면 모든 행이 업데이트되고, 그 전에는 아무것도 저절로 다시 계산되지 않아요.

    범위는 데이터만큼만

    엑셀 시트에는 1,048,576개의 행이 있어요. A:A 같은 전체 열 참조에 비용이 드는지는 함수에 따라 달라요.

    • 대개 저렴해요: SUM, COUNTIFS, SUMIFS 같은 함수는 열에서 실제로 사용 중인 부분만 보기 때문에 =SUM(A:A)는 괜찮아요.
    • 비싸요: SUMPRODUCT, 배열 수식, 전체 열끼리 비교하는 수식은 사용 여부와 상관없이 범위의 모든 셀을 계산해요. =SUMPRODUCT(--(A:A="East"))는 몇백 행을 세려고 백만 번 넘게 비교해요. =COUNTIFS(A:A,"East")는 훨씬 적은 일로 같은 답을 내요.

    어느 쪽이든 안전한 습관은 같아요. 수식이 엑셀 표(Sales[Region])나 범위를 지정한 참조(A2:A500)를 가리키게 하세요. 표 참조는 행이 추가되면 함께 늘어나니까, 전체 열을 쓰는 편리함은 그대로 누리면서 비용도, 4만 번째 행에 남은 엉뚱한 값까지 포함할 위험도 피할 수 있어요.

    편집하는 동안에는 덜 자주 계산하기

    큰 모델을 다시 계산하는 데 몇 초씩 걸리면 편집이 괴로워요. 값을 하나 입력할 때마다 다시 계산이 시작되니까요. 작업하는 동안에는 수동 계산으로 바꾸세요.

    1. 수동으로 바꾸세요

      수식 then 계산 then 계산 옵션 then 수동을 클릭하세요. 계산 옵션(Calculation Options)이 수동이면 엑셀은 편집할 때마다 다시 계산하지 않고, 결과가 최신이 아닐 때 상태 표시줄에 계산이라고 표시해요.

    2. 필요할 때 다시 계산하세요

      F9를 누르면 열려 있는 모든 통합 문서를 계산하고, Shift+F9를 누르면 현재 시트만 계산해요. Ctrl+Alt+F9는 모든 수식을 강제로 전부 다시 계산해요. 결과가 오래된 것 같을 때 쓰면 좋아요.

    3. 공유하기 전에 되돌리세요

      작업이 끝나면 수식 then 계산 then 계산 옵션 then 자동으로 다시 바꾸세요.

    가상 분석의 데이터 표가 느린 원인이라면 같은 메뉴의 데이터 표만 수동을 고르세요. 나머지는 계속 자동으로 계산돼요.

    서식과 사용 범위 정리하기

    서식은 메모리와 파일 크기를 차지해요. 조건부 서식(Conditional Formatting) 규칙은 작업하는 동안 계속 다시 평가되기 때문에, 데이터보다 훨씬 많은 셀에 걸린 규칙은 부담이 쌓여요.

    • 조건부 서식 규칙을 확인하세요. 홈 then 스타일 then 조건부 서식 then 규칙 관리를 열고 서식 규칙 표시를 현재 워크시트로 바꾸세요. 적용 대상을 보면 열 전체에 걸린 규칙이나, 복사해서 붙여 넣느라 수십 개로 늘어난 같은 규칙이 흔히 보여요. 중복된 규칙은 지우고 적용 대상을 데이터 범위로 줄이세요.
    • 데이터 아래는 지우세요. Ctrl+End가 데이터보다 한참 아래로 간다면, 첫 번째 빈 행의 행 번호를 클릭하고 Ctrl+Shift+Down으로 마지막 행까지 선택한 다음, 마우스 오른쪽 단추로 클릭하고 삭제를 고르세요. 오른쪽의 열도 같은 방법으로 지우고 저장하세요. 이제 Ctrl+End가 진짜 마지막 셀로 가요.
    • 시트가 아니라 데이터에 서식을 지정하세요. 채우기, 테두리, 표시 형식은 '혹시 몰라서' 열 전체에 걸지 말고 표나 범위에만 적용하세요. 엑셀 표는 새 행에 서식을 알아서 넓혀 줘요.

    피벗 테이블과 파워 쿼리

    새로 고침 시간과 파일 크기는 수식이 아니라 데이터를 불러오는 방식 때문인 경우가 많아요.

    • 원본 하나, 캐시 하나. 같은 표로 만든 피벗 테이블(PivotTable)들은 피벗 캐시 하나를 함께 써요. 데이터 사본을 따로 만들어 각각 피벗 테이블을 만들면 캐시도 따로 생겨서 파일 크기와 새로 고침 작업이 그만큼 늘어나요. 피벗 테이블은 모두 같은 표에서 만드세요.
    • 캐시를 저장할지 정하세요. 피벗 테이블 옵션의 데이터 탭에서 파일에 원본 데이터 저장(Save source data with file)의 체크를 해제하면 파일이 작아져요. 대신 파일을 다시 열면 피벗 테이블을 바꾸기 전에 먼저 새로 고쳐야 해요.
    • 파워 쿼리(Power Query)에서는 일찍 줄이세요. 필요 없는 열은 지우고 행은 쿼리의 앞쪽 단계에서 걸러 내세요. 그래야 뒤쪽 단계가 더 적은 데이터로 일해요.
    • 중간 단계 쿼리는 시트로 불러오지 마세요. 다른 쿼리에 데이터를 넘기기만 하는 쿼리는 시트에 있을 필요가 없어요. 파워 쿼리 편집기에서 홈 then 닫기 및 로드 then 닫기 및 다음으로 로드를 고르고 연결만 만들기를 선택하세요.
    • 거의 안 바뀌는 건 건너뛰세요. 1년에 한 번 바뀌는 조회 목록이라면 데이터 then 쿼리 및 연결 then 쿼리 및 연결을 열고 쿼리를 마우스 오른쪽 단추로 클릭한 다음 속성에서 모두 새로 고침 때 이 연결도 새로 고치는 옵션(Refresh this connection on Refresh All)의 체크를 해제하세요. 목록이 바뀌면 그때 직접 새로 고치면 돼요.

    관리하기 쉽게 만들기

    아무도 손대지 못하는 빠른 통합 문서는 오래 빠른 상태로 남지 못해요. 다음 습관이 고칠 수 있는 상태를 지켜 줘요.

    • 거대한 수식보다 도우미 열. 한 단계씩 나눈 열 세 개가 함수 여덟 개를 중첩한 수식 하나보다 확인하기 쉽고, 긴 수식 안에서 같은 계산을 반복하지 않으니 더 빠를 때도 많아요.
    • 반복되는 부분에는 LET. 한 수식 안에 같은 계산이 두 번 나오면 LET으로 이름을 붙이세요. 엑셀은 LET의 이름을 한 번만 계산하고, 수식도 읽기 쉬워져요.
    • 열마다 수식은 하나. 계산 열의 모든 행에는 같은 수식이 있어야 해요. 중간에 직접 입력한 예외는 눈에 띄지 않고, 데이터를 새로 고치면 깨져요.
    • 특이한 선택은 기록하세요. 느린 함수를 이유가 있어서 남겨 두었다면("시트 이름을 가져온 데이터에서 받기 때문에 INDIRECT 유지") Documentation 시트에 적으세요. 설명 없는 기발한 수식은 바꿔야 할 때도 아무도 손대지 못해요.
    • 바꾼 내용을 남기세요. 최적화를 마치면 버전 메모에 무엇을 바꿨는지, 주요 결과값이 그대로인지 한 줄 적으세요.

    자주 하는 실수

    • 기준값 없이 최적화하기. 미리 적어 둔 합계가 없으면 아무것도 바뀌지 않았다는 걸 증명할 수 없어요.
    • 수동 계산 상태로 파일 남기기. 다음 사람은 오래된 결과를 보면서도 그걸 몰라요. 저장하기 전에 자동으로 되돌리세요.
    • 모든 행의 TODAY(). 입력 셀 하나면 충분하고, 보고서를 다시 만들어도 같은 결과가 나와요.
    • SUMPRODUCT나 배열 수식 안의 전체 열. 표나 범위를 지정한 참조를 쓰세요.
    • 복사해 붙여 넣느라 늘어난 조건부 서식 규칙. 가끔 규칙 관리에서 시트 전체의 규칙을 확인하세요.
    • 피벗 테이블마다 데이터 복사하기. 모두 표 하나에서 만드세요.

    연습

    연습

    실제 통합 문서 속도 높이기

    1. 가장 느린 통합 문서를 열고 사본을 저장하세요. 총합계, KPI, 행 수 같은 결과값 세 개를 적어 두세요.
    2. 상태 표시줄과 Ctrl+End로 문제가 계산인지, 파일 크기인지, 새로 고침인지 판단하세요.
    3. 찾을 수 있는 휘발성 함수, SUMPRODUCT나 배열 수식 안의 전체 열 참조, 지나치게 넓게 걸린 서식 범위를 모두 적으세요.
    4. 이 글의 방법으로 그중 세 가지를 고치세요. 그래도 편집이 굼뜨면 작업하는 동안 수동 계산으로 바꾸고, 끝나면 자동으로 되돌리세요.
    5. 결과값 세 개가 그대로인지 확인하고, 무엇을 왜 바꿨는지 Documentation 시트에 적으세요.

    휘발성 함수 없이 만든 연체 보고서를 직접 계산해 보세요. G2의 보고 기준일은 직접 입력한 값이라서 누군가 바꾸기 전까지는 아무것도 다시 계산되지 않아요.

    직접 해 보기4개 중 0개 완료

    1. D2에 G2의 보고 기준일에서 B2의 만기일을 빼 보세요. 아래로 복사할 수 있도록 G2를 고정하세요.
    2. D3에 INV-102도 같은 방법으로 구해 보세요.
    3. D4에 INV-103도 구해 보세요. 아직 만기 전이라 결과는 음수예요.
    4. G3에 D2:D4의 연체 일수가 0보다 큰 청구서의 금액(C2:C4)을 합해 보세요.

    점선으로 표시된 셀을 클릭하고, 입력줄에 수식을 쓴 다음 Enter를 누르세요.

    ABCDEFG
    1청구서만기일금액연체 일수설정값
    2INV-1012026-09-021,200보고 기준일2026-09-30
    3INV-1022026-09-18850연체 금액 합계
    4INV-1032026-10-052,300

    실력 점검

    • 휘발성 함수를 하나 들고, 그 함수가 통합 문서를 느리게 만드는 이유를 설명할 수 있나요?
    • 전체 열 참조가 저렴할 때와 비쌀 때를 구분할 수 있나요?
    • 자동 계산과 수동 계산의 차이, 그리고 파일을 수동 상태로 두었을 때의 위험을 설명할 수 있나요?
    • OFFSET 범위를 표나 INDEX로 바꿀 수 있나요?
    • 통합 문서가 커져도 빠르고 관리하기 쉽게 유지하는 습관 두 가지를 말할 수 있나요?

    관련 자료

    도움이 되었나요? 틀린 부분을 발견하셨나요? 피드백 보내기 · admin@arumsoft.com