Condividi:        

estrarre parola in stringa

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

estrarre parola in stringa

Postdi wittelsbach » 28/06/13 22:19

Salve, avrei bisogno di poter estrarre all'interno di una stringa, una parola specifica che sia definita come la prima parola dopo il primo "spazio".
ESEMPIO
hotel adler srl ---> la formula dovrebbe restituire la parola "adler".

La cosa mi sarebbe utile per poter effettuare un confronto tra alcune ragioni sociali scritte però in maniera leggermente difforme tra loro. Ovvero "hotel adler srl" e "hotel firenze adler".

A quel punto potrei utilizzare la funzione TROVA, confrontando la parola "adler" all'interno della stringa con ragione sociale leggermente difforme. Se presente mi permetterebbe di trovare la corrispondenza.

Grazie,
wittelsbach
Utente Senior
 
Post: 249
Iscritto il: 17/09/05 08:55

Sponsor
 

Re: estrarre parola in stringa

Postdi ricky53 » 28/06/13 22:58

Ciao,
prova con questa formula
Codice: Seleziona tutto
="*" & STRINGA.ESTRAI(A2; TROVA(" "; A2; 1)+1; TROVA(" "; A2; TROVA(" "; A2; 1)+1) - TROVA(" "; A2; 1) -1) & "*"


Gli asterischi servono solo a far vedere la stringa effettivamente trovata, dopo i controlli li puoi togliere dalla formula che diventerà
Codice: Seleziona tutto
=STRINGA.ESTRAI(A2; TROVA(" "; A2; 1)+1; TROVA(" "; A2; TROVA(" "; A2; 1)+1) - TROVA(" "; A2; 1) -1)


Ho ipotizzato che il tuo dato fosse in "A2" ... adatta la formula in base alle tue esigenze
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: estrarre parola in stringa

Postdi Flash30005 » 28/06/13 23:02

Hai già fatto da solo un'analisi che potrebbe essere fuorviante
per esempio dici la prima parola dopo il primo spazio e nella prima stringa c'è adler ma nella seconda c'è firenze quindi non funzionerebbe a dovere.
Sarebbe opportuno che pubblicassi uno stralcio di un foglio dati (eliminando dati sensibili) per darci la possibilità di fare un'analisi più congrua con i dati che hai

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: estrarre parola in stringa

Postdi ricky53 » 28/06/13 23:10

Ciao,
io ho dedotto (cosa che non dovrebbe essere fatta per non incorrere in errori) che la stringa scritta nel modo corretto fosse
hotel adler srl


e quella su cui cercare, perchè scritta in modo errato, fosse
hotel firenze adler
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: estrarre parola in stringa

Postdi wittelsbach » 29/06/13 10:12

Ricky hai capito perfettamente cosa intendessi. In ogni caso qui sotto provo ad evidenziare meglio cosa vorrei fare:

colonna A (elenco ragioni sociali) colonna B (secondo elenco ragioni sociali + codice)

hotel adler firenze adler firenze srl 12578456
hotel pippo san gallo firenze 15874569
hotel XXX hotel ming 47851256
hotel YYY
.....

Quello che voglio fare è confrontare ogni cella della colonna A all'interno della colonna B e, se la prima parola dopo il primo spazio della cella in colonna A trova una corrispondenza esatta con almeno una parola all'interno della colonna B, a quel punto la formula dovrebbe trovare il codice a fianco della ragione sociale della colonna B. In sintesi, accanto a "hotel adler firenze" in colonna A la formula dovrebbe restituire il valore 12578456.
wittelsbach
Utente Senior
 
Post: 249
Iscritto il: 17/09/05 08:55

Re: estrarre parola in stringa

Postdi wittelsbach » 29/06/13 14:08

wittelsbach ha scritto:Ricky hai capito perfettamente cosa intendessi. In ogni caso qui sotto provo ad evidenziare meglio cosa vorrei fare:

colonna A (elenco ragioni sociali)

hotel adler firenze
hotel pippo
hotel XXX
hotel YYY

colonna B (secondo elenco ragioni sociali + codice)

adler firenze srl 12578456
san gallo firenze 15874569
hotel ming 47851256

Quello che voglio fare è confrontare ogni cella della colonna A all'interno della colonna B e, se la prima parola dopo il primo spazio della cella in colonna A trova una corrispondenza esatta con almeno una parola all'interno della colonna B, a quel punto la formula dovrebbe trovare il codice a fianco della ragione sociale della colonna B. In sintesi, accanto a "hotel adler firenze" in colonna A la formula dovrebbe restituire il valore 12578456.
wittelsbach
Utente Senior
 
