Estrai solo numeri dal testo (stringa)

In Excel è possibile utilizzare le formule per estrarre il numero da un valore con testo e numeri combinati. Nell’esempio seguente abbiamo utilizzato una formula per ottenere 1984 dal valore “TPS1984”.

estrarre solo numeri

Formula per estrarre numeri dal testo

 =TEXTJOIN("",TRUE,IFERROR((MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)*1),""))

In questo tutorial, comprenderemo questa formula in dettaglio. E per capirlo dobbiamo dividerlo in più parti:

  1. Innanzitutto, abbiamo la funzione LEN per ottenere il numero di caratteri nel valore.
    formula-to-extract-numbers-from-a-string
  2. Successivamente, INDIRETTO utilizza un riferimento di cella utilizzando 1 e 7 (restituiti da LEN).
    indirect-uses-a-cell-reference
  3. Quindi la funzione RIGA utilizzerà INDIRETTO e restituirà una matrice di numeri che iniziano con 1 e terminano con 7.
    row-function-returns-the-array
  4. Ora MID utilizzerà questo array e ne restituirà uno nuovo con i valori della cella a cui hai fatto riferimento.
    mid-returns-new-one-with-value
  5. Successivamente, abbiamo una semplice formula di moltiplicazione per moltiplicare l’array per 1. Con questa semplice moltiplicazione, otterrai un nuovo array in cui avrai #VALORE! L’errore per valori di testo e numeri rimarrà intatto.
    multiply-the-array
  6. Da qui, la funzione SEERRORE convertirà i valori di errore in valori vuoti.
    iferror-to-convert-errors-into-blank
  7. E alla fine, TEXTJOIN combinerà i valori e nel risultato avrai solo numeri.
    extract-numbers-in-older-excel-versions

La formula sopra funziona solo con la versione Excel 2019 e successive. Questo perché stiamo utilizzando TEXTJOIN, non disponibile nelle versioni precedenti.

Se desideri un valore per una parte della formula, seleziona quella parte e premi il tasto di scelta rapida F9.

TEXTJOIN è una funzione volatile che cambia valore quando aggiorni una cella nel foglio di lavoro. Ciò può rendere la cartella di lavoro un po’ lenta.

Ma cosa succede se utilizzo una versione precedente (2007, 2010, 2013, 2016)

Se utilizzi versioni precedenti, devi utilizzare una formula diversa. Una formula come questa:

 =IF(SUM(LEN(A1)-LEN(SUBSTITUTE(A1, {"0","1","2","3","4","5","6","7","8","9"}, "")))>0, SUMPRODUCT(MID(0&A1, LARGE(INDEX(ISNUMBER(--MID(A1,ROW(INDIRECT("$1:$"&LEN(A1))),1))* ROW(INDIRECT("$1:$"&LEN(A1))),0), ROW(INDIRECT("$1:$"&LEN(A1))))+1,1) * 10^ROW(INDIRECT("$1:$"&LEN(A1)))/10),"")
 =SUMPRODUCT(MID(0&A1,LARGE(INDEX(ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))*ROW(INDIRECT("1:"&LEN(A1))),0),ROW(INDIRECT("1:"&LEN(A1))))+1,1)*10^ROW(INDIRECT("1:"&LEN(A1)))/10)

Le due formule sopra funzionano bene con diversi tipi di valori. L’ho testato nel modo seguente.

formule-con-valori-diversi

Nella cella A1 sopra abbiamo un valore complesso costituito da testo, numeri e simboli e nel risultato sono presenti solo numeri.

Ottieni il file Excel

Scaricamento

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *