Como mapear os detalhes entre as planilhas do Excel?

1

Eu tenho uma planilha do Excel com duas folhas e duas colunas, cada uma com a entrada abaixo:

dados da folha 1:

column1                                         column2
-------                                         -------

/a/b/c/d/good_1_test.mp        
/d/e/f/g/test_2_xyz_pqr.pset
/a/b/g/d/good_1_test2.mp  
/d/e/f/g/test_2_xyz_pqr.pset

dados da folha 2:

  column1                                         column2
  -------                                         -------
  good_1                                           orange
  test_2                                           apple

Eu quero que a saída da folha 1 se pareça com a seguinte:

column1                                     column2
-------                                     -------
/a/b/c/d/good_1_test.mp                     orange
/d/e/f/g/test_2_xyz_pqr.pset                apple
/a/b/g/d/good_1_test2.mp                    orange
/d/e/h/g/test_2_xyz_pqr.pset                apple
    
por srihari 09.06.2011 / 00:15

3 respostas

1

Os itens a seguir funcionarão para qualquer comprimento de caminho, ou seja, não apenas itens como /a/b/c/d/test_2_xyz_pqr.pset , mas também itens como /pump/up/the/jam/pump/it/up/test_2_xyz_pqr.pset . Ele extrai a primeira string de 6 caracteres após o último / e procura na tabela da Folha 2.

Cole isso na célula B1 e arraste para baixo:

=VLOOKUP(MID(A1,FIND(CHAR(1),SUBSTITUTE(A1,"/",CHAR(1),LEN(A1)
    -LEN(SUBSTITUTE(A1,"/",""))))+1,6), Sheet2!A:B, 2, FALSE)

Isso pressupõe que os dados da "Folha 1 da coluna 1" iniciem em A1 e os dados da "Folha 2" estejam nas colunas A e B (de preferência com mais nada nessas colunas).

Além disso, pressupõe-se que apenas cadeias de 6 caracteres (como test_4 ) estão na tabela de pesquisa. Se você quiser considerar strings de comprimentos variados, a resposta será muito mais complicada.

    
por 09.06.2011 / 10:30
2

Para sua situação exata descrita, tente isso na coluna 2 e arraste para baixo (lembre-se de alterar as células ou colunas conforme necessário):

=VLOOKUP(MID$($A2,10,6), Sheet2!A:B, 2, False)
    
por 09.06.2011 / 00:25
1

Se você puder usar uma função definida pelo usuário. Isso é adaptado da função em superusuário por @Hidden Koala

   Option Compare Text
   Public Function RETURNTEXT(src As Range, crt As Range, col as Integer) As String
   s = Trim(src.Value)
   For Each c In crt
    If InStr(1, s, Trim(c.Value)) Then newstr = WorksheetFunction.VLookup(Trim(c.Value), crt, col, False)
    Next c
    RETURNTEXT = newstr
    End Function

O intervalo que define as strings para procurar e retornar está nesta amostra na Planilha2! $ A $ 1: $ B $ 2

... adicionou uma coluna para retornar, para tornar isso mais versátil, semelhante à função vlookup

A função então entra como = RETURNTEXT (A3, Folha2! $ A $ 1: $ B $ 2,2)

    
por 09.06.2011 / 01:03