Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

ricerca testo parziale tra due colonne excel 2003

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

ricerca testo parziale tra due colonne excel 2003

Postdi libraio » 08/02/13 13:43

Ciao a tutti,
ancora una volta ho bisogno del vostro insostituibile aiuto :oops:

S.O. XP Professional SP3 - EXCEL 2003

Devo confrontare dei dati contenuti in Colonna A del Foglio 1 e Colonna B del Foglio 2, inserendo in colonna N del Foglio 2 il contenuto della cella corrispondente in colonna B del Foglio 1.
Cerco di precisare:
SE "B2 del Foglio 2" è incluso in "A:A del Foglio 1", in "N2 del Foglio 2" incollo il contenuto della cella Bn relativa al risultato di corrispondenza trovato in "colonna A Foglio 1".
La difficoltà sorge perchè il confronto tra le colonne è in celle con contenuto testo e la corrispondenza potrebbe essere anche su una parola sola. Es:
In Foglio 1 = Zanichelli
In foglio 2 = Zanichelli Editore o Edizioni Zanichelli o Editore Zanichelli
tutte le volte che nel Foglio 2 compare Zanichelli (anche in forma parziale), nella relativa cella della colonna N va riportato il contenuto nella cella B che affianca Zanichelli in Foglio 1.
Sarò stato chiaro?...
Grazie per l'aiuto
libraio
libraio
Utente Senior
 
Post: 211
Iscritto il: 04/01/10 20:31

Sponsor
 

Re: ricerca testo parziale tra due colonne excel 2003

Postdi Flash30005 » 08/02/13 14:54

Se ho interpretato bene questa macro dovrebbe risolvere
Codice: Seleziona tutto
Sub CopiaSe()
Set Ws1 = Worksheets("Foglio1")
Set WS2 = Worksheets("Foglio2")
UR1 = Ws1.Range("A" & Rows.Count).End(xlUp).Row
UR2 = WS2.Range("B" & Rows.Count).End(xlUp).Row
For RR2 = 1 To UR2
Stringa = WS2.Range("B" & RR2).Value
For RR1 = 1 To UR1
If Len(Replace(UCase(Ws1.Range("A" & RR1).Value), UCase(Stringa), "")) <> Len(Ws1.Range("A" & RR1).Value) Then WS2.Range("N" & RR2).Value = Ws1.Range("B" & RR1).Value
Next RR1
Next RR2
End Sub


Fai sapere
Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: ricerca testo parziale tra due colonne excel 2003

Postdi libraio » 08/02/13 17:42

Grazie Flash,
direi che la tua macro funzione in buona parte della ricerca.
Non risolve ancora, tuttavia, il caso in cui il Foglio 1 contenga una parte del testo in Foglio 2.
Esempi pratici:
in Foglio 1 = ARMENIA
in Foglio 2 = ARMENIA EDITORE
in Foglio 1 = ALIBERTI - CASTELVECCHI
in Foglio 2 = ALIBERTI
questi due casi non vengono "trovati" e risolti.
Si può risolvere?...
Grazie
libraio
libraio
Utente Senior
 
Post: 211
Iscritto il: 04/01/10 20:31

Re: ricerca testo parziale tra due colonne excel 2003

Postdi Flash30005 » 08/02/13 21:26

Il secondo "Esempio pratico" dovrebbe risolverlo
mentre per il primo ho dovuto correggere la macro
Codice: Seleziona tutto
Sub CopiaSe()
Set Ws1 = Worksheets("Foglio1")
Set WS2 = Worksheets("Foglio2")
UR1 = Ws1.Range("A" & Rows.Count).End(xlUp).Row
UR2 = WS2.Range("B" & Rows.Count).End(xlUp).Row
For RR2 = 1 To UR2
Stringa = WS2.Range("B" & RR2).Value
MyPos = InStr(Stringa, " ")
If MyPos > 0 Then Stringa = Left(Stringa, MyPos - 1)
MsgBox Stringa
For RR1 = 1 To UR1
If Len(Replace(UCase(Ws1.Range("A" & RR1).Value), UCase(Stringa), "")) <> Len(Ws1.Range("A" & RR1).Value) Then WS2.Range("N" & RR2).Value = Ws1.Range("B" & RR1).Value
Next RR1
Next RR2
End Sub


Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: ricerca testo parziale tra due colonne excel 2003

Postdi libraio » 09/02/13 10:47

Ho provato la seconda macro e mi sono reso conto di pretendere troppo...
In effetti diventa difficile selezionare il termine di comparazione, soprattutto il presenza di suffissi (De, Il, La, ecc.). Il MsgBox impone poi l'uso del pulsante di conferma che, in presenza di molti dati, è abbastanza lungo.
Utilizzo quindi la prima macro, intervenendo manualmente sulle varianti nominali.
Grazie Flash, prezioso come sempre :)
libraio
libraio
Utente Senior
 
Post: 211
Iscritto il: 04/01/10 20:31

Re: ricerca testo parziale tra due colonne excel 2003

Postdi Flash30005 » 09/02/13 14:41

Pardon
il messagebox è rimasto come refuso dai test che ho effettuato
pertanto puoi cancellare la riga
Codice: Seleziona tutto
MsgBox Stringa

ed evitare il meaaggio ogni volta

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: ricerca testo parziale tra due colonne excel 2003

Postdi libraio » 09/02/13 18:19

Tutto ok, grazie ancora
libraio
libraio
Utente Senior
 
Post: 211
Iscritto il: 04/01/10 20:31


Torna a Applicazioni Office Windows


Topic correlati a "ricerca testo parziale tra due colonne excel 2003":


Chi c’è in linea

Visitano il forum: Nessuno e 11 ospiti