No Excel 2010, TAB1 e TAB2 estão na mesma planilha.
Quero preencher a Coluna D da TAB1 de uma Coluna E da TAB2 preenchida automaticamente com base nos valores da Coluna C da TAB2.
TAB1 fica assim:
COLUMN C COLUMN D COLUMN E
1
2
3
4
5
6
7
8
TAB2 fica assim
COLUMN C COLUMN E (AUTOFILLED FROM COLUMNS F & G)
1 1205 Grandview Ave
1 1207 Grandview Ave
1 1209 Grandview Ave
1 1211 Grandview Ave
2 1500 W 1st Ave
2 1502 W 1st Ave
2 1504 W 1st Ave
3 1240 Oakland Ave
Tenho 144 ou 288 linhas em TAB1 e linhas menores em TAB2.
Como eu faço isso?
Responder1
Se entendi a pergunta corretamente, você está tentando fazer algo assim:
Presumo que você queira obter a parte idêntica dos endereços em vez da string inteira, por exemplo, Grandview Ave
em vez de 1205 Grandview Ave
. Considerando os dados da sua amostra, isso pode ser feito simplesmente cortando tudo antes do primeiro espaço no valor da célula. Se não houver espaços, o valor da célula não será cortado.
=IFERROR(RIGHT(G3, LEN(G3) - LEN(LEFT(G3, FIND(" ", G3, 1)))), G3)
FIND(" ", G3, 1)
encontra o primeiro espaço na célulaG3.LEFT(G3, FIND())
coloca tudo à esquerda do primeiro espaço.LEN(LEFT())
obtém o número de caracteres antes do primeiro espaço.RIGHT(G3, LEN(G3) - LEN())
coloca tudo à direita do primeiro espaço.IFERROR(RIGHT(), G3)
retorna o valor da célula se nenhum espaço for encontrado.
Depois de obter a string que queremos exibir, basta fazer um VLOOKUP
para encontrar o valor com o índice correto. A célula estará vazia se nenhuma correspondência for encontrada.
=IFERROR(VLOOKUP(B3,F:J,5,FALSE),"")
VLOOKUP(B3,F:J,5,FALSE)
encontra o primeiro valor na quinta coluna do intervaloF:Jcom o valor da célulaB3encontrado na primeira coluna.IFERROR(VLOOKUP(),"")
retorna uma string vazia se nenhuma correspondência for encontrada.
Ambas as fórmulas são copiáveis.
Bônus ASe você não se importa em mostrar o número da primeira partida, você pode simplesmente usar:
=IFERROR(VLOOKUP(B3,F,G,2,FALSE),"")
Bônus BSe não quiser criar uma coluna de suporte, você pode combinar as duas fórmulas substituindo todas as aparências deG3na primeira fórmula com a fórmula encontrada no Bônus A, o que resulta na seguinte monstruosidade:
=IFERROR(RIGHT(IFERROR(VLOOKUP(B3,F:G,2,FALSE),""), LEN(IFERROR(VLOOKUP(B3,F:G,2,FALSE),"")) - LEN(LEFT(IFERROR(VLOOKUP(B3,F:G,2,FALSE),""), FIND(" ", IFERROR(VLOOKUP(B3,F:G,2,FALSE),""), 1)))), IFERROR(VLOOKUP(B3,F:G,2,FALSE),""))
Observe também que alguns países usam ;
em vez de ,
fórmulas.