#Excel – Come rimuovere i caratteri numerici da una cella

Per rimuovere i caratteri numerici da una stringa di testo, è possibile provare questa formula sperimentale basata sulla funzione TESTO.UNISCI, nuova in Excel 2016.

Rimuovere i caratteri numerici da una stringa di testo

Nell’esempio mostrato, la formula in C3 è:

{=TESTO.UNISCI(""; VERO; SE(VAL.ERR(STRINGA.ESTRAI(B3;RIF.RIGA(INDIRETTO("1:100")); 1)+0); STRINGA.ESTRAI(B3; RIF.RIGA(INDIRETTO("1:100")); 1); ""))}

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 crea 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. L’argomento num_caratt viene invece impostato a 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 trasformare un numero che è sotto forma di testo in un numero vero e proprio. I valori di testo numerici come “1”, “2”, “3”, “4” ecc vengono convertiti, mentre i valori non numerici falliscono e generano un errore #VALORE!. Utilizziamo le funzioni SE e VAL.ERR per catturare questi errori. Se si ottiene un errore sappiamo che abbiamo un carattere non numerico, quindi usiamo un’altra funzione STRINGA.ESTRAI per portarlo nella nostra matrice:

STRINGA.ESTRAI(B3;RIF.RIGA(INDIRETTO("1:100")); 1)

Se non si ottiene un errore, sappiamo che abbiamo a che fare con un numero, quindi inseriamo una stringa vuota (“”) nella matrice.

LEGGI:  #Excel – Come usare la formattazione condizionale di Excel – Parte 3

Il risultato finale della matrice entra nella funzione TESTO.UNISCI come argomento testo1. Come delimitatore, usiamo una stringa vuota (“”) e come argomento ignora_vuote forniamo VERO. TESTO.UNISCI allora concatenerà tutti i valori non vuoti nella matrice e restituirà il risultato.

Lunghezza della matrice più precisa

Se vi desse fastidio un valore come 100 nella funzione INDIRETTO, potete utilizzare la funzione LUNGHEZZA all’interno di INDIRETTO per elaborare in modo più intelligente solo il numero effettivo di caratteri nella cella.

STRINGA.ESTRAI(B3; RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA(A1))); 1)

Copyright © 2014-2017  Office Academy. Tutti i diritti riservati.
Vai alla barra degli strumenti