Excel formula: Sadaliet skaitļus no mērvienībām -

Satura rādītājs

Vispārēja formula

=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

Kopsavilkums

Lai sadalītu skaitli no vienības vērtības, varat izmantot formulu, kuras pamatā ir vairākas funkcijas: MAX, ISNUMBER, VALUE un MID. Parādītajā piemērā formula C5 ir:

=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

Piezīme: šī ir eksperimentāla formula, kurā tiek izmantota stingri kodēta masīva konstante, kas šeit norādīta atsaucei un komentāriem. Pārbaudīts tikai nejauši, tāpēc esiet piesardzīgs, ja izmantojat vai pielāgojat.

Paskaidrojums

Dažreiz jūs sastopaties ar datiem, kas tieši sajauc vienības ar skaitļiem (piemēram, 8km, 12v, 7.5h). Diemžēl Excel šajā formātā esošos skaitļus uzskatīs par tekstu, un jūs nevarēsit veikt matemātiskas darbības ar šādām vērtībām.

Lai sadalītu skaitli no vienības vērtības, jums jānosaka pēdējā skaitļa pozīcija. Ja šai pozīcijai pievienojat 1, jums ir vienības teksta sākums. Šī formula izmanto šo jēdzienu, lai noskaidrotu, kur sākas mērvienība.

Parādītajā piemērā formula C5 ir:

=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

Šajā formulā tiek izmantota funkcija MID, lai pirmās 9 vērtības B5 izvilktu pa vienai rakstzīmei. Rezultāts ir šāds masīvs:

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

Pēc tam mēs izmantojam funkciju VALUE, lai skaitļus teksta formātā pārveidotu par faktiskajiem skaitļiem. Rezultāts ir:

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

Mēs izmantojam šo masīvu caur ISNUMBER, lai iegūtu:

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

Pēc tam reiziniet vēl vienu masīvu ar 9 skaitļiem, lai iegūtu:

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

Tad mēs izmantojam MAX, lai iegūtu vislielāko vērtību, kas ir "pēdējā skaitļa" pozīcija.

Visbeidzot, mēs pievienojam 1 pozīcijai, lai iegūtu pozīciju "vienības sākums".

Visbeidzot, mēs izmantojam šo pozīciju ar standarta LEFT un RIGHT funkcijām, lai atdalītu skaitļus no vienībām:

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

Ņemiet vērā, ka cietā kodējuma numuru masīva konstante ir ērtības nolūkos uzlauzta, un tā apstrādās tikai neapstrādātas vērtības, kuru garums nepārsniedz 9 rakstzīmes.

Labas saites

Iedvesma no Rika Rotšteina formulām par MrExcel

Interesanti raksti...