Formula Excel: dividere i numeri dalle unità di misura -

Sommario

Formula generica

=MAX(ISNUMBER(VALUE(MID(A1,(1,2,3,4,5,6,7,8,9),1)))*(1,2,3,4,5,6,7,8,9))+1

Sommario

Per dividere un numero da un valore unitario, puoi utilizzare una formula basata su diverse funzioni: MAX, ISNUMBER, VALUE e MID. Nell'esempio mostrato, la formula in C5 è:

=MAX(ISNUMBER(VALUE(MID(B5,(1,2,3,4,5,6,7,8,9),1)))*(1,2,3,4,5,6,7,8,9))+1

Nota: questa è una formula sperimentale che utilizza una costante di matrice hardcoded, impostata qui per riferimento e commento. Testato solo casualmente, quindi fai attenzione se lo usi o ti adatti.

Spiegazione

A volte si incontrano dati che mescolano unità direttamente con numeri (ad esempio 8 km, 12 V, 7,5 ore). Sfortunatamente, Excel tratterà i numeri in questo formato come testo e non sarai in grado di eseguire operazioni matematiche su tali valori.

Per dividere un numero da un valore unitario, è necessario determinare la posizione dell'ultimo numero. Se aggiungi 1 a quella posizione, hai l'inizio del testo unitario. Questa formula utilizza questo concetto per capire dove inizia l'unità di misura.

Nell'esempio mostrato, la formula in C5 è:

=MAX(ISNUMBER(VALUE(MID(B5,(1,2,3,4,5,6,7,8,9),1)))*(1,2,3,4,5,6,7,8,9))+1

Questa formula utilizza la funzione MID per estrarre i primi 9 valori in B5, un carattere alla volta. Il risultato è un array come questo:

("8","0","v","","","","","","")

Quindi utilizziamo la funzione VALORE per convertire i numeri in formato testo in numeri effettivi. Il risultato è:

(8,0,#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE!)

Eseguiamo questo array tramite ISNUMBER per ottenere:

(TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE)

Quindi moltiplicalo per un altro array con 9 numeri per ottenere:

(1,2,0,0,0,0,0,0,0)

Quindi usiamo MAX per ottenere il valore più grande, che è la posizione dell '"ultimo numero".

Infine, aggiungiamo 1 alla posizione per ottenere la posizione di "inizio unità".

Infine, usiamo questa posizione con le funzioni LEFT e RIGHT standard per separare i numeri dalle unità:

=VALUE(LEFT(B5,C5-1)) // number =TRIM(RIGHT(B5,LEN(B5)-C5+1)) // unit

Si noti che la costante di matrice di numeri hardcoded è un trucco per comodità e gestirà solo valori grezzi fino a 9 caratteri di lunghezza.

Buoni collegamenti

Ispirazione dalle formule di Rick Rothstein su MrExcel

Articoli interessanti...