다음을 통해 공유


Excel 2010 성능: 성능 및 제한 개선

요약: 이 문서에서는 Microsoft Excel 2010 및 Microsoft Office Excel 2007의 성능 개선 사항에 대해 설명합니다. 이 문서는 워크시트를 디자인 및 작성할 때 Excel에서 성능을 개선하는 데 사용할 수 있는 기술에 대한 3개의 문서 모음 중 하나입니다.

Excel에서 성능을 개선하는 방법에 대한 자세한 내용은 Excel 2010 성능: 계산 성능 개선Excel 2010 성능: 성능 저하 요인 최적화 팁를 참조하십시오.

마지막 수정 날짜: 2015년 3월 9일 월요일

적용 대상: Excel | Excel 2010 | Office 2010 | SharePoint Server 2010 | VBA

이 문서의 내용
Excel 2010 성능 개선 사항
Excel 2007 성능 개선 사항
결론
저자 정보
추가 자료

게시 날짜:  2010년 6월

제공:  MVP 기고자Charles Williams(Decision Models Limited) │ Allison Bokone(Microsoft Corporation) │ Chad Rothschiller(Microsoft Corporation) │ 저자 정보

목차

Excel 2010 성능 개선 사항

다음 섹션에서는 성능을 개선하는 데 사용할 수 있는 Excel 2010에 도입된 몇 가지 기능에 대해 설명합니다.

향상된 기능

Excel 2007에 대한 사용자의 의견을 토대로 하여, Excel 2010에서는 여러 기능이 개선되었습니다.

기능

개선 사항

프린터 및 페이지 레이아웃 보기

페이지 레이아웃 보기에서 데이터 입력, 수식 작업, 여백 설정 등의 기본적인 사용자 상호 작용 성능을 높이기 위해 Excel 2010에서는 프린터 설정을 캐시하고 최적화된 렌더링 계산을 사용합니다. 프린터 설정이 캐시되므로 네트워크 호출 횟수가 감소하고 속도가 느리거나 응답하지 않는 프린터에 대한 종속성이 낮아집니다. 또한 프린터 연결을 취소할 수 있으므로 사용자는 속도가 느리거나 응답하지 않는 프린터가 작동할 때까지 대기하지 않아도 됩니다.

차트

Excel 2010부터는 차트(특히 큰 데이터 집합이 포함된 차트)의 렌더링 속도가 빨라졌으며 텍스트 렌더링 성능이 개선되었습니다. 또한 Excel 2010에서는 불필요한 계산 및 렌더링을 방지하기 위해 차트 이미지를 캐시하여 가능한 경우 캐시된 버전을 사용합니다.

VBA 솔루션

개체 모델 및 개체 모델이 Excel과 상호 작용하는 방식이 개선되어 대부분의 VBA 솔루션을 Excel 2010에서 실행할 때 Excel 2007에 비해 속도 성능이 향상됩니다.

 

큰 데이터 집합 및 64비트 Excel

64비트 버전 Excel 2010의 경우 32비트 응용 프로그램처럼 2GB RAM의 제한이 적용되지 않습니다. 따라서 64비트 Excel 2010 사용자는 이전 버전에 비해 훨씬 큰 통합 문서를 만들 수 있습니다. 64비트 Windows에서는 주소 지정 가능 메모리 용량을 더 크게 지정할 수 있으며, 64비트 Excel은 해당 용량을 사용할 수 있도록 설계되었습니다. 예를 들어 사용자는 이전 버전 Excel에서보다 더 많은 눈금에 데이터를 채울 수 있습니다. 컴퓨터에 RAM이 더 추가되면 Excel은 추가 메모리를 사용하므로 더욱 큰 통합 문서를 만들고 사용 가능한 RAM의 양에 따라 문서를 계속 확장할 수 있습니다.

또한 64비트 Excel에서는 큰 데이터 집합을 사용할 수 있으므로 32비트 및 64비트 Excel 2010 둘 다에서 데이터 입력/채우기, 정렬, 필터링, 복사/붙여넣기와 같은 일반적인 큰 데이터 집합 작업 성능이 개선됩니다. 메모리 사용량 역시 32비트 및 64비트 버전 Excel에서 모두 더 효율적으로 최적화되었습니다.

