
Generisk formel
(=TEXTJOIN("",TRUE,IFERROR(MID(A1,ROW(INDIRECT("1:100")),1)+0,"")))
Sammendrag
For å fjerne ikke-numeriske tegn fra en tekststreng, kan du prøve denne eksperimentelle formelen basert på TEXTJOIN-funksjonen, en ny funksjon i Excel 2019. I eksemplet som vises er formelen i C5:
(=TEXTJOIN("",TRUE,IFERROR(MID(B5,ROW(INDIRECT("1:100")),1)+0,"")))
Merk: dette er en matriseformel og må angis med kontroll + skift + enter.
Forklaring
MID-formelen jobber fra innsiden og ut og brukes til å trekke ut teksten i B5, ett tegn om gangen.
Nøkkelen er ROW / INDIRECT stykke:
ROW(INDIRECT("1:100"))
som spinner opp en matrise som inneholder 100 tall som dette:
(1,2,3,4,5,6,7,8… .99,100)
Merk: 100 representerer maksimalt antall tegn som skal behandles. Endre slik at de passer til dine data.
Denne matrisen går inn i MID-funksjonen som argumentet start_num . For num_chars bruker vi 1.
MID-funksjonen returnerer en matrise som dette:
("1"; "0"; "0"; ""; "a"; "p"; "p"; "l"; "e"; "s"; ""; ""; ""; " "…)
(ekstra elementer i matrisen fjernet for lesbarhet)
I denne matrisen legger vi til null. Dette er et enkelt triks som tvinger Excel til å prøve å tvinge tekst til et tall. Numeriske tekstverdier som "1", "2", "3", "4" osv. Konverteres, mens ikke-numeriske verdier mislykkes og kaster en #VALUE-feil. Vi bruker IFERROR-funksjonen for å fange disse feilene og returnere en tom streng (""), mens numeriske verdier går gjennom i matrisen. Resultatet er en matrise som bare inneholder tall og tomme strenger:
(1; 0; 0; ""; ""; ""; ""; ""; ….)
Til slutt går dette matriseresultatet inn i TEXTJOIN-funksjonen som argumentet text1 . For avgrensning bruker vi en tom streng ("") og for ignore_empty leverer vi SANT. TEXTJOIN sammenkobler deretter alle ikke-tomme verdier i matrisen og returnerer resultatet.
Merk: TEXTJOIN returnerer tallene som tekst, for eksempel "100," 500 ", etc. Hvis du vil ha et ekte numerisk resultat, legg til null, eller pakk hele formelen i VALUE-funksjonen.