Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Excel Elencare da un testo le parole ripetute?
mercoledì 02 maggio 2007 - 21.25
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
ghisirds
Profilo
| Junior Member
151
messaggi | Data Invio:
mer 2 mag 2007 - 21:25
Ciao a tutti.
Ho problema che da un po mi strugge e non ho ancora trovato la retta via! :-(
Ho bisogno di poter estrapolare da un testo, l'elenco di tutte le parole contenute con a fianco scritto il numero di volte che è ripetuto, e magari in ordine decrescente.
Faccio un esempio che forse è più facile farmi capire:
"le rose rosse sono rose"
con questa frase inserita in una cella, facciamo che sia A2, voglio che in B2 e C2 compaia questo elenco:
ColonnaB ColonnaC
Parole Ripetizioni
rose 2
le 1
rosse 1
sono 1
C'è magari qualcosa di già pronto in giro?
Grazie a tutti
Marco
__________________
http://www.idee-regalo.biz/
-
http://www.ideaforgift.co.uk/
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mer 2 mag 2007 - 22:34
>C'è magari qualcosa di già pronto in giro?
>Grazie a tutti
>Marco
Ciao Marco,
è per caso il laboratorio dell'esame di Programmazione 1 di una qualche università di informatica ?
Perchè è identico a quello che ho fatto io al 1° anno di informatica
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
ghisirds
Profilo
| Junior Member
151
messaggi | Data Invio:
gio 3 mag 2007 - 12:45
no, non è l'esame di informatica.
Ma non è che per caso ce l'hai sottomano, eh?
Magari postarlo qui?
Grazie ancora
Marco
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
gio 3 mag 2007 - 15:39
>no, non è l'esame di informatica.
>Ma non è che per caso ce l'hai sottomano, eh?
Purtroppo no anche perchè era in ANSI C ed era leggermente diverso c'era anche una parte per non conteggiare le parole di uso più comune come articoli congiunzioni ecc.
Se sei in Excel devi usare chiaramente VBA. Non penso che riesci a cavartela con le formule di Excel. Come algoritmo non è neanche molto difficile considerato che una volta trovate le occorrenze di ogni parola, per ordinarle in ordine decrescente o crescente ti aiuta Excel (nel mio caso invece avevo dovuto fare io anche l'algo di ordinamento).
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
ghisirds
Profilo
| Junior Member
151
messaggi | Data Invio:
ven 4 mag 2007 - 15:47
grazie a tutti.
Alla fine ho utilizzato la soluzione proposta da KL[MVP - Microsoft Excel]. La posto qui:
'------Start Code in a Standard Module-----
Option Explicit
Sub test()
Dim strText As String
Dim arrWords As Variant
Dim dicUnique As Object
Dim i As Long
strText = Application.Trim(Replace(ClearText(LCase(ActiveSheet.[A2]), _
"[.,?!"")(}{\-¿¡;:\f\n\r\t\v\[\]]"), "'", "' "))
arrWords = Split(strText, " ")
If IsArray(arrWords) Then
Set dicUnique = CreateObject("Scripting.Dictionary")
For i = 0 To UBound(arrWords)
If dicUnique.Exists(arrWords(i)) Then
dicUnique.Item(arrWords(i)) = dicUnique.Item(arrWords(i)) + 1
Else
dicUnique.Add arrWords(i), 1
End If
Next i
With ActiveSheet
.[B2].Resize(dicUnique.Count) = Application.Transpose(dicUnique.keys)
.[C2].Resize(dicUnique.Count) = Application.Transpose(dicUnique.items)
.[B2].Resize(dicUnique.Count, 2).Sort .[C2], 2
End With
End If
End Sub
Function ClearText(ByVal strText As String, ByVal strPattern As String) As String
Dim RegExp As Object
Set RegExp = CreateObject("vbscript.regexp")
With RegExp
.Pattern = strPattern
.Global = True
ClearText = .Replace(strText, "")
End With
End Function
'------End Code in a Standard Module-----
ciao a tutti
marco
Realizzazione siti internet -
http://www.ghisirds.it
Stereogrammi personalizzati -
http://www.idee-regalo.biz
Risorse per geometri -
http://www.geometri-reggio-emilia.it
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !