Excel

Opdel tekst og tal

Split Text Numbers

Excel -formel: Opdel tekst og talGenerisk formel | _+_ | Resumé

For at adskille tekst og tal kan du bruge en formel baseret på FIND -funktion , det MIN funktion , og LEN funktion med VENSTRE eller RET funktion, afhængigt af om du vil udtrække teksten eller nummeret. I det viste eksempel er formlen i C5:





= MIN ( FIND ({0,1,2,3,4,5,6,7,8,9},A1&'0123456789'))

som returnerer 7, placeringen af ​​tallet 3 i strengen 'æbler30'.

Forklaring

Oversigt

Formlen ser kompleks ud, men mekanikken er faktisk ganske enkel.





Som med de fleste formler, der deler eller udtrækker tekst, er nøglen at finde position af det, du leder efter. Når du har fået stillingen, kan du bruge andre funktioner til at udtrække det, du har brug for.

I dette tilfælde går vi ud fra, at tal og tekst kombineres, og at tallet vises efter teksten. Fra den originale tekst, der vises i en celle, vil du opdele teksten og numrene i separate celler, sådan her:



Original Tekst Nummer
Æbler30 Æbler 30
ferskner24 ferskner 24
appelsiner12 appelsiner 12
ferskner0 ferskner 0

Som anført ovenfor er nøglen i dette tilfælde at lokalisere nummerets startposition, hvilket du kan gøre med en formel som denne:

excel, hvis cellen indeholder tekst, så vis tekst
 
= MIN ( FIND ({0,1,2,3,4,5,6,7,8,9},B5&'0123456789'))

Når du har positionen, til at udtrække bare teksten, skal du bruge:

 
= MIN ( FIND ({0,1,2,3,4,5,6,7,8,9},A1&'0123456789'))

Og for at udtrække bare tallet skal du bruge:

 
= LEFT (A1,position-1)

I den første formel ovenfor bruger vi FIND -funktionen til at finde nummerets startposition. For find_text bruger vi matrixkonstanten {0,1,2,3,4,5,6,7,8,9}, dette får FIND -funktionen til at udføre en separat søgning efter hver værdi i arraykonstanten. Da matrixkonstanten indeholder 10 tal, bliver resultatet en matrix med 10 værdier. For eksempel, hvis originalteksten er 'apples30', vil det resulterende array være:

 
= RIGHT (A1, LEN (A1)-position+1)

Hvert tal i denne matrix repræsenterer positionen af ​​et element i matrixkonstanten inde i originalteksten.

Dernæst returnerer MIN -funktionen den mindste værdi på listen, som svarer til positionen i første nummer der vises i originalteksten. I det væsentlige får FIND -funktionen alle talpositioner, og MIN giver os den første talposition: bemærk, at 7 er den mindste værdi i arrayet, hvilket svarer til placeringen af ​​tallet 3 i originalteksten.

Du undrer dig måske over den ulige konstruktion til inden_tekst i find -funktionen:

hvordan man laver en simpel linjegraf i Excel
 
{8,10,11,7,13,14,15,16,17,18}

Denne del af formlen sammenkæder alle mulige tal 0-9 med originalteksten i B5. Desværre returnerer FIND ikke nul, når der ikke findes en værdi, så dette er bare en smart måde at undgå fejl, der kan opstå, når et tal ikke findes.

I dette eksempel, da vi antager, at tallet altid vil vises sekund i originalteksten fungerer det godt, fordi MIN kun tvinger de mindste, eller først forekomst, af et nummer, der skal returneres. Så længe et tal gør vises i originalteksten, returneres positionen.

Hvis originalteksten ikke indeholder tal, returneres en 'falsk' position svarende til længden af ​​den originale tekst + 1. Med denne falske position returnerer LEFT -formlen ovenfor stadig teksten, og HØJRE formlen returnerer en tom streng ('').

Forfatter Dave Bruns


^