Eu tenho uma pasta de trabalho do Excel com várias folhas. A coluna 'SheetA'!W:W
lista o texto que pode ser encontrado dentro de um cabeçalho de coluna na linha 'Sheet3'!1:1
. Por exemplo, SheetA'!W42
contém "B16". A célula Sheet3'!CB1
possui o texto do cabeçalho "B16: Amostra 40", portanto seria a coluna de destino.
Exemplo: Amostra de 'SheetA'!W42
No 'SheetA'!CD42
existe uma fórmula que calcula o número da amostra que tem de ser localizado em 'Sheet3'!A:A
. Na amostra abaixo, CD42
exibe o valor calculado "30", que pode ser encontrado em 'Sheet3'!A32
.
Exemplo: Dados de amostra da Planilha3 exibindo os cabeçalhos e a interseção do cabeçalho da coluna (B16) e da linha que contém o número de amostra de interesse:
O objetivo é recuperar o conteúdo da célula na Planilha3 onde a coluna e a linha pesquisadas se cruzam e exibi-lo em uma célula na PlanilhaA. Na amostra fornecida, na 'Sheet3'!CB:CB
interseção linha 32 e na folha A, o valor "0,1950581843" seria exibido.
Alguém sabe como isso pode ser feito?
fonte
Respostas:
Dados os dados acima, vou fazer algumas suposições. Se tudo isso for verdade, um
HLOOKUP
pode resolver facilmente seu problema. Caso contrário, pode ser necessária uma cadeia de funções mais complexa.Premissas:
'Sheet3'!1:1
são absolutamente exclusivos nessa linha.'Sheet3'!1:1
estão no formato "[X]: [Y]", onde:'SheetA'!W:W
.'SheetA'!X:X
que está na mesma linha que [X].'SheetA'!CD:CD
são pesquisáveis'Sheet3'!A:A
, de forma que estejam na mesma linha que os dados que devem ser recuperados.'SheetA'!CD:CD
que deveria corresponder a outra coluna em vez disso (e, portanto, pode produzir resultados imprecisos se corresponder'Sheet3'!A:A
).'Sheet3!A:A'
são perfeitamente sequenciais, começando com "1" em'Sheet3'!A3
, nunca se repetindo nessa coluna e sempre classificados em ordem crescente.Dadas as premissas acima, criei minhas próprias planilhas com dados de amostra que representam aproximadamente o seu cenário.
Aqui está uma captura de tela parcial do meu "Sheet3".
E uma foto parcial do meu "SheetA".
Lista de análogos:
Como você pode ver na segunda captura de tela, a fórmula para D2 é:
Passo a passo da fórmula:
O HLOOKUP permite procurar horizontalmente um intervalo de células em busca de um valor e, em seguida, retornar o valor de uma célula na mesma coluna com base em uma posição de linha relativa. São necessários quatro argumentos, três dos quais são obrigatórios: lookup_value , table_array , row_index_num , [range_lookup] . Essa é a fórmula que fará o trabalho de localizar os dados desejados na Planilha3 e puxá-los para uma célula na PlanilhaA.
HLOOKUP
encontrar primeiro. Este valor deve estar presente na primeira linha da matriz_tabela , porque essa é a única linha que será pesquisada.HLOOKUP
também retornará apenas a primeira correspondência, portanto esses valores também devem ser exclusivos. Aqui, estamos usandoCONCATENATE
para criar nossa string de pesquisa.CONCATENATE
. A primeira parte da nossa string será o "Nome da amostra" em A2.CONCATENATE
. Isso coloca os dois pontos e o espaço na string, para corresponder ao formato dos valores'Sheet3'!1:1
.CONCATENATE
. Ele puxa o "ID da amostra" de B2 para completar a sintaxe usada para os cabeçalhos'Sheet3'!1:1
.HLOOKUP
trabalhar. Lembre-se de que a primeira linha deve ser a que conterá lookup_value . Esse intervalo também deve abranger todos os valores possíveis para row_index_num .Sheet3!1:32
(atualmente, 32 é a última linha preenchida na minha Planilha3). Se os dados puderem ser adicionados por novas colunas e novas linhas, eu faria referência à planilha inteira comSheet3!1:1048576
ouSheet3!A:XFD
. (Nota: a referência "folha inteira" é válida para o Excel 2013. As versões anteriores podem ter limitações menores de linha / coluna - ajuste1048576
ouXFD
conforme apropriado.)HLOOKUP
qual célula você deseja retornar da coluna correspondente. Note-se que, porqueHLOOKUP
só procura valor_procurado na primeira linha de matriz_tabela , e núm_índice_lin não pode ser negativo, você não pode usarHLOOKUP
(pelo menos, não por si só) para devolver informações a partir de células que estão acima valor_procurado .'Sheet3'!A:A
são perfeitamente sequenciais, sem números inteiros ignorados e sempre serão ordenados em ordem crescente, podemos usar esses valores (também representados em'SheetA'!C:C
) como indicadores dos números de linha dos dados que queremos encontrar. O+2
que há para explicar o fato de que a numeração começa com "1" na linha 3 da Sheet3.HLOOKUP
. As opções são TRUE ou FALSE, para indicar se você deseja permitir que correspondências aproximadas sejam válidas ou se apenas correspondências exatas devem ser permitidas. O padrão do Excel é TRUE (correspondência aproximada) se esse argumento for omitido, o que geralmente pode resultar em comportamento indesejado - especialmente se a planilha não for classificada de determinadas maneiras. Portanto, especificamos FALSE aqui para garantir queHLOOKUP
apenas apareça uma correspondência exata.Adaptando o acima ao layout da sua planilha, acredito que esta é a fórmula que você precisará para a célula
'SheetA'!CE42
(assumindo que é onde você deseja que os dados sejam inseridos):Observe que, se seus dados na Planilha3 forem mais à direita do que a coluna CB e / ou os dados puderem ser adicionados a outras colunas, convém ajustar a matriz de tabela de acordo.
fonte