Como posso retornar uma lista de palavras específicas encontradas no conteúdo de uma célula?

0

Eu tenho duas colunas, uma com uma string de texto ( A1 ), a outra em branco ( A2 ).

A1 é algo como isto:

"Briefs on Southern Africa, Rhodesia, East of Suez (Including Soviet Naval Expansion), Arab-Israel dispute, hijacking, East-West Relations, NATO, Britain and the European Communities"

Eu preciso inserir os nomes dos países em destaque em A1 em A2 . Por exemplo, acima eu inseriria Rhodesia, Soviet Union, Israel, United Kingdom .

Existe uma fórmula que eu posso usar para encontrar palavras específicas e depois soltá-las em A2 ?

    
por Tom M 05.02.2014 / 16:05

2 respostas

0

Você precisará criar uma cadeia de funções. As etapas a seguir funcionaram no Excel 2010 e presumimos que você tenha apenas o texto mencionado acima em A1 :

  1. Copie a seguinte fórmula para a célula B1 :
    • =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,","," "),"-"," "),"(",""),")","")
    • Essa fórmula é responsável apenas pela pontuação incluída no texto original. Para captar mais pontuação, você terá que envolver essa fórmula com outro SUBSTITUTO ( , pontuação > , < < quer "" ou "" dependendo do resultado desejado > > ).
  2. Nome da célula B1 "SearchText" (sem as aspas). Você pode fazer isso da seguinte maneira:
    • Pressione Alt,M,M,D para abrir o diálogo New Name . Sobrescreva o nome sugerido e pressione Enter .
    • Clique no Name Box à esquerda da barra de edição da fórmula, digite o nome e pressione Enter .
  3. Insira sua lista de países na coluna D , começando com a célula D1 .
  4. Selecione a coluna D e nomeie como "Países" conforme indicado anteriormente.
  5. Na célula C1 , insira a seguinte fórmula:
    • =IF(IFERROR(SEARCH(CONCATENATE(Countries," "),SearchText),FALSE),Countries,"")
  6. Na célula C2 , insira a seguinte fórmula:
    • =IF(IFERROR(SEARCH(CONCATENATE(Countries," "),SearchText),FALSE),IF(C1="",Countries,CONCATENATE(C1,", ",Countries)), C1)
  7. Copie C2 e cole todo o caminho até a coluna, terminando em (presumindo 196 países) cell C196 .
  8. Na célula A2 , insira a seguinte fórmula: =C196
    • Você pode ocultar ou agrupar as colunas B a D para arrumar as coisas.

Sempre que você inserir um novo texto em A1 , as fórmulas serão recalculadas e seus resultados serão exibidos em A2 . Espero que isso ajude.

    
por 05.02.2014 / 19:15
0

Experimente esta pequena função definida pelo usuário:

Public Function XtractNations(t As String) As String
    Dim Nations(1 To 48) As String
    Dim s As String
    Nations(1) = "China"
    Nations(2) = "Japan"
    Nations(3) = "Germany"
    Nations(4) = "France"
    Nations(5) = "United Kingdom"
    Nations(6) = "Brazil"
    Nations(7) = "Russia"
    Nations(8) = "Italy"
    Nations(9) = "India"
    Nations(10) = "Canada"
    Nations(11) = "Australia"
    Nations(12) = "Spain"
    Nations(13) = "Mexico"
    Nations(14) = "South Korea"
    Nations(15) = "Indonesia"
    Nations(16) = "Turkey"
    Nations(17) = "Netherlands"
    Nations(18) = "Saudi Arabia"
    Nations(19) = "Switzerland"
    Nations(20) = "Iran"
    Nations(21) = "Sweden"
    Nations(22) = "Norway"
    Nations(23) = "Poland"
    Nations(24) = "Belgium"
    Nations(25) = "Argentina"
    Nations(26) = "Austria"
    Nations(27) = "Thailand"
    Nations(28) = "South Africa"
    Nations(29) = "United Arab Emirates"
    Nations(30) = "Venezuela"
    Nations(31) = "Colombia"
    Nations(32) = "Denmark"
    Nations(33) = "Malaysia"
    Nations(34) = "Singapore"
    Nations(35) = "Chile"
    Nations(36) = "Hong Kong"
    Nations(37) = "Nigeria"
    Nations(38) = "Egypt"
    Nations(39) = "Philippines"
    Nations(40) = "Greece"
    Nations(41) = "Finland"
    Nations(42) = "Israel"
    Nations(43) = "Pakistan"
    Nations(44) = "Portugal"
    Nations(45) = "Ireland"
    Nations(46) = "Algeria"
    Nations(47) = "Peru"
    Nations(48) = "Kazakhstan"
    s = ""
    For i = 1 To 48
        If InStr(1, t, Nations(i)) > 0 Then
            s = s & ", " & Nations(i)
        End If
    Next i
    XtractNations = Right(s, Len(s) - 1)
End Function

Você pode adicionar quantos países à lista desejar.

    
por 05.02.2014 / 20:10