Fazendo referência a uma linha com células em branco no meio e retornando resultados de outra linha sem células em branco no meio

0

Eu tenho uma linha que com células espaçadas uniformemente entre si. Gostaria que cada oitava célula dessa linha fizesse referência a uma célula em outra planilha em que não há espaços entre as células. Eu tenho muitos dados nessa linha, então não quero fazer nada que diminua a velocidade do documento já grande e sem código VB.

Alexis Trevino
fonte
Para esclarecer, você possui uma planilha com valores em colunas consecutivas, como A, B, C, ...; e em outra planilha, você deseja que a célula na coluna A faça referência à coluna A na primeira planilha, Coluna I para fazer referência à célula na coluna B, coluna Q para fazer referência à célula na coluna C, etc.?
fixer1234
Bem-vindo ao superusuário. Como este não é um serviço de escrita de scripts / fórmulas, seria muito útil saber o que você já tentou e onde ficou preso.
precisa saber é o seguinte
As células na planilha que eu quero referenciar são consecutivas. A coluna que eu quero exibir os resultados possui células espaçadas com 7 células em branco entre cada célula.
Alexis Trevino

Respostas:

0

Aqui está a essência de como conseguir isso.

Digamos que os valores de origem na planilha1 estejam na linha 3, começando na coluna C; então C3, D3, E3 etc. As células de exibição estão na folha 2 na linha 5, começando na coluna B, depois a cada 8a célula, então B5, J5, R5, etc. Eu usei propositadamente linhas e colunas iniciais para ilustração. Pode ser mais simples no seu caso.

Então, você deseja que B5 exiba C3, J5 para exibir D3, R5 para exibir E3 etc. Existem duas maneiras comuns de fazer isso, usando OFFSET ou INDIRECT. Ilustrarei os dois.

Cálculo da coluna: para qualquer um deles, é necessário calcular o número de incrementos de coluna (um incremento é 8 na folha2 vs. 1 na folha1). A fórmula para isso seria:

(COLUMN()-COLUMN(B5))/8  or in this example:
(COLUMN()-2)/8

A função COLUMN () vazia retorna a coluna da célula em que está. Para cada célula de exibição na planilha2, sua coluna, menos a primeira coluna da série, dividida por 8, fornece o número de incrementos de coluna na planilha1.

Para OFFSET , você usaria assim. A fórmula nas células sheet2 seria:

=OFFSET(sheet1!C3,0,(COLUMN()-2)/8,1,1)

OFFSET funciona a partir de uma célula âncora (C3 neste exemplo) e, em seguida, compensa 0 linhas, compensa o número de colunas calculadas pela fórmula acima e retorna um resultado em tamanho de 1 linha por 1 coluna (uma única célula).

INDIRECT traduz algo que você constrói, de texto e cálculos, em um endereço. Para esta função, você precisa adicionar o ponto de ancoragem para localizar o endereço real da célula. INDIRETO permite que você use um estilo alternativo de especificação de endereço, útil para calcular colunas; refere-se às colunas como números e não como letras. A célula C3 seria R3C3, ou linha 3, coluna 3.

A adição na coluna da âncora faria com que o cálculo da coluna fosse assim:

(COLUMN()-COLUMN(B5))/8+COLUMN(sheet1!C3)  or in this example:
(COLUMN()-2)/8+3

A construção da referência de célula é feita concatenando o texto e os números calculados:

=INDIRECT("sheet1!R3C"&(COLUMN()-2)/8+3,false)

O "false" indica que a referência de célula está no estilo "R1C1".

Configure qualquer fórmula na primeira célula de exibição na planilha2, ajustando-a para o layout da planilha. Em seguida, copie-o em cada uma das outras células da tela.

fixer1234
fonte