Eu fiz alguns testes de desempenho em um desktop dual core de 2.33 GHz e 2 GB de RAM com Excel 2007.
A pesquisa foi feita em uma tabela com 241.000 registros. Os resultados são (o mais rápido primeiro e o mais lento por último):
-
Com a função index-match em uma lista classificada , o número de pesquisas por segundo foi: 180.000 !! (baseado em 1.440.000 pesquisas em 8 segundos). Mais informações sobre como implementar pesquisas classificadas no Excel podem ser encontradas aqui e desça até a seção INDEX-MATCH em uma fórmula, dados ordenados
-
Com a função getpivotdata , o número de pesquisas por segundo foi: 6.000 (com base em 250.000 consultas em 40 segundos)
-
Com a função getpivotdata usando uma sintaxe de cadeia de argumento único muito flexível (consulte aqui ) o número de pesquisas por segundo era: 2.000 (com base em 250.000 consultas em 145 segundos)
-
Com a função index-match em uma lista não classificada , o número de pesquisas por segundo foi: 500 (com base em 20.000 pesquisas em 35 segundos)
Os resultados não são alterados quando a função de pesquisa se refere a uma Tabela de dados em vez de um intervalo nomeado.
Então, para responder a pergunta. As pesquisas por getpivotdata são cerca de 10 vezes mais rápidas que a pesquisa de correspondência de índice regular, mas a melhor melhoria de desempenho é obtida classificando os dados de origem. A classificação de seus dados de origem pode tornar sua pesquisa 400 vezes mais rápida.