Friday, September 26th, 2025

당신의 엑셀을 거북이로 만드는 ‘최악의 함수’ 3가지와 해결법

수천, 수만 행의 데이터가 담긴 엑셀 파일. 셀 하나를 수정했을 뿐인데 몇 초씩 멈추고 화면 하단에 ‘계산 중’ 메시지만 멍하니 바라봤던 답답한 경험, 다들 한 번쯤 있으시죠? 데이터가 많아서 그렇다고 체념하기 쉽지만, 사실 문제의 원인은 데이터의 양이 아니라 데이터를 계산하는 ‘방식’, 즉 비효율적인 함수 사용에 있을 가능성이 높습니다.

당신의 엑셀을 거북이로 만드는 '최악의 함수' 3가지와 해결법

엑셀의 수많은 내장 함수들은 매우 유용하지만, 그중 일부는 편리함의 대가로 엄청난 시스템 자원을 소모하여 통합 문서를 통째로 느리게 만드는 주범이 되기도 합니다.

오늘은 전문가들이 특히 대용량 데이터 작업 시 사용을 꺼리는, 당신의 엑셀을 거북이로 만드는 대표적인 ‘최악의 함수 유형’ 3가지와 그 해결책을 명쾌하게 알려드리겠습니다.

1. 휘발성 함수 (Volatile Functions): 모든 셀을 다시 계산하는 부지런한 악당

엑셀 시트에서 무언가 작은 변경만 해도 전체 통합 문서가 매번 다시 계산되면서 속도 저하를 유발한다면, ‘휘발성 함수’가 범인일 확률이 99%입니다.

문제점: 왜 느려질까?

휘발성 함수는 이름 그대로 ‘결과가 언제든 변할 수 있는’ 함수입니다. 대표적으로 현재 날짜와 시간을 반환하는 NOW(), **TODAY()**나 텍스트로 셀 주소를 참조하는 INDIRECT() 함수가 여기에 해당합니다.

이 함수들의 가장 큰 문제점은, 수식과 전혀 관련 없는 셀에서 변경이 일어나도 통합 문서 전체의 모든 수식을 강제로 다시 계산한다는 것입니다. 수천 개의 수식이 있는 시트에서 셀 색깔 하나만 바꿔도, 이 함수 하나 때문에 모든 계산이 처음부터 다시 시작되는 셈이죠. 이는 대규모 데이터 모델에서 치명적인 성능 저하를 유발합니다.

해결책: 어떻게 최적화할까?

  • 대안 사용: 실시간 타임스탬프가 꼭 필요한 경우가 아니라면, NOW() 함수 대신 단축키 **Ctrl + ;**를 사용해 현재 날짜를 값으로 직접 입력하는 것이 좋습니다.
  • 수동 계산 전환: 휘발성 함수 사용이 불가피하다면, 자동 계산 기능을 끄고 수동으로 전환하는 방법을 고려해 보세요. [파일] > [옵션] > [수식] > 계산 옵션에서 ‘수동’을 선택하면 됩니다. 이후 계산이 필요할 때마다 F9 키(모든 시트 재계산) 또는 Shift + F9 키(현재 시트만 재계산)를 눌러 직접 제어할 수 있습니다. 단, 재계산을 잊어버리면 데이터가 업데이트되지 않는다는 점을 명심해야 합니다.

2. 레거시 배열 수식 (Legacy Array Formulas): 보이지 않는 과부하의 주범

수식을 입력한 뒤 그냥 Enter가 아닌 **Ctrl + Shift + Enter**를 눌러 입력하고, 수식이 { } 중괄호로 감싸지는 것을 본 적이 있다면, 당신은 ‘배열 수식’을 사용하고 있는 것입니다.

문제점: 왜 느려질까?

배열 수식은 여러 값을 한 번에 계산하거나 여러 결과를 반환할 때, 별도의 ‘도우미 열’ 없이 수식을 한 줄로 깔끔하게 처리할 수 있어 매우 유용합니다. 하지만 그 이면에서는 엑셀이 하나의 결과를 얻기 위해 수식을 수백, 수천 번 반복해서 처리하는 과정이 숨어 있습니다. 이는 특히 대용량 데이터 범위에 배열 수식을 적용했을 때 엄청난 연산 부하를 유발합니다.

