ImportHtml / IMPORTXML no Excel / Sheets - carrega o próximo índice após o conteúdo do tamanho variável

1

Estou usando funções como o ImportHtml para importar dados tabulares para o Planilhas Google. Cada tabela tem os mesmos cabeçalhos, mas contém um número desconhecido de linhas. Preciso de cada tabela de uma lista de URLs para aparecer abaixo da última, com cada título alinhado sob as mesmas colunas.

Eu simplesmente inseriria uma lista de URLs contendo tabelas e cada uma seria preenchida dentro da planilha, uma abaixo da outra, dependendo de quantos URLs eu fornecer no intervalo.

Os dados devem ficar assim:

A minha dificuldade é que não sei qual (is) função (s) eu preciso usar.

  • Basicamente eu preciso usar o ImportHtml para inserir os dados, encontrar o tamanho da tabela para que o próximo URL na coluna A vem imediatamente após o fim da tabela anterior.
  • Então, na coluna A, eu simplesmente incremento o índice para pegar o próximo URL da coluna I.
  • Agora posso inserir um = Função ImportHtml na coluna D usando o URL da coluna A (claro, eu poderia simplesmente pegar o próximo índice da coluna I, mas é útil para ver o URL ao lado dos dados).

É trivial o suficiente para permitir que a coluna A saiba quando os dados são concluídos em linhas DF e, em seguida, pegue a próxima URL indexada, mas não vejo uma maneira de preencher a função ImportHtml por meio da coluna D, pois ela sobrescreve dados mesmo que esses dados sejam ImportHtml inativos.

Continuo com problemas de cálculos circulares, provavelmente porque estou usando métodos hacky incorretos, em vez da função mais eficiente.

Uma solução alternativa seria deixar um buffer de, digamos, 500 células em cada chamada, mas as tabelas poderiam ter qualquer comprimento de 2-2000 linhas, portanto, isso não funciona. Isso também dificulta a alteração do número de URLs no intervalo por qualquer motivo.

Qual é a melhor maneira de fazer isso?

    
por Turkeyphant 04.09.2018 / 23:50

1 resposta

0

A resposta foi mais óbvia que eu pensei!

Use apenas o ArrayFormula:

{ImportHtml(I1,"table",1);ImportHtml(I2,"table",1);ImportHtml(I3,"table",1);ImportHtml(I4,"table",1);ImportHtml(I5,"table",1);ImportHtml(I6,"table",1);ImportHtml(I7,"table",1);ImportHtml(I8,"table",1);ImportHtml(I9,"table",1);ImportHtml(I10,"table",1)}

ou:

=ArrayFormula({ImportHtml(I1,"table",1);ImportHtml(I2,"table",1);ImportHtml(I3,"table",1);ImportHtml(I4,"table",1);ImportHtml(I5,"table",1);ImportHtml(I6,"table",1);ImportHtml(I7,"table",1);ImportHtml(I8,"table",1);ImportHtml(I9,"table",1);ImportHtml(I10,"table",1)})

Em Ajuda do Editores do Documentos :

ARRAYFORMULA

Enables the display of values returned from an array formula into multiple rows and/or columns and the use of non-array functions with arrays.

Sample Usage

ARRAYFORMULA(SUM(IF(A1:A10>5, A1:A10, 0)))

ARRAYFORMULA(A1:C1+A2:C2)

Syntax

ARRAYFORMULA(array_formula)

array_formula - A range, mathematical expression using one cell range or multiple ranges of the same size, or a function that returns a result greater than one cell. Notes Many array formulas will be automatically expanded into neighboring cells, obviating the explicit use of ARRAYFORMULA.

Pressing Ctrl+Shift+Enter while editing a formula will automatically add ARRAYFORMULA( to the beginning of the formula.

Veja também Uso de matrizes no Planilhas Google .

    
por 06.09.2018 / 12:07