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?
microsoft-excel
worksheet-function
user496412
fonte
fonte
Respostas:
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()
ouISODD()
,MOD()
eFLOOR()
.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).fonte
Aqui está um exemplo de como você pode fazer isso com fórmulas:
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 é:
A próxima captura de tela ilustra como você usaria isso para realmente extrair uma célula da outra planilha:
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 é:
A célula A42 da folha 1 contém
ABC
.fonte
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).