Post: 249
Iscritto il: 17/09/05 08:55

Re: estrarre parola in stringa

Postdi ricky53 » 29/06/13 15:13

Ciao,
come pensavo la tua necessità è un po' diversa da quella che hai esposto nel tuo primo intervento.
Allora, prima di proporti una nuova soluzione che poi potrebbe non essere quella che ti occorre, preferisco riepilogare quanto ho capito:

1. tu hai due colonne ipotizziamo "A" e "B"
2. nella colonna "A" hai "nn" celle con dei dati
3. prendere da ogni cella cella colonna "A" la prima parola dopo il primo spazio e cercarla n tutte le celle della colonna "B"
4. per "parola" trovata nella cella i-esima della colonna "B" riportare nella colonna "C" (altra ipotesi) gli tutti i caratteri presenti nella cella i-esima della colonna "B" dopo l'ultimo spazio


ASSUNZIONE IMPORTANTE: i dati da cercare sono presenti una sola volta in entrambi le colonne

Confermi il mio riepilogo ???

Se potessimo avere un tuo file di esempio ... senza dati riservati
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: estrarre parola in stringa

Postdi wittelsbach » 30/06/13 20:23

Esatto, specifico ancora meglio il punto 4: SE parola trovata nella cella i-esima della colonna B, riporta nella cella X (o comunque nella cella dove sarà presente la formula, da trascinare per ogni cella della colonna A) il codice presente alla destra della ragione sociale in colonna B (che in realtà si troverà nella colonna C).

In ogni caso questa è la soluzione che credevo più semplice per associare due celle con una leggera difformità lessicale. Trovare la prima parola dopo il primo spazio era solo uno stratagemma semplicistico poiché la maggior parte dei confronti cominciano con la parola "hotel" (non confrontabile), seguiti da ciò che dovrebbe distinguere e rendere univoco l'albergo (adler, san gallo, ecc)...
wittelsbach
Utente Senior
 
Post: 249
Iscritto il: 17/09/05 08:55

Re: estrarre parola in stringa

Postdi Anthony47 » 01/07/13 01:25

Ho modificato la funzione WComm che ti avevo proposto qui: viewtopic.php?f=26&t=98797
La nuova WComm2 esamina una stringa con un intervallo di stringhe. Della prima stringa prende la seconda parola e la cerca in ognuna delle celle dell' intervallo indicato; sulla prima occorrenza esce restituendo il testo contenuto nella cella adiacente.
Il codice:
Codice: Seleziona tutto
Function wComm2(ByVal primo As String, ByRef myRan As Range) As String
'vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=99482
'Uso:
'  =WCOMM2(PrimaFrase;IntervalloCelle)
'  Restituisce il contenuto della cella alla destra di quella, interna a IntervalloCelle,
'     che contiene la "seconda parola" in PRIMO.
'     Oppure una stringa vuota, se la parola non viene trovata nell' intervallo
'  per parola si intende una stringa separata nella frase almeno da uno spazio e lunga piu' di 2 crt
'
Dim my1Split, my2Split, I As Long, J As Long
Dim myPrimo As String
my1Split = Split(primo, " ")
If UBound(my1Split) > LBound(my1Split) Then
    myPrimo = my1Split(LBound(my1Split) + 1)
    For Each secondo In myRan
    my2Split = Split(secondo, " ")
        For J = 0 To UBound(my2Split)
            If Len(my1Split(I)) > 2 And Len(my2Split(J)) > 2 Then
                If UCase(myPrimo) = UCase(my2Split(J)) Then
                    wComm2 = secondo.Offset(0, 1).Value: Exit Function
                End If
            End If
        Next J
    Next secondo
End If
End Function

Userai poi una formula tipo =WCOMM2(A2;B2:B100)

Tuttavia non mi e' chiaro come pensi di poter distinguere il Ritz di Firenze da quello di Fiesole...

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: estrarre parola in stringa

Postdi wittelsbach » 01/07/13 11:36

Ok, ti ringrazio. Appena possibile la proverò. In merito al tuo dubbio, la mia ricerca verrà effettuata solo su Firenze o, comunque, città per città.
wittelsbach
Utente Senior
 
Post: 249
Iscritto il: 17/09/05 08:55


Torna a Applicazioni Office Windows


Topic correlati a "estrarre parola in stringa":


Chi c’è in linea

Visitano il forum: Marius44 e 60 ospiti