해결책: 어떻게 최적화할까?

  • [Microsoft 365 사용자] 동적 배열 함수 사용: 다행히 Microsoft 365 버전의 엑셀 사용자라면 이 문제를 대부분 해결할 수 있습니다. FILTER, SORT, UNIQUE와 같은 최신 **’동적 배열 함수’**는 Ctrl + Shift + Enter 없이도 배열을 기본적으로 처리하며, 훨씬 효율적으로 작동합니다. 이제 레거시 배열 수식은 주로 이전 버전 엑셀(2019 이하)과의 호환성을 위해 사용됩니다.
  • [구버전 사용자] 도우미 열 활용: 동적 배열을 사용할 수 없다면, 복잡한 배열 수식 하나를 여러 개의 ‘도우미 열’로 나누어 계산을 분산시키는 것이 성능에 더 유리할 수 있습니다.

3. 조회 함수 (Lookup Formulas): 편리함 뒤에 숨은 성능 저하

특정 값을 기준으로 방대한 데이터 목록에서 원하는 정보를 찾아올 때, VLOOKUP이나 HLOOKUP만큼 편리한 함수도 없습니다. 하지만 이 편리함 역시 대가를 치릅니다.

문제점: 왜 느려질까?

조회 함수는 매우 큰 데이터셋을 검색할 때, 특히 데이터가 여러 시트에 분산되어 있을 때 성능을 크게 저하시킬 수 있습니다. 엑셀은 정확한 값을 찾기 위해 지정된 범위의 수많은 셀을 하나씩 훑어야 하며, 이 과정이 반복되면 상당한 부하가 걸립니다.

해결책: 어떻게 최적화할까?

  • [Microsoft 365 사용자] XLOOKUP 사용: VLOOKUP의 모든 단점을 보완하고 더 빠르며 강력한 성능을 자랑하는 XLOOKUP 함수를 사용하세요. XLOOKUP은 엑셀의 최신 조회 함수로, 대부분의 경우 VLOOKUP보다 효율적으로 작동합니다.
  • [구버전 사용자] 최적화 팁:
    1. 범위 최소화: B:B처럼 열 전체를 참조하는 대신, B2:B10000처럼 필요한 데이터 범위만 정확하게 지정하세요. 불필요한 빈 셀을 검색하는 것을 막아 속도를 크게 향상시킬 수 있습니다.
    2. 근사 일치 활용: VLOOKUP의 마지막 인수를 ‘정확히 일치(FALSE)’ 대신 ‘유사 일치(TRUE)’로 설정하면 검색 속도가 더 빨라집니다. 단, 이 방법을 사용하려면 조회하는 데이터 범위가 반드시 오름차순으로 정렬되어 있어야 합니다.
    3. 동일 시트 내에서 조회: 가급적 데이터가 있는 시트와 수식을 사용하는 시트를 동일하게 유지하는 것이 좋습니다.

결론: 빠른 엑셀 시트의 힘을 되찾으세요

오늘 소개한 세 가지 유형의 함수들은 엑셀 속도 저하의 가장 큰 주범들입니다. 이 외에도 복잡한 조건부 논리가 중첩된 수식 역시 성능에 영향을 줄 수 있습니다.

수식 최적화 외에도, 엑셀을 최신 버전으로 업데이트하고, 불필요한 데이터를 삭제하며, 사용하지 않는 추가 기능을 제거하는 것도 성능 향상에 도움이 됩니다. ‘계산 중’ 화면을 기다리며 낭비하는 시간을 줄이고, 중요한 업무에 더 집중하기 위해 오늘 배운 최적화 팁들을 꼭 적용해 보세요.

여러분은 엑셀 속도 저하 문제로 골머리를 앓은 적이 있으신가요? 이 글에서 소개된 함수 외에, 여러분이 경험한 또 다른 ‘성능 저하 주범’이 있다면 댓글로 공유하여 다른 사람들의 ‘칼퇴’를 도와주세요!

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다