"큰 눈금"에 대한 자세한 내용은 Excel 2007의 "큰 눈금" 및 증가된 한도를 참조하십시오. 64비트 버전 Office 2010에 대한 자세한 내용은 Office 2010 32비트 버전과 64비트 버전 간의 호환성을 참조하십시오.

도형

Excel 2010에서는 그래픽 성능이 크게 향상되었습니다. 구체적으로는 확장성과 렌더링의 두 가지 영역에서 성능이 개선되었습니다. 워크시트에는 많은 그래픽이 포함되므로 향상된 확장성은 Excel 시나리오에 큰 영향을 줍니다. 이와 같은 대다수의 도형은 웹 사이트에서 데이터를 복사하여 붙여 넣는 과정에서 실수로 작성되거나 도형을 만드는 자동화를 실행한 다음 도형을 제거하지 않아 그대로 남아 있는 항목인 경우가 많습니다. 이처럼 워크시트에 그래픽이 많고 이러한 그래픽은 Excel의 데이터 표와 관련되므로 성능상 고유한 문제가 다수 발생합니다. Excel 2010에서는 그래픽 관련 기능이 향상되어 도형이 많이 포함된 워크시트의 속도 성능이 개선되었습니다. 또한 하드웨어 가속이 지원되므로 Excel 2010부터는 렌더링 기능도 개선되었습니다. 뿐만 아니라 Excel 2010에서는 VBA 개체 모델에 포함된 Shape 개체의 Select 메서드 성능도 향상되었습니다.

기능

개선 사항

기본 사용

Excel 2010에서는 기본 사용 시나리오와 관련된 기능 집합이 가장 먼저 개선되었습니다. 이러한 시나리오로는 행이나 열 정렬/필터링/삽입/크기 조정, 셀 병합 등의 작업과 기능이 포함됩니다. 이러한 작업을 수행할 때는 눈금의 그래픽 개체 위치를 업데이트해야 할 수 있으며 최악의 경우에는 워크시트의 각 개체를 모두 업데이트해야 합니다. Excel 2010에서는 워크시트에 수천 개의 개체가 있더라도 뛰어난 성능으로 이러한 기본 시나리오를 수행할 수 있습니다. 이러한 성능 향상은 단일 기능이나 수정을 통해 이루어진 것이 아니라 도형 조회 메커니즘 개선, 스트레스 파일 테스트, 문제 조사 등을 포함하는 성능 중심 전담 작업을 거쳐 이루어진 것입니다.

텍스트 링크

사용자가 "=A1"과 같이 지정된 도형에 대한 텍스트를 정의하는 수식을 지정하면 도형에 텍스트 링크가 만들어집니다. 이러한 도형은 개체 수가 많거나 셀 내용이 변경된 시트에서 성능 문제를 일으키기가 쉽습니다. Excel 2010부터는 Excel에서 이와 같은 도형을 추적하여 업데이트하는 방식이 개선되어 셀 내용 변경 성능이 최적화되었습니다. 이러한 작업을 통해 셀에 새 값을 입력하거나 복잡한 개체 모델 작업을 수행하는 등의 시나리오가 개선됩니다.

큰 눈금

Excel 2007부터 눈금 크기가 행 65,000개에서 1백만 개로 확장되었습니다. 이로 인해 큰 눈금의 새 영역에서 그래픽 개체를 사용할 때 일부 성능 및 렌더링 문제가 발생했습니다. Excel 2010부터는 눈금의 새 영역에서 그래픽을 사용하는 작업을 개선하기 위해 눈금 맨 위 왼쪽 셀을 원점으로 사용하는 기능이 향상되었습니다. 또한 Excel 2007에 비해 렌더링 충실도와 성능도 개선되었습니다.

렌더링: 하드웨어 가속

Excel 2010부터는 3D 개체 렌더링 시 하드웨어 가속 지원이 추가됨으로써 그래픽 플랫폼이 개선되었습니다. GPU는 이러한 개체를 CPU보다 빠르게 렌더링할 수 있지만, Excel 2010의 작업 성능은 워크시트의 내용에 따라 달라집니다. 워크시트에 2D 도형만 포함되어 GPU를 사용하지 않는 경우에 비해 3D 도형이 매우 많이 포함되어 있는 경우 하드웨어 가속 개선으로 인한 이점을 보다 크게 체감할 수 있습니다.

 

향상된 계산 기능

Excel 2007부터 다중 스레드 계산으로 인해 계산 성능이 향상되었습니다. 자세한 내용은 다중 스레드 계산을 참조하십시오. 그리고 Excel 2010부터는 성능이 추가적으로 개선되어 계산 속도가 더욱 빨라졌습니다. Excel 2010에서는 사용자 정의 함수를 비동기 방식으로 호출할 수 있습니다. 함수를 비동기로 호출하면 여러 계산을 동시에 실행할 수 있으므로 성능이 개선됩니다. 계산 클러스터에서 사용자 정의 함수를 실행할 때 함수를 비동기 방식으로 호출하면 여러 컴퓨터를 사용하여 계산을 완료할 수 있습니다. 비동기 사용자 정의 함수에 대한 자세한 내용은 Asynchronous User-Defined Functions를 참조하십시오.

다중 코어 처리

새로운 Excel 버전에서는 다중 코어 프로세서를 활용하고 일상적인 작업 성능을 높이기 위한 투자도 이루어졌습니다. Excel 2010부터는 파일 저장/열기, 피벗 테이블 새로 고침(OLAP 및 SharePoint를 제외한 외부 데이터 원본의 경우), 셀 테이블/피벗 테이블 정렬, 열 크기 자동 조정 등의 기능에서 다중 코어 프로세서를 사용합니다.

파일 열기/저장, 데이터 새로 고침과 같이 데이터 읽기/로드 또는 쓰기를 포함하는 작업은 두 프로세스로 분할하면 속도 성능이 향상됩니다. 이 경우 첫 번째 프로세스에서는 데이터를 가져오고, 두 번째 프로세스에서는 데이터를 메모리의 적절한 구조로 로드하거나 파일에 씁니다. 이러한 방식을 사용하는 경우 첫 번째 프로세스에서 데이터 부분 읽기를 시작하는 즉시 두 번째 프로세스에서 해당 데이터의 로드 또는 쓰기를 바로 시작할 수 있으며, 그와 동시에 첫 번째 프로세스는 다음 데이터 부분을 계속 읽습니다. 이전에는 첫 번째 프로세스가 특정 섹션의 모든 데이터 읽기를 완료해야 두 번째 프로세스에서 해당 데이터 섹션을 메모리로 로드하거나 파일에 데이터를 쓸 수 있었습니다.

PowerPivot

PowerPivot은 Excel 통합 문서에서 사용자가 관리하는 데이터 중심의 비즈니스 인텔리전스 솔루션을 만들기 위한 전체 방식을 제공하는 응용 프로그램 및 서비스 모음을 지칭합니다. 즉, PowerPivot for Excel은 최고의 계산 기능을 Excel 내에서 직접 제공하는 데이터 분석 도구입니다. 사용자는 익숙한 Excel 기능을 활용하여 거의 모든 출처로부터 가져온 많은 양의 데이터를 매우 빠르게 의미 있는 정보로 변환함으로써 원하는 정보를 몇 초 내에 확인할 수 있습니다.

PowerPivot은 SharePoint와도 통합됩니다. SharePoint 팜에서 SharePoint용 PowerPivot은 비즈니스 인텔리전스 데이터에 대한 팀 공동 작업을 지원하는 서버 쪽 응용 프로그램, 서비스 및 기능 집합입니다. SharePoint에서는 팀 및 대규모 조직 전체에서 비즈니스 인텔리전스 공유 및 공동 작업을 위한 플랫폼을 제공합니다. 통합 문서 작성자 및 소유자는 자신이 개발한 비즈니스 인텔리전스를 SharePoint 사이트에서 게시 및 관리합니다.

PowerPivot에 대한 자세한 내용은 PowerPivot Overview를 참조하십시오.

Excel 2010용 HPC Services

