Szám keresése és kivonása a karakterláncból - Excel és Google Táblázatok

Példa munkafüzet letöltése

Töltse le a példa munkafüzetet

Ez a bemutató lesz bemutatja, hogyan lehet megkeresni és kinyerni egy számot egy szöveges karakterláncból az Excelben és a Google Táblázatokban.

Szám keresése és kivonása a karakterláncból

Előfordulhat, hogy az adatok számokat és szöveget tartalmaznak, és ki szeretné vonni a számadatokat.

Ha a számrész a karakterlánc jobb vagy bal oldalán található, akkor viszonylag könnyű felosztani a számot és a szöveget. Ha azonban a számok a karakterláncon belül vannak, azaz két szöveg karakterlánc között, akkor sokkal bonyolultabb képletet kell használnia (lásd alább).

TEXTJOIN - Számok kivonása az Excel 2016+ -ban

Az Excel 2016 -ban bevezetésre került a TEXTJOIN függvény, amely a szöveges karakterlánc bárhonnan kinyerheti a számokat. Íme a képlet:

1 = TEXTJOIN ("", TRUE, IFERROR ((MID (B3, SOR (KÖZVETLEN ("1:" & LEN (B3))), 1)*1), ""))

Lássuk, hogyan működik ez a képlet.

A SOR, KÖZVETLEN és LEN függvény az alfanumerikus karakterlánc minden karakterének megfelelő számtömböt ad vissza. Esetünkben a „Monday01Day” 11 karakterből áll, így a ROW függvény visszaadja az {1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11} tömböt.

1 = TEXTJOIN ("", TRUE, IFERROR ((MID (B3, {1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11}, 1)*1), ""))

Ezután a MID függvény kivon minden karaktert a szöveges karakterláncból, létrehozva egy tömböt, amely tartalmazza az eredeti karakterláncot:

1 = TEXTJOIN ("", TRUE, IFERROR (({"M"; "o"; "n"; "d"; "a"; "y"; "0"; "1"; "D"; "a ";" y "}*1)," "))

A tömb minden értékét 1 -gyel megszorozva hibát tartalmazó tömb jön létre, ha a tömb karaktere szöveg volt:

1 = TEXTJOIN ("", TRUE, IFERROR (({#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!; 0; 1; #VALUE!;#VALUE!;#VALUE !}), ""))

Ezután az IFERROR függvény eltávolítja a hibaértékeket:

1 = TEXTJOIN ("", TRUE, {""; ""; ""; ""; ""; ""; 0; 1; ""; ""; ""})

Csak a TEXTJOIN függvényt hagyja el, amely összekapcsolja a többi számot.

Ne feledje, hogy a képlet megadja az összes numerikus karaktert a karakterláncból. Például, ha az alfanumerikus karakterlánc hétfő01Day01, akkor 0101 értéket kap.

Számok kivonása - az Excel 2016 előtt

Az Excel 2016 előtt sokkal bonyolultabb módszert használhat a számok kinyerésére a szövegből. A FIND függvénnyel az IFERROR és MIN funkciókkal együtt meghatározhatja a számrész első pozícióját és a szöveges rész szám utáni első pozícióját. Ezután egyszerűen kivonjuk a számrészt a MID függvénnyel.

1 = MID (B3, MIN (IFERROR (FIND ({0,1,2,3,4,5,6,7,8,9}, B3), 999999999)), MIN (IFERROR (SEARCH ({"a") , "b", "c", "d", "e", "f", "g", "h", "én", "j", "k", "l", "m", " n "," o "," p "," q "," r "," s "," t "," u "," v "," w "," x "," y "," z " }, B3, MIN (IFERROR (FIND ({0,1,2,3,4,5,6,7,8,9}, B3), 999999999))), 999999999))-MIN (IFERROR (FIND ( {0,1,2,3,4,5,6,7,8,9}, B3), 999999999)))

Megjegyzés: Ez egy tömb képlet, a képletet a CTRL + SHIFT + ENTER billentyűkombinációval kell megadni, nem csak az ENTER billentyű helyett.

Lássuk lépésről lépésre, hogyan működik ez a képlet.

Keresse meg az Ököl számát

A FIND funkció segítségével megkereshetjük a szám kezdő pozícióját.

1 = MIN (IFERROR (FIND ({1,2,3,4,5,6,7,8,9,0}, B3), 999999999))

A FIND függvény find_text argumentumához a {0,1,2,3,4,5,6,7,8,9} tömbállandót használjuk, ami miatt a FIND függvény külön keresést végez a a tömbállandó.

A FIND függvény belső_text argumentuma esetünkben a Monday01Day, amelyben 1 a 8, 0 pedig a 7 pozícióban található, így eredménytömbünk a következő lesz: {8,#VALUE,#VALUE,#VALUE, #VALUE, #VALUE, #VALUE, #VALUE, #VALUE, 7}.

Az IFERROR függvény használatával lecseréljük az #ÉRTÉK hibákat 999999999 -re. Ezután egyszerűen megkeressük a minimumot ebben a tömbben, és így megkapjuk az első szám helyét (7).

Kérjük, vegye figyelembe, hogy a fenti képlet tömbképlet, aktiválásához nyomja meg a Ctrl+Shift+Enter billentyűkombinációt.

Keresse meg az első szöveg karaktert a szám után

A karakterláncon belüli első szám megkereséséhez hasonlóan a FIND függvénnyel határozzuk meg, hol kezdődik a szöveg újra a szám után, jól kihasználva a függvény start_num argumentumát is.

1 = MIN (IFERROR (FIND ({"a", "b", "c", "d", "e", "f", "g", "h", "I", "j", "k "," l "," m "," n "," o "," p "," q "," r "," s "," t "," u "," v "," w ", "x", "y", "z"}, B3, C3), 999999999))

Ez a képlet nagyon hasonlóan működik, mint az első, amelyet az első szám megkeresésére használtak, csak mi használunk betűket a tömbállandónkban, ezért a számok #ÉRTÉK hibákat okoznak. Kérjük, vegye figyelembe, hogy a keresést csak az első számhoz meghatározott pozíció után kezdjük el (ez lesz a start_num argumentum), és nem a karakterlánc elejétől.

Ne felejtse el megnyomni a Ctrl+Shift+Enter billentyűket a fenti képlet használatához.

Nincs más hátra, mint összeszedni ezt az egészet.

Szám kivonása két szövegből

Miután megvan a számrész kiindulási pozíciója és a szövegrész eleje, ezt követően egyszerűen a MID funkciót használjuk a kívánt számrész kivonásához.

1 = MID (B3, C3, D3-C3)

Más módszer

Anélkül, hogy részletesebben elmagyarázná, az alábbi komplex képlet segítségével is lekérheti a számot egy karakterláncból.

1 = SUMPRODUCT (MID (0 & B3, LARGE (INDEX (ISNUMBER (-MID (B3, ROW (INDIRECT ("1:" & LEN (B3)))))))))), 1))*ROW (INDIRECT ("1:" & LEN (B3)) )), 0), SOR (KÖZVETLEN ("1:" & LEN (B3))))+1,1)*10^SOR (KÖZVETLEN ("1:" & LEN (B3)))/10)

Kérjük, vegye figyelembe, hogy a fenti képlet 0 -t ad, ha nem található szám a karakterláncban, és a kezdő nullák kimaradnak.

Szám keresése és kibontása karakterláncból szövegbe a Google Táblázatokban

A fenti példák ugyanúgy működnek a Google Táblázatokban, mint az Excelben.

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave