Copie a fórmula para baixo, pulando as células, mas faça com que ele extraia dados em incrementos únicos de outra planilha

2

Tenho uma planilha de horas que estou ajudando a criar, e ela extrai os dados da planilha 1 e os adiciona a uma lista na planilha 2. Os dados precisam fazer referência à planilha 1 na A42, depois A73, A115, A146, A188 etc. , seguindo um padrão de espaçamento de 42, depois 31, depois 42 e depois 31; 100 instâncias disso. Como posso referenciar dados dessa maneira?

user496412
fonte
Você deve atualizar sua pergunta para que ela descreva corretamente o que deseja.
precisa saber é o seguinte
Desculpe, era totalmente para trás antes e não sabia que eu poderia atualizá-lo. Minha pergunta está resolvida agora, obrigado.
User496412
Eu não vejo quaisquer edições feitas a ele questionar até agora ...
zagrimsan
Prosseguiu e editou novamente, sem ter certeza do que havia acontecido antes, mas agora está com a leitura correta.
User496412
1
Isso só leva aritmética inteligente. Estou um pouco confuso, no entanto, com o padrão exato que você precisa lidar. Você poderia adicionar à pergunta uma lista de células ou linhas que precisam ser copiadas (não 100 delas, mas uma lista grande o suficiente para que o padrão fique claro)?
Fixer1234 15/09/2015

Respostas:

3

Como parece que há um padrão constante com as células da Plan1 que você precisa fazer referência, é apenas uma questão de construir uma fórmula para produzir o número de linha correto da Plan1 com base no número da linha da Plan2. É bastante fácil produzir a fórmula de referência usando algumas das funções ROW(), ISEVEN()ou ISODD(), MOD()e FLOOR().

número da linha da Sheet1 = 31*FLOOR((ROW())/2;1)+42*FLOOR((ROW()+1)/2;1)

Do número da linha à fórmula real com a INDEX()função:

=INDEX(Sheet1!A:A;30*FLOOR(ROW()/2;1)+41*FLOOR((ROW()-1)/2;1)+42;1)

(na fórmula, obviamente, você precisa modificar o intervalo do primeiro parâmetro para ajustar seus dados de origem e o número no último parâmetro que indica o número da coluna no intervalo).

Como o número da linha da Planilha2 é o principal fator para obter a linha correta na Planilha1, o acima funciona apenas quando os dados de origem na Planilha1 começam na linha 42 e os dados resultantes na Planilha2 começam na linha 1. Se isso mudar, você poderá curso subtraia o deslocamento de linha na fórmula para cada chamada para ROW()(para deslocamento na Folha2) e / ou adicione / subtraia ao número da linha resultante (para alteração de deslocamento na Folha1).

zagrimsan
fonte
Na verdade, olhando para ele, acho que expliquei totalmente o contrário. Os dados precisam fazer referência às células planilha1A1, planilha1A14, planilha1A27, etc etc e serem listados como planilha2B1, planilha2B2, planilha2B3 .... Eu estava tendo problemas para encontrar como fazer referência a células na planilha 1 com distâncias variáveis ​​entre elas e acabávamos na planilha 2. Alguns têm 30 linhas no meio, outros têm 41, depois 30, depois 41 e assim por diante.
User496412
@ user496412 Posso atualizar minha resposta mais tarde, mas corrija a pergunta primeiro.
precisa saber é o seguinte
@ user496412 Atualizei minha resposta. Por favor, experimente.
precisa saber é o seguinte
Você foi o primeiro com o conceito e se esforçou muito enquanto a pergunta era refinada. 1
fixer1234
Doce, com um pouco de ajustes para o meu problema específico que fez isso perfeitamente, obrigado por toda a ajuda!
user496412
2

Aqui está um exemplo de como você pode fazer isso com fórmulas:

insira a descrição da imagem aqui

Estou usando a coluna A para ilustrar o padrão que a carne da fórmula produz. Isso começa na linha 2, pois a linha 1 provavelmente conteria títulos. Isso seria na planilha 2 onde você deseja criar uma lista de itens selecionados na planilha 1. A fórmula em A2 que calcula os números de linha de destino é:

=INT(ROW()/2)*42+INT((ROW()-1)/2)*31

A próxima captura de tela ilustra como você usaria isso para realmente extrair uma célula da outra planilha:

insira a descrição da imagem aqui

Coloquei algo para copiar apenas na célula A42, e é por isso que apenas uma célula é preenchida na coluna B. A fórmula usa a função INDIRECT para criar uma referência de célula. A fórmula em B2 é:

=INDIRECT("sheet1!A" & INT(ROW()/2)*42+INT((ROW()-1)/2)*31)

A célula A42 da folha 1 contém ABC.

fixer1234
fonte
Eu estava brincando com isso em segundo plano, enquanto a pergunta estava sendo refinada. A resposta do @ zagrimsan foi atualizada para a versão atual depois que eu postei isso. Parece que grandes mentes pensam da mesma forma. É o mesmo conceito, mas começamos com linhas diferentes e usamos fórmulas ligeiramente diferentes. Como a maioria das coisas no Excel, você pode usar várias funções diferentes para conseguir a mesma coisa.
Fixer1234 15/09/2015
Eu não pensei em usar o INT()que é bom para a falta. E acho que sua solução é mais elegante (eu estava pensando em adicionar na minha resposta que provavelmente nem é a mais curta ou a mais bonita).
precisa saber é o seguinte
Este funcionou tão bem, graças a vocês dois!
user496412