다양한 통계 분석 기능을 제공하고 복잡한 분석 구성을 지원하며 폭넓게 확장할 수 있는 Excel 2010은 비즈니스 데이터 분석용으로 적합한 도구입니다. 모델이 커지고 통합 문서가 복잡해지면 생성되는 정보의 가치도 높아집니다. 그러나 통합 문서가 복잡해지면 계산 시간도 길어집니다. 복잡한 분석의 경우 그에 필요한 복잡한 통합 문서를 완성하려면 몇 시간이나 며칠, 심지어는 몇 주가 걸리기도 합니다.

이처럼 복잡한 분석을 수행해야 하는 경우에는 Windows HPC Server 2008을 사용하여 Excel 계산을 Windows HPC(고성능 컴퓨팅) 클러스터의 여러 노드에 걸쳐 병렬로 확장할 수 있습니다. Windows HPC Server 2008 기반 클러스터에서는 세 가지 방법으로 Excel 2010 계산을 실행할 수 있습니다. 첫 번째 방법은 클러스터에서 Excel 통합 문서를 실행하는 것이고, 두 번째는 클러스터에서 Excel UDF(사용자 정의 함수)를 실행하는 것이며, 세 번째는 Excel을 클러스터 SOA(서비스 기반 아키텍처) 클라이언트로 사용하는 것입니다. Excel 2010용 HPC Services에 대한 자세한 내용은 Windows HPC Server 2008을 통해 Excel 2010 속도 높이기를 참조하십시오.

Excel 2007 성능 개선 사항

다음 섹션에서는 성능을 개선하는 데 사용할 수 있는 Excel 2007에 도입된 몇 가지 기능에 대해 설명합니다.

Excel 2007의 "큰 눈금" 및 증가된 한도

Excel 2007부터는 "큰 눈금" 개념이 도입되어 워크시트당 최대 행 수가 65,536개에서 1백만 개 이상으로 늘어났으며 열 수도 256(IV)개에서 16,384(XFD)개로 늘어났습니다.

큰 통합 문서를 사용하는 경우 최신 Excel 버전에서 메모리 용량이 증가되어 다른 Excel 사양 제한이 더 빈번하게 적용되었을 수 있습니다. Excel 2007부터는 Excel의 이러한 제한이 다수 변경되어 더 많은 행과 열을 사용할 수 있게 되었습니다(이처럼 증가된 한도 중 일부는 계산 속도에도 큰 영향을 줄 수 있음). Excel 2007에서 변경된 한도는 아래 목록에 나와 있습니다.

기능

개선 사항

메모리

수식과 피벗 캐시에 사용 가능한 메모리가 1GB(Microsoft Office Excel 2003)/128MB(Microsoft Excel 2002)/64MB(Microsoft Excel 2000)에서 2GB로 증가되었습니다.

스마트 다시 계산 제한

전체 다시 계산 대신 스마트 다시 계산을 수행할 수 있도록 하는 종속성 한도가 이제는 셀 8천 개(단일 영역 종속) 및 종속성이 있는 64,000개 영역으로 제한되는 것이 아니라 사용 가능한 메모리로만 제한됩니다.

배열 수식

이제는 전체 열 참조가 허용되며, 다른 워크시트를 참조하는 배열 수식이 65,000개로 제한되는 대신 사용 가능한 메모리로 제한됩니다.

피벗 테이블

피벗 테이블 보고서에 표시되는 최대 행 수는 1백만 개로, 최대 열 수는 16,000개로 늘어났습니다. 또한 단일 피벗 필드의 최대 고유 항목 수는 1백만 개로, 필드 목록에 표시되는 최대 필드 수는 16,000개로 증가되었습니다.

정렬

수준이 3개에서 64개로 늘어났습니다.

자동 필터

드롭다운 목록 길이가 1,000개 항목에서 10,000개 항목으로 길어졌습니다.

최대 수식 길이

수식 1,000개에서 8,000개로 길어졌습니다.

수식 중첩 수준

7개에서 64개로 늘어났습니다.

함수의 인수

30개에서 255개로 늘어났습니다.

셀당 조건부 서식

3개에서 사용 가능한 메모리가 허용하는 수만큼 추가할 수 있도록 늘어났습니다.

통합 문서의 고유 셀 스타일

4,000개에서 64,000개로 늘어났습니다.

통합 문서당 고유 색

56개에서 43억 개로 늘어났습니다.

