
Generisk formel
(=TEXTJOIN("",TRUE,IFERROR(MID(A1,ROW(INDIRECT("1:100")),1)+0,"")))
Sammanfattning
För att ta bort icke-numeriska tecken från en textsträng kan du prova den här experimentella formeln baserat på TEXTJOIN-funktionen, en ny funktion i Excel 2019. I exemplet som visas är formeln i C5:
(=TEXTJOIN("",TRUE,IFERROR(MID(B5,ROW(INDIRECT("1:100")),1)+0,"")))
Obs: detta är en matrisformel och måste anges med kontroll + skift + enter.
Förklaring
Arbetar inifrån och ut, MID-formeln används för att extrahera texten i B5, ett tecken i taget.
Nyckeln är ROW / INDIRECT-biten:
ROW(INDIRECT("1:100"))
som snurrar upp en matris som innehåller 100 nummer så här:
(1,2,3,4,5,6,7,8… .99,100)
Obs: 100 representerar maximalt antal tecken som ska bearbetas. Ändra för att passa dina uppgifter.
Denna matris går in i MID-funktionen som start_num argument. För num_chars använder vi 1.
MID-funktionen returnerar en matris så här:
("1"; "0"; "0"; ""; "a"; "p"; "p"; "l"; "e"; "s"; ""; ""; ""; " "…)
(extra objekt i matrisen har tagits bort för läsbarhet)
Till den här matrisen lägger vi till noll. Detta är ett enkelt knep som tvingar Excel att försöka tvinga text till ett nummer. Numeriska textvärden som "1", "2", "3", "4" etc. konverteras, medan icke-numeriska värden misslyckas och ger ett #VALUE-fel. Vi använder IFERROR-funktionen för att fånga upp dessa fel och returnera en tom sträng (""), medan numeriska värden passerar in i matrisen. Resultatet är en matris som bara innehåller siffror och tomma strängar:
(1; 0; 0; ""; ""; ""; ""; ""; ….)
Slutligen går detta matrisresultat in i TEXTJOIN-funktionen som text1- argumentet. För avgränsning använder vi en tom sträng ("") och för ignore_empty levererar vi SANT. TEXTJOIN sammanfogar sedan alla icke-tomma värden i matrisen och returnerar resultatet.
Obs: TEXTJOIN returnerar siffrorna som text, till exempel "100," 500 ", etc. Om du vill ha ett riktigt numeriskt resultat, lägg till noll eller slå in hela formeln i VÄRDES-funktionen.