탁월한 성능 : 조회 대 Getpivotdata 피벗 테이블에서 데이터를 추출 할

소스 데이터가있는 더 큰 테이블 (약 500,000 행 10 열)이 포함 된 Excel 2007 스프레드 시트를 만듭니다. 분석을 위해이 큰 테이블에서 데이터를 추출해야합니다. 데이터를 추출하고 집계하기 위해 보통 sumif, vlookup / hlookup 및 index + match 함수를 사용합니다.

최근에 getpivotdata 함수의 존재에 대해 배웠으므로 피벗 테이블에서 데이터를 추출 할 수 있습니다. 그것을 사용하려면 먼저 큰 소스 테이블을 피벗 테이블로 변환 한 다음 getpivotdata 함수를 사용하여 데이터를 추출 할 수 있습니다.

getpivotdata를 사용하여 데이터를 추출하고 집계하는 경우 성능이 향상 될 것으로 예상하십니까? 기본 피벗 개체 내에서 집계 된 값이 미리 계산되어 성능이 향상 될 것으로 기대합니다.

성능이 더 좋으면이 방법을 따르지 않는 이유가 있습니까? 명확하게하기 위해 피벗 테이블에는 계산 체인의 시작 부분에있는 소스 데이터가 포함되어 있으므로 피벗 테이블을 새로 고칠 필요가 없습니다.



답변

Excel 2007과 함께 듀얼 코어 2.33GHz 2GB RAM 데스크톱 PC에서 몇 가지 성능 테스트를 수행했습니다.

조회는 241,000 개의 레코드가있는 테이블에서 수행되었습니다. 결과는 다음과 같습니다 (가장 빠른 속도와 가장 느린 속도).

  1. 정렬 된 목록 에서 인덱스 일치 기능을 사용하면 초당 조회 수는 180,000 !! (8 초 동안 1,440,000 조회를 기반으로 함). Excel에서 정렬 된 조회를 구현하는 방법에 대한 자세한 내용은 여기 에서 찾을 수 있으며 한 수식, 정렬 된 데이터의 INDEX-MATCH 섹션으로 스크롤 하십시오.

  2. getpivotdata 함수를 사용하면 초당 조회 수는 6,000 개 (40 초에 250,000 회 조회 기준)입니다.

  3. 매우 유연한 단일 인수 문자열 구문을 사용 하는 getpivotdata 함수 ( 여기 참조 )의 초당 조회 수는 2,000 (145 초의 250,000 조회 기준)입니다.

  4. 정렬되지 않은 목록 에서 인덱스 일치 기능을 사용하면 초당 조회 수는 500 개 (35 초 동안 20,000 회 조회 기준)입니다.

조회 기능 이 명명 된 범위 대신 데이터 테이블을 참조 할 때 결과가 변경되지 않습니다 .

질문에 대답합니다. getpivotdata에 의한 조회는 일반 색인 일치 조회보다 약 10 배 빠르지 만 소스 데이터를 정렬하여 최상의 성능 향상을 달성합니다. 소스 데이터를 정렬하면 조회 속도가 400 배 빨라질 수 있습니다.


답변

VBA (사전 사용)로 조회를 수행하는 것이 훨씬 빠른 방법입니다. 이것을보십시오 : https : //.com/questions/18656808/how-to-optimize-vlookup-for-high-search-count-alternatives-to-vlookup


답변

GetPivotData를 사용하면 피벗 테이블 보고서에 표시되는 내용에만 액세스 할 수 있습니다. 이 스프레드 시트의 유일한 사용자 인 경우이 방법이 적합 할 수 있습니다.

대부분의 집계를 수행하도록 피벗을 디자인 할 수 있으면 GetPivotData를 사용하는 것이 더 빠릅니다.

GetPivotData 성능을 테스트하지는 않았지만 정렬 된 데이터에서 이진 검색 조회 / 일치보다 느릴 것으로 예상합니다.


답변

나는 매일 같은 문제가 있습니다. Excel의 여러 데이터 테이블에 많은 수의 행이 있습니다.

현재 매우 큰 테이블을 사용 가능하게 만드는 유일한 솔루션은 데이터베이스 서버로 테이블을 내보내고 Sumif, Vlookups 및 집계를 수행하기 위해 SQL 쿼리 를 작성 / 작성 하는 것입니다.

Excel을 사용하여 SQL 쿼리 를 만들 수 있습니다.

몇 년 동안 시트 / 테이블을 ” MySQL “및 ” MS SQL Server express “로 내 보낸 다음 Excel로 작성하고 SQL 쿼리를 작성했습니다.

서버는 처리 속도 엑셀에 비해 수행 하고 데이터베이스가 다른 서버에있는 경우 그것의 계산을 수행하는 PC의 자원을 사용하지 않을 이후 성능 향상.

이 솔루션에는 다른 이점도 있습니다.

마찬가지로 ETL 자동화 하고 오히려 “BIG”스프레드 시트보다 연결 문자열의 공유.