셀에서 표시 및 인쇄할 수 있는 문자

32,000개로 늘어났습니다.

 

다중 스레드 계산

Excel 2007부터는 Excel에서 여러 프로세서나 코어로 계산을 분할할 수 있게 되었습니다. Excel은 통합 문서를 로드할 때 운영 체제에서 사용 가능한 프로세서 수를 확인한 다음 각 프로세서에 대해 별도의 계산 스레드를 만듭니다. 이러한 스레드는 병렬로 실행할 수 있습니다. 이와 같은 시스템은 프로세서 수에 따라 확장이 가능하다는 이점이 있습니다.

코어가 여러 개인 시스템에서는 대부분의 통합 문서 계산 속도가 크게 빨라집니다. 속도 향상 수준은 통합 문서에 포함된 독립 계산 트리의 수에 따라 달라집니다. 연속 수식 체인이 하나 포함된 통합 문서를 만드는 경우에는 MTC(다중 스레드 계산)를 통해 성능이 향상되지 않는 반면, 독립 수식 체인이 여러 개 포함된 통합 문서의 경우에는 사용 가능한 프로세서의 수에 거의 비례하여 성능이 향상됩니다.

듀얼 코어 시스템에서 Excel을 사용하여 수식이 23,000~840,000개 포함된 여러 통합 문서에 대해 테스트를 수행한 결과, MTC 사용으로 인한 성능 개선 비율이 1.9배에서 0으로 나타났으며 큰 통합 문서일수록 성능이 더 많이 개선되는 것으로 확인되었습니다.

Microsoft는 Intel Corporation과 협력하여 사용자 작성 스프레드시트 집합에 대해 테스트를 수행한 다음 Excel 2007과 Excel 2003의 결과를 비교했습니다. 시험판 Excel 2007이 사용되었지만 최종 릴리스 버전과 거의 차이가 없습니다.

테스트 결과 듀얼 코어 시스템과 쿼드 코어 시스템 모두에서 계산 시간은 0배~이론상의 수치(2배/4배) 이상으로 단축되었습니다. Intel 듀얼 코어 Pentium 4(3.0GHz, 1GB RAM) 시스템에서 측정한 일반(평균) 속도 향상치는 Excel 2003에서 동일한 파일을 계산한 경우와 비교할 때 48%(1.92배)였습니다. 그리고 Intel 쿼드 코어 Xeon(3.0GHz, 4GB RAM) 시스템에서 측정한 일반(평균) 속도 향상치는 76%(4.17배)였습니다. 다른 프로세서와 플랫폼에서도 이와 비슷한 수준의 속도 향상이 확인되었습니다. 다중 스레딩으로 인한 이론적인 속도 향상치를 초과하는 속도 개선의 경우 Excel 2007에 도입된 기타 성능 개선 사항(예: 함수 실행 속도 개선)으로 인한 것입니다.

다음과 같은 일부 Excel 기능은 다중 스레드 계산을 사용하지 않습니다.

  • 데이터 표 계산(단, 표에 대한 구조적 참조에서는 MTC를 사용함)

  • 사용자 정의 함수(단, XLL 함수는 다중 스레드를 사용할 수 있음)

  • XLM 함수

  • format2 또는 address 옵션을 사용하는 INDIRECT, CELL 함수

  • 피벗 테이블이나 큐브를 참조하는 GETPIVOTDATA 또는 기타 함수

  • Range.Calculate 및 Range.CalculateRowMajorOrder

  • 순환 참조 루프의 셀

프로세서가 여러 개인 컴퓨터에서 Excel이 통합 문서를 처음 계산할 때는 Excel에서 종속성을 확인하는 동안 오버헤드가 다소 발생할 수 있습니다. 따라서 두 번째 및 그 이후의 계산에서 성능이 가장 크게 향상됩니다. 그러나 일반적으로 첫 번째 계산 역시 프로세서가 하나인 동일 속도의 컴퓨터에서 같은 작업을 실행하는 경우에 비해서는 향상된 성능을 보여 줍니다.

