Stringa.estrai

samuele agnolin
  • 25 febbraio 2017
  • livello: intermedio   3 minuti

La funzione di testo STRINGA.ESTRAI di Excel consente di estrarre una parte del contenuto di una cella testuale, specificando la posizione del carattere da cui partire e il numero di caratteri da estrarre.

Vuoi sapere come funzione lo stringa estrai? Ecco alcuni esempi pratici.

ESEMPIO PRATICO N°1:

partiamo da un codice fiscale ed estraiamo i due caratteri che identificano l’anno di nascita

Dobbiamo quindi usare excel per estrarre un numero da una stringa.

Nella cella A2 abbiamo il codice fiscale GNLMSM83R10L410Q
I caratteri da estrarre sono 2 a partire dalla posizione 7: vogliamo estrarre l’anno 83

Dal pulsante inserisci funzione accediamo all’elenco delle funzioni e ci posizioniamo sulle funzioni di Testo.

inserisci funzione testuale stringa estrai

Scegliamo STRINGA.ESTRAI e compiliamo i tre parametri obbligatori.

parametri stringa estrai

Questa è la funzione: =STRINGA.ESTRAI(A2;7;2). Che chiaramente può essere ottenuto anche scrivendo direttamente nella cella senza passare per le finestre di inserimento funzione sopra mostrate.

La sintassi è =STRINGA.ESTRAI(cella;posizione_di_inizio;numero_caratteri_da_estrarre)

sintassi stringa estrai

Visto che vogliamo estrarre il numero possiamo poi convertire in numero le due cifre trovate possiamo anteporre – -, come illustrato nel tutorial su come convertire un testo in numero:

=- -(STRINGA.ESTRAI(A2;7;2))

 

ESEMPIO PRATICO N°°2:

come fare quando il numero di caratteri da estrarre è variabile?

Prendo spunto da una richiesta di Luigi Enrico, un lettore del blog.

Abbiamo il seguente elenco, a partire dalla cella A2:
123/567
1T/45
12X4/A78

Come estarrre la parte alla sinistra della barra?

=STRINGA.ESTRAI(A2;1;?)

Funzione STRINGA.ESTRAI. Dobbiamo partire dal carattere 1. Ma quanti caratteri dobbiamo estrarre?

La chiave è identificare la posizione della barra e a questo sottrarre 1. Lo facciamo con la funzione RICERCA.

Scriviamo =RICERCA(“/”;A2). Il risultato è 4 nella prima cella, 3 nella seconda, 5 nella terza.

Ecco che ora possiamo scrivere:
=STRINGA.ESTRAI(A2;1;RICERCA(“/”;A2)-1)

Il -1 dopo la funzione RICERCA ci permette di fermarci un carattere prima della barra.

stringa estrai con numero di caratteri variabile

Abbiamo visto cosa fare quando il numero di caratteri da estrarre è variabile. Ma attenzione ad un dettaglio: la funzione RICERCA restituisce #VALORE! se non trova il testo da cercare, nel nostro caso la barra.

Se ci fosse scritto 123567 con =STRINGA.ESTRAI(A2;1;RICERCA(“/”;A2)-1) otterremmo #VALORE!
Noi invece in caso di assenza della barra vorremmo semplicemente restituire tutto il contenuto della cella.

Risolviamo utilizzando la funzione SE.ERRORE. Incontrata anche nel tutorial su come gestire l’errore #N/D! del cerca verticale.

Scriviamo =SE.ERRORE(STRINGA.ESTRAI(A2;1;RICERCA(“/”;A2)-1)).
In sostanza se lo STRINGA.ESTRAI restituisce un errore allora sostituisci l’errore con l’intero contenuto della cella stessa.

Se cerchi una guida alle funzioni di Excel (e nel contempo vuoi sostenere questo blog :-) ) valuta l’acquisto della mia guida alle funzioni: un file pdf che illustra 70 funzioni importanti e mostra 100 esempi pratici. pdf funzioni copertina

Se vuoi capire quali sono i contenuti della guida puoi scaricare l’estratto gratuito: Funzioni Excel – estratto guida pratica v1.1 – AmicoExcel.

Per maggiori info vai al post in cui descrivo la guida: Guida alle funzioni in pdf.

23 Comments

You can post comments in this post.


  • ho provato esattamente l’esempio e mi da un errore

    fabrizio 2 anni ago Reply


    • Ciao Fabrizio. Se vuoi un aiuto riportami pure la formula che hai usato e il messaggio di errore che ti appare. Oppure, cosa più veloce per entrambi, mandami pure un estratto del file a samuele[at]amicoexcel.it

      Ciao!

      samuele 2 anni ago Reply


      • anche a me da un errore profando a fare il tuo stesso esempio…mi dice “sono stati immessi insufficienti argomenti per questa funzione”

        ANNA ORLANDI 2 anni ago Reply


    • Ciao Fabrizio..,penso che ormai avrai risolto,
      La formula è mancante di una parte: =SE.ERRORE(STRINGA.ESTRAI(A2;1;RICERCA(“/”;A2)-1);A2)

      ciao

      luca partenio 2 anni ago Reply


  • ciao come posso dire nella formula che mi deve estrarre un numero ?

    SANDRA LUSSO 2 anni ago Reply


  • FANTASTICO!! THANKS

    alE 2 anni ago Reply


    • Grazie!!!

      samuele 1 anno ago Reply


  • Buongiorno,
    io ho un problema con l’estrapolazione di una data di scadenza a partire da un codice a barre. Descrivo l’evento in breve cosi per capirci meglio:
    Codice a barre: +M621HYP050/$$+321071634547AL
    Con al funzione =stringa.estrai(a2;17;6)
    estraggo la data di scadenza del presidio e, quindi, sulla casella di excel mi compare 210716.
    Come faccio a far capire a excel che quella è una data e quindi convertirla automaticamente nel formato 16/07/2021?

    Grazie mille anticipatamente

    francesco 1 anno ago Reply


    • Buongiorno Francesco,
      una volta raggiunto il risultato con lo STRINGA.ESTRAI potresti usare la funzionalità ‘testo in colonne’.
      Con la/le celle selezionate, scheda Dati, Testo in colonne, pulsante Avanti fino al passaggio 3 di 3, seleziona Data e imposta il formato AMG.

      samuele 1 anno ago Reply


  • il mio caso è simile a quello dell’esempio pratico numero 2, però devo estrarre solamente dopo “/”.
    ho una colonna con Città, Stato e vorrei i una seconda colonna solo lo stato

    francesca 1 anno ago Reply


    • Ciao Francesca.

      Ci sono diverse strade:

      1) se hai una versione recente di Excel (dal 2013 in poi) puoi utilizzare flash fill
      2) testo in colonne: da Dati scegli testo in colonne e definisci il separatore (come suggerivo nel commento precedente)
      3) con Stringa.estrai: =STRINGA.ESTRAI(A2;RICERCA(“/”;A2)+1;LUNGHEZZA(A2)-RICERCA(“/”;A2))

      samuele 1 anno ago Reply


  • Buongiorno
    su STRINGA ESTRAI è possibile fare in modo che il testo venga agganciato sulla medesima riga di 2 fogli excel utilizzando il medesimo valore univoco comune ai 2 fogli?
    Grazie

    Maurizio

    Maurizio Bellani 1 anno ago Reply


    • Ciao Maurizio. Mi mandi per favore un file excel con due dati così capisco meglio? Grazie. samuele@amicoexcel.it

      samuele 1 anno ago Reply


  • Samuele buon pomeriggio
    grazie al tuo tutorial ho realizzato la mia tabella Pivot.
    Ora ho un problema con una formula, ovvero devo selezionare delle righe con measure minore di 75g e maggiore di 60mL.
    Come posso fare?
    Grazie

    Antonella 12 mesi ago Reply


    • Ciao Antonella.

      Dovresti utilizzare il filtro che compare accanto all’intestazione delle variabili messe in riga, solitamente la dicitura è “etichette di riga”. Se vuoi fai una pivot con pochi dati (e non sensibili) e mandamela a samuele@amicoexcel.it

      samuele 12 mesi ago Reply


  • Buongiorno,
    in che modo posso utilizzare la funzione se ho una serie di indirizzi e voglio estrarre solo ed unicamente il nr civico. La lunghezza degli indirizzi come sa è variabile, quindi non saprei. Come potrei fare?

    Attendo un suo responso.

    Grazie!

    Showaib 9 mesi ago Reply


    • Ciao, se hai una versione recente di Excel potresti provare con il flash fill

      samuele 9 mesi ago Reply


  • Ciao
    come faccio ad estrarre da un numero a due cifre presente in una cella i due numeri che lo compongono in celle diverse? Grazie

    nat 7 mesi ago Reply


    • Ciao nat. Potrebbe essere qualcosa tipo =STRINGA.ESTRAI(A2;1;1) in una cella e =STRINGA.ESTRAI(A2;2;1) nell’altra. Se vuoi convertirli in numero anteponi ‘–‘… quindi =–STRINGA.ESTRAI(A2;1;1)

      samuele 7 mesi ago Reply


  • ciao Samuele, vorrei inviarti un’immagine

    tonio 6 mesi ago Reply


    • Ciao Tonio, inviamela pure. Tieni presente cmq che solitamente con un file excel ci si capisce prima.

      samuele 6 mesi ago Reply


  • Ciao Amico Excel, posso chiederti un aiuto ?
    ho una cella dove cè un numero che puo variare di grandezza da 0, 0001 a 100,000 seguito da KG tipo ( 4,270 Kg) vorrei utilizzare il numero .

    Come posso fare ciao e grazie

    Francesco 1 mese ago Reply


    • Ciao Francesco. Se alla fine hai sempre ” Kg” allora potresti scrivere STRINGA.ESTRAI in questo modo:
      =STRINGA.ESTRAI(A2;1;LUNGHEZZA(A2)-3)

      Il risultato sarà cmq testuale. Per convertirlo già in numero aggiungici meno meno davanti:
      =–STRINGA.ESTRAI(A2;1;LUNGHEZZA(A2)-3)

      samuele 4 settimane ago Reply


Inserisci un commento