Per rimuovere i caratteri non numerici da una stringa di testo, è possibile provare questa formula sperimentale basata sulla funzione TESTO.UNISCI, nuova in Excel 2016.
Nell’esempio mostrato, la formula in C3 è:
=TESTO.UNISCI(""; VERO; SE.ERRORE(STRINGA.ESTRAI(B3; RIF.RIGA(INDIRETTO("1:100")); 1)+0; ""))
Nota: questa è una formula matriciale e deve essere immessa con CTRL+MAIUSC+INVIO.
Lavorando dall’interno verso l’esterno, la formula STRINGA.ESTRAI viene usata per estrarre il testo in B3, un carattere alla volta. La chiave è il pezzo RIF.RIGA / INDIRETTO:
RIF.RIGA(INDIRETTO("1:100"))
Che ricava una matrice come questa contenente 100 numeri:
{1.2.3.4.5.6.7.8...99.100}
Nota: 100 rappresenta il numero massimo di caratteri da elaborare. Cambiate pure l’impostazione per adattarla ai vostri dati.
Questa matrice entra nella funzione STRINGA.ESTRAI come argomento inizio. Come argomento num_caratt usiamo 1.
La funzione STRINGA.ESTRAI restituisce una matrice come questa:
{“1″.”0″.”0″.” “.”m”.”e”.”l”.”e”.””.””.””}
(ho rimosso gli ulteriori elementi della matrice per leggibilità)
A questa matrice aggiungiamo zero. Questo è un semplice trucco che costringe Excel a cercare di trasformare il testo in un numero. I valori di testo numerici come “1”, “2”, “3”, “4” ecc vengono convertiti, mentre i valori non numerici falliscono e restituiscono un errore #VALORE!. Utilizziamo la funzione SE.ERRORE per catturare questi errori e restituire una stringa vuota, mentre i valori numerici passano nella matrice. Il risultato è una matrice che contiene solo numeri e stringhe vuote:
{1.0.0.""."".""."".""."".""}
Infine, questo risultato della matrice entra nella funzione TESTO.UNISCI come argomento testo1. Per delimitatore, usiamo una stringa vuota (“”) e per ignora_vuote forniamo VERO. TESTO.UNISCI allora concatena tutti i valori non vuoti nella matrice e restituisce il risultato.