이러한 오버헤드는 통합 문서를 마지막으로 저장한 컴퓨터보다 프로세서 수가 더 많은 다중 프로세서 컴퓨터에서 통합 문서를 처음 계산할 때도 발생합니다. 프로세서가 하나인 시스템에서 Excel을 실행하거나 MTC를 해제하는 경우 MTC 기능으로 인해 성능이 개선되거나 저하되지 않습니다. Excel의 호환 모드에서도 MTC를 사용할 수 있으며, 계산을 통해 저장되는 정보는 이전 버전 Excel을 사용하여 통합 문서를 계산 및 저장한 후에도 다시 사용할 수 있습니다.

그림 1. Excel에서 계산 스레드의 수 제어

Backstage 보기의 수식 옵션

동시에 실행할 스레드 수를 수동으로 지정할 수 있습니다. 이 수는 컴퓨터의 프로세서 수보다 많게 지정할 수 있는데, 이렇게 하면 XLL 사용자 정의 함수가 데이터베이스 서버에 대한 장기 실행 외부 호출에 종속되는 등의 경우에 유용합니다. 데이터베이스 서버가 여러 요청을 병렬로 처리할 수 있는 경우 단일 프로세서 시스템에서도 다중 스레딩을 효율적으로 사용할 수 있습니다.

다중 스레드 계산 옵션을 제어하려면 파일 탭, 옵션을 차례로 클릭하고 Excel 옵션 대화 상자에서 고급을 클릭한 후 수식. 섹션에서 다중 스레드 계산 옵션을 설정합니다.

메모리 용량 및 한도 증가

이전 버전 Excel에서는 스마트 다시 계산 기능에 대해 추적되는 종속성 수에 여러 가지 제한이 적용되었습니다. 이러한 제한을 초과하는 경우 Excel에서는 항상 전체 계산을 수행했으며, 상태 표시줄에 계산이 표시되었습니다.

Excel 2007부터는 이러한 제한이 제거되었습니다. 전체 Windows 메모리 제한인 2GB 한도 내에서 큰 Excel 통합 문서는 스마트 다시 계산을 항상 사용할 수 있습니다. 일반적으로 스마트 다시 계산은 전체 계산보다 훨씬 빠르게 수행됩니다.

Workbook.ForceFullCalculation

Excel 개체 모델을 사용하여 새로운 통합 문서 속성인 Workbook.ForceFullCalculation을 프로그래밍 방식으로 설정할 수 있습니다. 이 속성이 True로 설정되어 있으면 종속성이 열릴 때 로드되지 않으며 모든 통합 문서 계산은 전체 계산으로 수행됩니다.

통합 문서에 복잡한 종속성이 매우 많아 통합 문서를 열 때 종속성을 로드하는 시간이 너무 오래 걸리거나 다시 계산이 전체 계산보다 오래 걸리는 경우에는 이 속성을 사용하여 Excel에서 종속성 로드를 건너뛰고 항상 전체 계산을 사용하도록 강제 지정할 수 있습니다.

SUMIFS, COUNTIFS 및 AVERAGEIFS

Excel 2007부터 Excel에는 여러 조건을 사용하는 SUM, COUNT 또는 AVERAGE에 사용할 수 있는 세 개의 새 함수가 포함됩니다. 이전 버전 Excel에서는 여러 조건을 사용하려면 계산 속도도 느리고 이해하기도 어려운 배열 수식이나 SUMPRODUCT를 사용해야 했습니다. 새로 추가된 함수는 쉽게 사용할 수 있으며 계산 속도가 빠릅니다.

SUMIFS(sum_range, criteria_range1, criteria1 [,criteria_range2, _
    criteria2...])
COUNTIFS(criteria_range1, criteria1 [,criteria_range2, criteria2...])
AVERAGEIFS(average_range, criteria_range1, criteria1 _
    [,criteria_range2, criteria2...])

이러한 함수는 특수한 빈 셀 처리 방식을 사용하여 전체 열 참조($A:$A)를 효율적으로 처리합니다. 텍스트 셀을 계산하는 조건은 와일드카드 문자 (*)(임의의 문자 집합) 및 (?)(임의의 한 문자)를 사용할 수 있습니다. 이러한 함수는 동일한 배열 수식에 비해 계산 속도가 훨씬 빠르므로, 가능한 경우에는 배열 수식 대신 이러한 함수를 사용하십시오.

