DOMANDA Formula Excel per estrarre parte di una stringa.

Pubblicità

Luca D.

Nuovo Utente
Messaggi
3
Reazioni
1
Punteggio
25
Buongiorno a tutti,

su un foglio Excel con migliaia di righe, ho stringhe del tipo seguente:


XXX (XXXXXX) YYYYY
XXXX YYYY
XX-XXXX YYYYY

Avrei bisogno di eliminare, partendo da destra, il testo fino al primo spazio (le Y), tenendo così tutto il resto (le X).
Come vedete, alcune stringhe sono composte da tre parti, altre da due, separate talvolta da caratteri diversi.

Le Y, quelle da eliminare, sono sempre in coda, separate da uno spazio.
Da qui la necessità di partire da destra, per l'eliminazione del testo fino al primo spazio.

Spero di essere stato chiaro.
Grazie
 
Ciao,
la mia risposta parte dai presupposti che xxxxx e yyyyy indichino valori alfabetici variabili e che YYYY nei tuoi esempi è sempre separato da spazio, con l'unica discriminante di xxxxx (xxxxxx) dove la discriminante è la parentesi.
Se così è ti propongo la seguente soluzione per il testo in colonna A
=SE(STRINGA.ESTRAI(A1;TROVA(" ";A1;1)+1;1)<>"(";STRINGA.ESTRAI(A1;1;TROVA(" ";A1;1));STRINGA.ESTRAI(A1;1;TROVA(" ";A1;TROVA(" ";A1)+1)))
Se vi fossero altre discriminanti (non troppe), puoi adattarla, altrimenti la soluzione mi sfugge.
 
Ciao,

innanzitutto grazie per la disponibilità.

Ci siamo quasi, ma ancora qualcosa non va. Sicuramente perchè devo chiarire meglio alcuni aspetti che, da assoluto profano, ho dato erroneamente per scontati.

Ripropongo le stringhe in maniera ancora più dettagliata:


1) XXX (XXX XXXX) YY1234
2) XXXX YY-123
3) XX-XXXX YYY1234


In realtà, anche le variabili X possono essere separate, oltre che da "(", ")" o "-", anche da un altro " ".
Inoltre, la parte di stringa da eliminare (YYYY o YY1234), è composta spesso da caratteri alfanumerici.

L'unica cosa certa è che, a partire da destra, la parte da eliminare è sempre separata dal resto dal primo spazio.

Spero questo chiarimento possa servire a risolvere definitivamente la questione.


- - - Updated - - -

Su un forum di supporto specializzato, mi è stata indicata la seguente formula:

=ANNULLA.SPAZI(SINISTRA(A1;TROVA("|";SOSTITUISCI(A1;" ";"|"; LUNGHEZZA(A1)-LUNGHEZZA(SOSTITUISCI(A1;" ";""))))))

La formula è assolutamente perfetta, ma ho un problema molto strano. Se inserisco la stringa da filtrare digitandola manualmente, infatti, la formula compie ampiamente il proprio dovere. Se, invece, copio la colonna (o le singole celle) con le stringhe da filtrare e la incollo sulla nuova colonna (o sulle nuove celle), la formula smette di funzionare.

Quale potrebbe essere il problema?
 
Intanto complimenti a chi ha elaborato la formula da te riprodotta e grazie a te di avermela fatta studiare.
Per quanto riguarda il tuo problema direi che se introduci il testo da filtrare in colonna A, riga 1 e seguenti e le formule filtro in una qualsiasi colonna a destra (B, C, D, .....) dalla riga 1, copiandola poi nelle righe sottostanti, non dovresti avere nessun problema. Infatti se vai a guardare nella seconda riga dovresti trovare =ANNULLA.SPAZI(SINISTRA(A2;TROVA("|.....,, Potresti avere il problema se copi la formula dalla colonna (es. B) in colonna E, perché diventerebbe =ANNULLA.SPAZI(SINISTRA(D1;TROVA(.... e in colonna D non c'è niente, quindi il risultato sarà [TABLE="width: 70"]
[TR]
[TD="class: xl63, width: 70, align: center"]#VALORE![/TD]
[/TR]
[/TABLE]
Se vuoi che il problema non si presenti posizionati sulla formula in B1 (o C1 o D1), e dove è scritto A1 (3 volte) clicca il tasto F4 fino a che diventa =ANNULLA.SPAZI(SINISTRA($A1;TROVA("|.....,,che vuol dire "tieni fisso il riferimento alla colonna A, ma cambia la riga".
Buona giornata
 
Noooooooooo... svelato l'arcano :party:

La colonna copiata riportava, per ogni stringa, uno spazio finale che non avevo minimamente considerato. Ecco perchè quando digitavo la stringa funzionava tutto alla grande.

Ho preso la colonna con spazio finale, l'ho filtrata con un semplice ANNULLA.SPAZI e ho riproposto la formula in questione sulla nuova colonna.

RISOLTO.

Grazie mille a paperoful per la disponibilità :birra:
 
Pubblicità
Pubblicità
Indietro
Top