Essa ideia não é nova - Uma aplicação desenvolvida no MS Excel capaz de lidar com grandes conjuntos de dados, de forma muito rápida.
Estive usando o MS Excel em 89% do tempo da minha carreira, e ele definitivamente tem algumas características muito poderosas. Provavelmente, a maior delas é a sua capacidade de prover modelos de design, propiciar testes e atualização em tempo real. Sim, basta alterarmos alguns poucos valores, configurados como parâmetros qual kernel do nosso modelo de análise, e todas as nossas células, em alguns casos milhares delas, e tudo o que estiver ligado a este núcleo, inclusive gráficos, serão atualizados ao mesmo tempo.
Outro recurso interessante inclue a capacidade do MS Excel de conectar-se a bancos de dados ou pela Internet (por exemplo, no Bing API) extraindo informações úteis, resumindo-as em cubos e tabelas dinâmicas.
Embora os cubos e as tabelas dinâmicas dêem uma forte sensação de um ambiente old-fashioned de banco de dados relacional SQL, estes, em muitos contextos, continuam sendo úteis.
Não estou muito certo no momento, de que o MS Excel possa facilmente recuperar dados através da Internet, a partir de API que não sejam da Microsoft, como por exemplo a API do Google. Deveria, mas alguns testes mostram que as próprias APIs têm limitações quanto a recuperação de dados, limitando os usuários finais, mas isso também mudará.
Hoje, a principal desvantagem é a lentidão do MS Excel.
Se classificarmos 400.000 observações (numa coluna), isso será muito rápido. Mas digamos que precisemos classificar simultaneamente duas colunas: A e B, onde B é o registro de um valor. Assim, B contém uma fórmula em cada linha. Se você for heavy user, sabe do que estou falando. Isso diminui drasticamente o tempo. O Excel é muito mais rápido para classificar uma só coluna. As fórmulas em B atualizarão corretamente todos os valores, muito rápido, e automaticamente.
Como regra geral, qualquer operação que envolva recálculo (digamos) 200.000 linhas em várias células ligadas por relações de dependência serão muito lentas se:
Uma das colunas incluir funções como VLOOKUP em cada célula.
Ordenar (SORT) ou outro processo sub-linear sendo processado.
Há uma maneira muito fácil e eficiente (mas feia) em torno disso, e estou querendo saber por que ela não está embutido de forma transparente para o usuário no MS Excel.
Por exemplo:
Substitua as fórmulas PROCV por valores hard-coded, realizando as atualizações dos valores hard-coded, e depois colocando-as de volta nas fórmulas.
Realize o SORT apenas no número mínimo de colunas, onde necessário, e atualize as células nas colunas que envolverem as fórmulas.
Pense: Por que o PROCV é tão lento?
Uso um dataset de 3.000.000 de linhas com um join em uma tabela de 200.000 linhas em Perl, e é muito rápido. No Excel, o dataset da tabela de pesquisa seria armazenado em duas pastas diferentes dentro da mesma planilha, e levaria dias se é que for possível realizar esse " join ". Talvez o Excel execute indiretamente uma junção completa exponencialmente para abrandar a operação? Eu quase nunca faço, e as pessoas quase nunca fazem uma junção completa em grandes conjuntos de dados. Certamente esta é uma área onde melhorias significativas são esperadas.
Ainda não tive chance de usar o MS Excel na nuvem, se é que isso é possível, mas isso seria uma ótima maneira de novos cálculos com velocidade em dados de processo muito maior do que 1 milhão de linhas.
A Microsoft deveria permitir que o usuário exportasse os dados em uma nuvem (Microsoft ? ) De uma forma transparente, com apenas um clique (por exemplo, basta clicar em " Export to cloud " ), e em seguida, permitir que o usuário simulasse as operações demoradas na versão local do Excel em sua área de trabalho (equivaleria a usar a planilha Excel local, como uma planilha virtual) e quando terminasse, clicaríamos em "recuperar da nuvem " e obtermos a nossa planilha atualizada.
O "recuperar da nuvem " seria:Enviar as suas fórmulas do Excel para a nuvem,
Aplicar a fórmula para a sua versão cloud dos dados,
E então obtemos os dados processados de volta na sua planilha local.
Outro processo lento e doloroso é quando precisamos aplicar uma fórmula para uma coluna inteira com 500.000 células. Felizmente, existe um truque. Digamos que você deseje armazenar o produto de A e B na coluna C.
Em primeiro lugar, selecione toda a coluna C.
Insira a fórmula de = A1 * B1
Pressione a tecla Ctrl e a tecla Enter juntos.
Mas você pode fazer isso de modo ainda mais fácil do que isso, use algo como:
Este é outro exemplo de como o Excel não é user-friendly. Muitas vezes, alguns caminhos tornam-se obscuros para resolvermos algo de forma eficiente.== A1 * A1 ( fórmula com duplo igual indica que a fórmula se aplica a toda a coluna, e não apenas uma célula).
Tags: VBA, excel,
Nenhum comentário:
Postar um comentário