Eu tenho um intervalo contendo dados em uma planilha e quero dividir e manipular várias colunas usando fórmulas de matriz em outra planilha.
Então, como exemplo, posso querer reproduzir uma coluna usando a fórmula:
=INDEX(originalData,0,MATCH("product_name",OFFSET(originalData,0,0,1),0))
em que originalData
é um intervalo nomeado dinâmico que se aplica a todos os dados contidos na primeira planilha. Então, ele olha para os títulos e retorna a coluna cujo título é "product_name".
O problema que tenho é que os dados têm um número variável de linhas - qualquer coisa entre 50.000 e várias centenas de milhares. É possível definir uma fórmula de matriz para que ela retorne uma matriz de tamanho dinâmico em vez de ter que pré-selecionar uma tonelada de linhas que eu possa não precisar e diminuir a velocidade toda uma tonelada?
(Eu sei que isso funciona no Planilhas Google - existe um equivalente?)
EDIT - Exemplo para maior clareza:
Na folha 1:
originalData
édefinidocomo=OFFSET($A$1,0,0,COUNTA($A:$A),COUNTA($1:$1))
,masissoéapenasparasalvaranecessidadededigitartudoissováriasvezesnasfórmulasdaplanilha2.
Nafolha2:
Euquerousaressesdadosparacriarumnovoconjuntodedados,porexemplo,oabaixo,quecoletadadosdafontededadosoriginal,àsvezesdireto,àsvezesmanipulado(porexemplo,opreçopodeserpesquisadoemoutrolugar).
Noentanto,vamosusaroexemplodacolunaA,quedeveserigualàcolunaAdaplanilha1.NosplanilhasdoGoogle,euusariaumafórmulacomo=INDEX(originalData,0,MATCH("product_id",OFFSET(originalData,-1,0,1),0))
na célula A1, e isso retornaria uma matriz igual à número de linhas conforme o array se refere.
No entanto, tanto quanto sei, no Excel você tem que pré-selecionar o intervalo em que você deseja que a matriz retornada para ir e, portanto, você precisa saber o tamanho da matriz com antecedência para selecionar o número correto de linhas. Como o tamanho de originalData
irá variar sempre que for atualizado, eu quero evitar isso e ter o tamanho da matriz retornada varia para corresponder.