Fórmula do Excel: pode MATCH reconhecer 'n' e '01' ou 'n' e '02'

2

Eu tenho uma planilha do Excel (fonte) que possui números de identificação simples na coluna A (01 a 40000). Em outra folha (filho) eu tenho esses mesmos números de ID na coluna A, mas com um adicional 01 ou 02 adicionados; por exemplo. 0101 ou 0102, 250001 ou 250002, etc. Portanto, essa lista de números de ID é quase o dobro do tempo. Na coluna B, existem figuras.

Eu estou tentando extrair os dados da coluna B na planilha filho e, com base em se tem um "01" ou um "02", coloque a figura na coluna B ou C da planilha de origem.

Minha ideia é usar INDEX / MATCH, mas não tenho certeza de como a correspondência seria escrita para levar em conta a NOT EXACT MATCH do valor de pesquisa. PARTIDA (A1 & "01", criança! A1: A100000,).

Quaisquer dicas e links muito apreciados.

Mike.

    
por RocketGoal 13.01.2011 / 14:57

3 respostas

2

Ele deve funcionar, mas depende dos tipos de dados correspondentes.

Se os dados em child forem numéricos, isso não funcionará, porque n&"01" é uma string. Nesse caso, você precisa agrupar sua fórmula A1&"01" em VALUE() para convertê-la em um número em todos os lugares em que ela é usada.

Sem mais detalhes, deixei isso fora do resto da resposta, mas é simplesmente o suficiente para adicioná-lo.

Se você puder classificar os dados na segunda planilha, poderá fazer isso com um VLOOKUP direto, como tal:

=VLOOKUP( A1 & "01" , child!$A$1:$A$10000 , 2 , FALSE )

Isso retornará o valor da coluna B da linha correspondente, se uma correspondência ###01 for encontrada ou #N/A caso contrário. Então, você precisará envolvê-lo em um IF para lidar com isso (exemplo com quebra de linha para legibilidade):

=IF( ISNA( VLOOKUP(A1&"01",child!$A$1:$A$10000,2,FALSE) ) ,
                             "" , VLOOKUP(A1&"01",child!$A$1:$A$10000,2,FALSE) )

Essa fórmula serve para a coluna B , você precisa do mesmo, mas com &"02" na coluna C .

    
por 13.01.2011 / 16:29
0

Em B1:

=IF(ISNA(MATCH(A1&"01",child!$A$1:$A$10000,FALSE)),"",VLOOKUP(A1&"01",child!$A$1:$C$10000,2,FALSE)

Em C1:

=IF(ISNA(MATCH(A1&"02",child!$A$1:$A$10000,FALSE)),"",VLOOKUP(A1&"02",child!$A$1:$C$10000,3,FALSE)

e preencha conforme necessário.

    
por 13.01.2011 / 16:24
0

Parece que os nomes das suas planilhas são incompatíveis. Funcionalmente, sua planilha filho é, na verdade, a fonte. Usando seus nomes no entanto:

Mantenha a simplicidade. Use vlookup. Essas equações extrairão dados para a planilha "source":

Na coluna B:

=vlookup(a4&"01",child!a$4:b$13,1,0)

Na coluna C:

=vlookup(a4&"02",child!$a$4:b$13,1,0)

Isso pressupõe que os dados iniciem na linha 4 de ambas as planilhas. Você precisará expandir o intervalo de dados child!a$4:b$13 para incluir todos os seus dados na planilha subordinada. Em seguida, preencha as equações.

Algum tratamento de erros pode ser necessário para controlar o comportamento #n/a :

=if(isna(vlookup(a4&"02",child!a$4:b$13,1,0)),"",vlookup(a4&"02",child!a$4:b$13,1,0))
    
por 13.01.2011 / 16:44