Notifications
Clear all

Identificar quantidade de ocorrências de palavras numa lista

6 Posts
4 Usuários
0 Reactions
1,661 Visualizações
(@gordochato)
Posts: 3
New Member
Topic starter
 

Olá, boa noite,

Tenho uma planilha Excell com mais de 10 mil linhas e entre as celulas G2 até G10000, tenho diversas frases e textos.
Gostaria de escrever um código VBA que identificasse todas as palavras existentes neste intervalo e, numa outra planilha, listasse na coluna A as palavras e na coluna B a quantidade de vezes que essa palavra aparece.

Vocês conseguem me ajudar?

Muito obrigado,

Tales

 
Postado : 05/09/2017 7:35 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Tales,,

Bom Dia!

Seja muito bem vindo ao fórum.

Como você é novato no fórum, para melhor aproveitar o mesmo, mantendo-o de forma organizada, por gentileza, leia atentamente as regras abaixo:

viewtopic.php?f=7&t=203
viewtopic.php?f=7&t=7903
viewtopic.php?f=7&t=3841
viewtopic.php?f=7&t=16757
viewtopic.php?f=7&t=12600
viewtopic.php?f=7&t=3371

Movi sua mensagem para o local adequado (VBA & Macros) pois onde você postou é restrito somente a apresentação de novos participantes.

Quanto a sua dúvida, sugiro anexar um arquivo exemplo, aqui mesmo no fórum, compactado com .ZIP, indicando como está e como você quer que seja o resultado. Isso facilitará a ajuda por parte de todos e a mesma poderá até ser bem mais rápida.

Em programação não pode haver "adivinhação". Tudo tem que ser esclarecido nos mínimos detalhes pois o computador só faz exatamente aquilo que se manda ele fazer. Na sua necessidade, por exemplo, "todas as palavras existentes"? Todas as palavras existentes em todas as frases? em todas as linhas? São apenas palavras específicas? Existe um padrão? Existe um tamanho padrão? Único?

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 06/09/2017 4:04 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

É como o Wagner disse, sem muitos detalhes fica dificil, principalmente qdo diz "que identificasse todas as palavras existentes neste intervalo", a única coisa que da para dar uma opinião seria na parte de "quantidade de vezes que essa palavra aparece", lógico que mesmo assim depende de como estão dispostas, mas dá para usar a Função CONT.SE para retornar a quantidade de determinada palavra : =CONT.SE(G2:G10000; "*adivinhação*") ou com String "=CONT.SE(G:G;"*"&TEXTO(I1;)&"*")".

Ficamos no aguardo.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 06/09/2017 11:46 am
(@gordochato)
Posts: 3
New Member
Topic starter
 

Caros,

Muitissimo obrigado pela orientação sobre a utilização do forum e me perdoem se não fui muito claro no que preciso.

A planilha anexa ilustra o problema:

Na coluna A da planilha "Original" temos diversas frases nas celulas. Já na planilha "Resultado Esperado", fiz um pequeno exemplo, na mão, de como eu preciso do resultado: uma lista com todas as palavras que aparecem na coluna A e na coluna B a quantidade de vezes que tal palavra ocorre.
O Conte.se ilustrado pelo Mauro Coutinho é perfeito para fazer a contagem, o qual agradeço. Mas continuo com o problema de como fazer a lista de palavras a partir dos textos das celulas da planilha "original".

Muito obrigado pela ajuda,

Tales

 
Postado : 06/09/2017 1:52 pm
(@osvaldomp)
Posts: 858
Prominent Member
 

Experimente:

Sub SeparaEContaPalavras()
Dim Dic As Object, r As Range, c As Range, w As Variant
 Set Dic = CreateObject("Scripting.Dictionary")
 Dic.CompareMode = vbTextCompare
  Set r = Range("A2:A" & Cells(Rows.Count, 1).End(3).Row)
  [D:E] = ""
   For Each c In r.Cells
    For Each w In Split(c.Value, " ")
     If Dic.exists(w) Then
      Dic.Item(w) = Dic.Item(w) + 1
     Else
      Dic.Add w, 1
     End If
   Next w
   Next c
 Range("D2").Resize(Dic.Count, 2) = Application.Transpose(Array(Dic.keys, Dic.items))
End Sub

O resultado será colocado nas colunas D:E da planilha que contém os dados.

Osvaldo

 
Postado : 07/09/2017 8:34 am
(@gordochato)
Posts: 3
New Member
Topic starter
 

Osvaldo,

Muitissimo obrigado!!!
Era exatamente o que eu precisava. Muito obrigado mesmo.

Abraço,

Tales

 
Postado : 07/09/2017 11:47 am