Analizza ogni carattere in una cella in Excel utilizzando la triade di Indirect(), Row() e Mid()

Sommario

Oggi vi darò un potente cocktail di formula. La funzione INDIRECT() e ROW() meno utilizzata insieme alla funzione MID() possono creare una magnifica miscela.

Questa triade ti consente di entrare nel contenuto di una cella. e analizzare ogni personaggio separatamente. Ad esempio, supponiamo di avere Excel123 in una cella e di voler identificare se contiene o meno un valore numerico (cosa che fa!!). Le formule integrate di Excel non possono aiutarti qui poiché Excel lo considera come testo (Prova e usa la funzione Type() per vedere di persona).

Ciò di cui hai bisogno qui è un modo per controllare ciascun carattere separatamente e quindi identificare se contiene un numero. Diamo prima un'occhiata alla formula che può separare ogni carattere:

=MID(B2,RIGA(INDIRETTO("1:"&LUNGHEZZA(B2))),1)

Qui funziona:

Ora che hai tutto sezionato, sei libero di analizzare ogni personaggio separatamente.

Nota che questa tecnica viene utilizzata al meglio se combinata con altre formule (come vedrai più avanti in questo post). Come tecnica a sé stante, difficilmente potrebbe essere di alcuna utilità. Inoltre, Indirect() è una funzione volatile, quindi usala con cautela. [Scopri di più sulla formula volatile]

Ecco alcuni esempi in cui questa tecnica potrebbe essere utile:

1. Per identificare le celle che contengono un carattere numerico:

Supponiamo di avere un elenco come mostrato di seguito e di voler identificare (o filtrare) qualsiasi cella che contenga un carattere numerico in qualsiasi punto della cella

Per fare ciò, utilizzare la seguente formula. Ritorna a Vero se una cella contiene caratteri numerici e falso se non lo fa.

=OR(VAL.NUMERO(MID(A2,RIGA(INDIRETTO(“1:”&LEN(A2))),1)*1))

Usa Ctrl + Maiusc + Invio per inserire questa formula (invece di Invio), poiché è una formula di matrice.

2. Per identificare la posizione della prima occorrenza di un numero

Per fare ciò, utilizzare la seguente formula. Restituisce la posizione della prima occorrenza di un numero in una cella. Ad esempio, se una cella contiene ProductA1, restituirà 9. Nel caso non ci fosse il numero, ritorna "Nessun carattere numerico presente"

=IFERROR(MATCH(1,-ISNUMBER(MID(B3,ROW(INDDIRECT(“1:”&LEN(B3))),1)*1),0)”,”Nessun carattere numerico presente”)

Usa Ctrl + Maiusc + Invio per inserire questa formula

Spero che questo ti faccia risparmiare tempo e fatica. Se ti viene in mente un altro modo per utilizzare questa tecnica, condividilo anche con me.

wave wave wave wave wave