IFERROR

다음 IFERROR 함수를 사용하면 오류 확인을 간소화하고 빠르게 수행할 수 있습니다.

IFERROR(Formula, value_if_error)

이전 버전 Excel에서는 수식을 복제하여 오류를 트랩하는 경우가 많았습니다.

=IF(ISERROR(VLOOKUP("Charles",$A$1:$C$10000,3,False),"NotFound", _ VLOOKUP("Charles",$A$1:$C$10000,3,False))

이 수식을 사용할 때 VLOOKUP에서 오류가 발생하지 않으면 Excel은 해당 수식을 두 번 실행합니다. Excel 2007부터는 IFERROR를 사용하여 이러한 계산 시간 중복 현상을 방지할 수 있습니다.

=IFERROR(VLOOKUP("Charles",$A$1:$C$10000,3,False),"NotFound")

명명된 테이블 및 구조적 참조

Excel 2007에는 수식 및 데이터 블록을 정의하기 위한 명명된 테이블이 도입되었습니다. C2:C50과 같은 일반 Excel 참조가 아닌 Sales 테이블의 2004 열을 참조하는 **Sales[2004]**와 같은 구조적 참조를 사용하면 수식의 명명된 테이블 및 해당 열을 보다 쉽게 참조할 수 있습니다.

이 기술을 사용하는 경우의 가장 큰 장점은 테이블 행과 열에 데이터를 추가하면 테이블에 대한 참조가 자동으로 조정된다는 것입니다. 구조적 참조를 사용하는 경우 OFFSET과 같은 일시적 함수가 COUNTA와 같은 계산 함수와 함께 사용되지 않으므로 동적 범위를 사용하는 경우보다 효율적입니다. 또한 워크시트에 하나에 명명된 테이블을 두 개 이상 포함하고 각 명명된 테이블에 대해 자동 필터를 사용할 수 있다는 장점도 있습니다.

현재 배열 수식을 사용 중인 경우 배열 수식에서 계산되는 셀 수를 줄일 수 있도록 가능하면 항상 구조적 참조를 사용하십시오.

사용자 정의 함수

Excel 2007부터는 모든 사용자 정의 함수가 개발에 사용된 언어 및 추가 기능 메서드에 관계없이 Excel 2007에 도입된 한도 증가를 지원할 수 있습니다. 여기에는 함수 인수의 수와 "큰 눈금"도 포함됩니다. "큰 눈금"을 완전히 지원하려면 코드가 최대값(열 256개 또는 행 65,536개)을 가정하는 모든 위치에서 사용자 정의 함수를 변경해야 할 수 있으며, 새 Excel C API를 지원하기 위해 XLL도 변경해야 할 수 있습니다.

다중 스레드 계산을 활용할 수 있는 사용자 정의 함수 유형은 XLL뿐입니다. 다중 스레드 계산용으로 XLL 함수를 업데이트하면 XLL이 여러 스레드에서 동시에 실행되도록 할 수 있습니다. VBA, 자동화 추가 기능, XML 함수, 여러 스레드에서 작동하도록 업데이트되지 않은 XLL 등의 기타 모든 사용자 정의 함수는 항상 주 스레드에서 실행되며 사용되는 프로세서나 스레드의 수에 관계없이 한 번에 하나만 실행됩니다.

Excel 2007부터는 다음 기능을 지원하기 위해 Excel에 업데이트된 C API가 포함됩니다.

  • "큰 눈금"

  • 다중 스레드 계산

  • 더 많은 함수 인수

이러한 새 기능을 사용하려면 XLL 함수를 업데이트해야 합니다. 자세한 내용은 Developing Excel 2010 XLLs을 참조하십시오. 추가 기능 함수는 업데이트하지 않아도 계속 작동하지만 Excel 2007에 도입된 새로운 기능을 사용할 수는 없습니다.

범위 계산

Excel 2007부터 Excel에는 두 Range 계산 메서드가 포함됩니다. 이러한 계산 메서드를 실행하기 위한 표준 사용자 인터페이스는 없으며, VBA나 기타 프로그래밍 언어를 사용하여 메서드를 직접 호출해야 합니다. 다른 수식은 모두 변경되지 않도록 유지하고 소수의 셀 블록만 계산하려는 경우 이러한 메서드가 유용합니다.

Range.Calculate

Range.Calculate는 범위를 왼쪽에서 오른쪽, 위에서 아래로 한 번에 한 행씩 계산한 다음 범위 내의 모든 종속성을 확인합니다. 이 메서드는 Excel 2002와 Excel 2003에서 사용되었던 것과 동일하지만, Excel 2007부터는 수동 모드에서 반복 계산을 처리하도록 개선되었습니다.

Range.CalculateRowMajorOrder

Range.CalculateRowMajorOrder는 범위를 왼쪽에서 오른쪽, 위에서 아래로 한 번에 한 행씩 계산하지만 모든 종속성을 완전히 무시합니다. 이 메서드는 Microsoft Excel 97 및 Excel 2000에서 사용되었던 것과 동일합니다. CalculateRowMajorOrder는 종속성을 확인하지 않으므로 Range.Calculate보다 속도가 크게 빠른 경우가 많습니다.

수식 블록 전체의 종속성이 항상 왼쪽이나 위쪽의 셀을 역방향으로 참조하는 경우에는 Range.CalculateRowMajorOrder가 단일 프로세서 시스템에서 Excel의 가장 빠른 계산 메서드일 수 있습니다.

Range.CalculateRowMajorOrder는 성능 최적화용으로 가장 유용한 Excel의 도구 중 하나입니다. 이 메서드를 사용하여 종속성의 효과는 무시하면서 여러 수식의 계산 시간을 측정하고 속도를 비교할 수 있기 때문입니다.

Excel Services

Excel 2007부터 Excel Services는 SharePoint Server에 포함된 새로운 서버 기술로 제공됩니다. Excel Services를 사용하면 데스크톱에서 수행하던 시간이 많이 걸리는 계산을 보다 성능이 뛰어난 고가의 서버에서 수행할 수 있습니다. 8개 코어 서버에서 다중 스레드 계산을 사용하는 경우 성능을 크게 향상시킬 수 있습니다. Excel Services에 대한 자세한 내용은 Creating Custom Solutions With Excel Services를 참조하십시오.

결론

Excel 2010 및 Excel 2007에서는 개별 기능과 개체 모델 개선에서 다중 스레드 계산 및 다중 코어 처리의 도입에 이르기까지 여러 영역의 성능이 개선되고 한도가 증가했습니다. Excel 2010부터는 64비트 버전 Excel이 제공되므로 사용자가 더 큰 데이터 집합을 사용할 수 있게 되었습니다. PowerPivot은 Excel 2010 내에서 효율적인 데이터 분석 도구를 제공하며, Excel 2010용 HPC Services는 사용자가 통합 문서 또는 UDF를 Windows 고성능 컴퓨팅 클러스터에 저장할 수 있도록 합니다. 이러한 모든 개선 기능으로 인해 Excel을 하드웨어와 함께 확장할 수 있으므로, 컴퓨터의 CPU 및 RAM 용량이 증가함에 따라 성능도 개선됩니다.

저자 정보

Charles Williams는 1996년에 Decision Models를 설립하여Microsoft Excel 및 관계형 데이터베이스 관련 고급 컨설팅, 의사 결정 지원 솔루션 및 도구를 제공하고 있습니다. Charles는 현재 널리 사용되고 있는 Excel 성능 프로파일러이자 성능 도구 집합인 FastExcel의 작성자이며, 정의된 이름 관리용으로 널리 사용되는 유틸리티인 Name Manager의 공동 작성자이기도 합니다. Excel 계산 성능/방법, 메모리 사용 및 VBA 사용자 정의 함수에 대한 자세한 내용은 Decision Models 웹 사이트를 참조하십시오.

이 기술 문서는 A23 Consulting과의 제휴를 통해 작성된 것입니다.

Allison Bokone는 Microsoft Corporation 소속의 Office 팀 프로그래밍 관련 문서 작성자입니다.

Chad Rothschiller는 역시 Microsoft Corporation 소속의 Office 팀 프로그램 관리자입니다.

추가 자료

Excel 2010에 대한 자세한 내용은 다음 자료를 참조하십시오.