TEXTSPLIT-funksje yn Excel: split tekststrings troch skiedingsteken

  • Diel Dit
Michael Brown

De tutorial lit sjen hoe't jo de gloednije TEXTSPLIT-funksje brûke kinne om stringen te splitsen yn Excel 365 troch elke skiedingsteken dy't jo oantsjutte.

D'r kinne ferskate situaasjes wêze as jo moatte splitse sellen yn Excel. Yn eardere ferzjes wiene wy ​​al foarsjoen fan in oantal ynstruminten om de taak út te fieren, lykas Tekst nei kolommen en Fill Flash. No hawwe wy hjir ek in spesjale funksje foar, TEXTSPLIT, dy't in tekenrige skiede kin yn meardere sellen oer kolommen en/en rigen basearre op de parameters dy't jo oantsjutte.

    Excel TEXTSPLIT-funksje

    De TEXTSPLIT-funksje yn Excel splitst tekststrings troch in opjûne skiedingsteken oer kolommen en/en rigen. It resultaat is in dynamyske array dy't automatysk yn meardere sellen spielet.

    De funksje nimt mar leafst 6 arguminten, wêrfan allinich de earste twa ferplicht binne.

    TEXTSPLIT(text, col_delimiter, [row_delimiter], [ignore_empty], [match_mode], [pad_with])

    tekst (ferplicht) - de tekst om te splitsen. Kin oanlevere wurde as in tekenrige of selferwizing.

    col_delimiter (ferplicht) - in karakter(s) dy't oanjout wêr't de tekst oer kolommen ferdield wurde moat. As it weilitten wurdt, moat row_delimiter definiearre wurde.

    row_delimiter (opsjoneel) - in karakter(s) dy't oanjout wêr't de tekst oer de rigen ferdield wurde moat.

    ignore_empty (opsjoneel) - spesifisearret of lege wearden negearre wurde moatte of net:

    • FALSE (standert) -meitsje lege sellen foar opienfolgjende skiedingstekens sûnder in wearde dertusken.
    • TRUE - lege wearden negearje, dus gjin lege sellen meitsje foar twa of mear opienfolgjende skiedingstekens.

    match_mode (opsjoneel) - bepaalt case-sensitiviteit foar it skiedingsteken. Standert ynskeakele.

    • 0 (standert) - hoofdlettergefoel
    • 1 - hoofdlettergefoel

    pad_mei (opsjoneel ) - in wearde om te brûken yn plak fan ûntbrekkende wearden yn twadiminsjonale arrays. De standert is in #N/A flater.

    Om bygelyks in tekststring yn A2 te dielen yn meardere sellen mei in komma en in spaasje as skiedingsteken, is de formule:

    =TEXTSPLIT(A2, ", ")

    TEXTSPLIT-beskikberens

    De TEXTSPLIT-funksje is allinnich beskikber yn Excel foar Microsoft 365 (Windows en Mac) en Excel foar it web.

    Tips:

    • Yn Excel-ferzjes dêr't de TEXTSPLIT-funksje net beskikber is (oars as Excel 365), kinne jo de tekst nei kolommen-wizard brûke om sellen te splitsen.
    • Om de omkearde taak út te fieren, d.w.s. meardere sellen yn ien mei in bepaalde delimiter, TEXTJOIN is de funksje om te brûken.

    Basis TEXTSPLIT-formule om in sel te splitsen yn Excel

    Let ús om te begjinnen sjen hoe't jo in TEXTSPLIT brûke formule yn syn ienfâldichste foarm om in tekstteken te splitsen troch in bepaalde skiedingsteken.

    Split in sel horizontaal oer kolommen

    Om de ynhâld fan in opjûne sel yn meardere kolommen te dielen, leverje inferwizing nei de sel mei de oarspronklike tekenrige foar it earste ( tekst ) argumint en it skiedingsteken dat it punt markearret wêr't de splitsing foar it twadde ( col_delimiter ) argumint foarkomt.

    Bygelyks, om de tekenrige yn A2 horizontaal te skieden troch komma, is de formule:

    =TEXTSPLIT(A2, ",")

    Foar it skiedingsteken brûke wy in komma ynsletten yn dûbele oanhalingstekens ("") .

    As gefolch, elk item skieden troch in komma giet yn in yndividuele kolom:

    Spjalte in sel fertikaal oer rigen

    Om tekst te splitsen oer meardere rigen, de tredde argumint ( row_delimiter ) is wêr jo it skiedingsteken pleatse. It twadde argumint ( col_delimiter ) wurdt yn dit gefal weilitten.

    Om bygelyks de wearden yn A2 yn ferskate rigen te skieden, is de formule:

    =TEXTSPLIT(A2, ,",")

    Tink derom dat, yn beide gefallen, de formule mar yn ien sel (C2) ynfierd wurdt. Yn oanbuorjende sellen spill de weromkommende wearden automatysk. De resultearjende array (dy't in spillbereik neamd wurdt) wurdt markearre mei in blauwe râne dy't oanjout dat alles dêryn wurdt berekkene troch de formule yn 'e sel linksboppe.

    Tekst splitse troch substring

    In in protte gefallen, de wearden yn 'e boarne tekenrige wurde skieden troch in folchoarder fan tekens, in komma en in spaasje wêzen in typysk foarbyld. Om dit senario te behanneljen, brûk in substring foar it skiedingsteken.

    Om bygelyks de tekst yn A2 yn meardere kolommen te skiedenmei in komma en spaasje, brûk de tekenrige ", " foar col_delimiter .

    =TEXTSPLIT(A2, ", ")

    Dizze formule giet nei B2, en dan kopiearje jo it troch safolle sellen as nedich.

    Trêde splitst yn kolommen en rigen tagelyk

    Om in tekstteken te dielen yn rigen en kolommen tagelyk, definiearje beide skiedingstekens yn jo TEXTSPLIT-formule.

    Bygelyks, om de tekststring yn A2 oer kolommen en rigen te splitsen, leverje wy:

    • It lykweardich teken ("=") foar col_delimiter
    • In komma en in spaasje (", ") foar row_delimiter

    De folsleine formule nimt dizze foarm oan:

    =TEXTSPLIT(A2, "=", ", ")

    It resultaat is in 2-D array besteande út 2 kolommen en 3 rigen:

    Sels skiede troch meardere skiedingstekens

    Om meardere of ynkonsistinte skiedingstekens yn 'e boarnestring te behanneljen, brûk in arraykonstante lykas {"x","y" ,"z"} foar it skiedingsargumint.

    Yn de ûndersteande skermôfbylding wurdt de tekst yn A2 skieden troch sawol komma's (",") as puntkomma's (";") mei en sûnder spaasjes. Om de tekenrige fertikaal te splitsen yn rigen troch alle 4 farianten fan it skiedingsteken, is de formule:

    =TEXTSPLIT(A2, , {",",", ",";","; "})

    Of, jo kinne allinich in komma ("",") en puntkomma ("; ") yn 'e array, en ferwiderje dan ekstra spaasjes mei help fan' e TRIM-funksje:

    =TRIM(TEXTSPLIT(A2, , {",",";"}))

    Tekst splitst mei lege wearden negearje

    As de tekenrige befettet twa of mear opienfolgjende delimiters sûnder in wearde tusken harren, kinne jo kieze oft te negearje sokke legewearden of net. Dit gedrach wurdt regele troch de fjirde parameter ignore_empty , dy't standert is op FALSE.

    Standert negeart de TEXTSPLIT-funksje lege wearden net. It standertgedrach wurket goed foar strukturearre gegevens lykas yn it ûndersteande foarbyld.

    Yn dizze foarbyldtabel ûntbrekke de skoares yn guon snaren. De TEXTSPLIT-formule mei it argumint ignore_empty weilitten of ynsteld op FALSE behannelet dit gefal perfekt, wêrtroch in lege sel foar elke lege wearde ûntstiet.

    =TEXTSPLIT(A2, ", ")

    Of

    =TEXTSPLIT(A2, ", ", FALSE)

    As gefolch, alle wearden ferskine yn de passende kolommen.

    Yn it gefal dat jo snaren homogene gegevens befetsje, kin it reden wêze om lege wearden te negearjen. Stel hjirfoar it argumint ignore_empty op TRUE of 1.

    Om bygelyks de ûndersteande stringen te ferdielen troch elke feardigens yn in aparte sel sûnder gatten te pleatsen, is de formule:

    =TEXTSPLIT(A2, ", ", ,TRUE)

    Yn dit gefal wurde de ûntbrekkende wearden tusken opfolgjende skiedingstekens folslein negearre:

    Sel splitting case-sensitive of case-insensitive

    Om de case- gefoelichheid fan it skiedingsteken, brûk it fyfde argumint, match_mode .

    Standert is match_mode ynsteld op 0, wêrtroch TEXTSPLIT case-sensitive .

    Yn dit foarbyld wurde de nûmers skieden troch de lytse letters "x" en de haadletters "X".

    De formule mei de standert haadlettergefoelichheid akseptearret allinnich de lytse letters "x". "as dedelimiter:

    =TEXTSPLIT(A2, " x ")

    Let op dat it delimiter in spaasje hat oan beide kanten fan de letter " x " om foarrinnende en efterste spaasjes yn de resultaten te foarkommen.

    Om de gefoelichheid foar haadletters út te skeakeljen, leverje jo 1 foar match_mode om de TEXTSPLIT-formule te twingen om de letter-gefoelichheid te negearjen:

    =TEXTSPLIT(A2, " x ", , ,1)

    No, allegear de snaren wurde goed opdield troch beide skiedingstekens:

    Pad ûntbrekkende wearden yn 2D-array

    It lêste argumint fan 'e TEXTSPLIT-funksje, pad_with , komt fan pas yn gefal ien of mear wearden ûntbrekke yn de boarne tekenrige. As sa'n tekenrige wurdt opsplitst yn sawol kolommen as rigen, jout Excel standert #N/A flaters yn stee fan de ûntbrekkende wearden om de struktuer fan in twadiminsjonale array net te mangle.

    Yn de ûndersteande tekenrige, der is gjin "=" ( col_delimiter ) nei "Score". Om de yntegriteit fan 'e resultearjende array te hâlden, jout TEXTSPLIT #N/A neist "Score".

    Om it resultaat brûkerfreonliker te meitsjen, kinne jo de #N/A-flater ferfange troch elke wearde dy't jo wolle. Typ gewoan de winske wearde yn it argumint pad_with .

    Yn ús gefal kin dat in keppelteken ("-") wêze:

    =TEXTSPLIT(A2, "=", ", ", , ,"-")

    Of in lege tekenrige (""):

    =TEXTSPLIT(A2, "=", ", ", , ,"")

    No't jo praktysk gebrûk leard hawwe fan elk argumint fan 'e TEXTSPLIT-funksje, litte wy in pear avansearre foarbylden besprekke dy't jo kinne helpe omgean mei net-triviale útdagings yn jo Excel-spreadsheets.

    Dates splitstyn dei, moanne en jier

    Om in datum yn yndividuele ienheden te ferdielen, moatte jo earst datum konvertearje nei tekst, om't de TEXTSPLIT-funksje omgiet mei tekststrings, wylst Excel-datums nûmers binne.

    De maklikste manier om in numerike wearde nei tekst te konvertearjen is troch de TEXT-funksje te brûken. Soargje derfoar dat jo in passende opmaakkoade foar jo datum leverje.

    Yn ús gefal is de formule:

    =TEXT(A2, "m/d/yyyy")

    De folgjende stap is om de boppesteande funksje yn te nesteljen de 1e argumint fan TEXTSPLIT en fier de oerienkommende delimiter foar de 2e of 3e argumint, ôfhinklik fan oft jo splitst oer kolommen of rigen. Yn dit foarbyld wurde de datum-ienheden skieden mei slashes, dus wy brûke "/" foar it argumint col_delimiter :

    =TEXTSPLIT(TEXT(A2, "m/d/yyyy"), "/")

    Sellen splitsen en bepaalde tekens fuortsmite

    Stel jo dit foar: jo hawwe in lange tekenrige yn stikken splitst, mar de resultearjende array befettet noch wat net winske tekens, lykas haakjes yn 'e skermôfbylding hjirûnder:

    =TEXTSPLIT(A2, " ", "; ")

    Om te strippen út de iepenings- en slute-haakjes tagelyk, nêst twa SUBSTITUTE-funksjes inoar yn 'e oare (elk ferfangt ien haakje mei in lege tekenrige) en brûk de TEXTSPLIT-formule foar it tekst -argumint fan 'e ynderlike SUBSTITUTE:

    =SUBSTITUTE(SUBSTITUTE(TEXTSPLIT(A2, " ", "; "), "(", ""), ")", "")

    Tip. As de lêste array tefolle ekstra tekens befettet, kinne jo se ferwiderje mei ien fan 'e metoaden beskreaun yn dit artikel: Hoe kinne jo net winske tekens yn Excel ferwiderje.

    Spjalte snaren dy't bepaalde wearden oerslaan

    Stel dat jo de ûndersteande snaren skiede wolle yn 4 kolommen: Foarnamme , Achternamme , Score , en Resultaat . It probleem is dat guon snaren befetsje de titel "Mr." of "Mefrou", wêrtroch't de resultaten allegear ferkeard binne:

    De oplossing is net fanselssprekkend, mar frij ienfâldich :)

    Njonken de besteande delimiters, dy't in spaasje binne (" ") en in komma en in spaasje (", "), jo befetsje de stringen "Mr. " en "Ms. " yn 'e col_delimiter arraykonstante, sadat de funksje de titels sels brûkt om de tekst. Om lege wearden te negearjen, sette jo it argumint ignore_empty op TRUE.

    =TEXTSPLIT(A2, {" ",", ","Mr. ","Ms. "}, ,TRUE)

    No binne de resultaten absolút perfekt!

    TEXTSPLIT-alternativen

    Yn Excel-ferzjes wêr't de TEXTSPLIT-funksje net stipe wurdt, kinne jo stringen diele troch ferskate kombinaasjes fan 'e SEARCH / FIND-funksje te brûken mei LEFT, RIGHT en MID. Yn it bysûnder:

    • Hoofdletter-ûngefoelige SEARCH of FIND FIND bepaalt de posysje fan it skiedingsteken binnen in tekenrige, en
    • De funksjes LEFT, RIGHT en MID ekstrahearje in substring foardat , nei of tusken twa eksimplaren fan it skiedingsteken.

    Yn ús gefal, om de wearden skieden troch in komma en in spaasje te splitsen, geane de formules as folget.

    De namme ekstrahearje:

    =LEFT(A2, SEARCH(",", A2, 1) -1)

    Om de skoare te lûken:

    =MID(A2, SEARCH(",", A2) + 2, SEARCH(",", A2, SEARCH(",",A2)+1) - SEARCH(",", A2) - 2)

    Om de skoare te krijenresultaat:

    =RIGHT(A2, LEN(A2) - SEARCH(",",  A2, SEARCH(",",  A2) + 1)-1)

    Foar de detaillearre útlis fan 'e logika fan'e formules, sjoch Hoe kinne jo snaren splitse troch karakter of masker.

    Hâld asjebleaft yn gedachten dat yn tsjinstelling ta de dynamyske array TEXTSPLIT-funksje, dizze formules folgje de tradisjonele ien-formule-ien-sel-oanpak. Jo ynfiere de formule yn 'e earste sel, en slepe it dan yn' e kolom om te kopiearjen nei de ûndersteande sellen.

    De skermôfbylding hjirûnder lit de resultaten sjen:

    Dat is hoe sellen yn Excel 365 te splitsen binne. troch it brûken fan TEXTSPLIT of alternative oplossings yn eardere ferzjes. Ik tankje jo foar it lêzen en hoopje jo nije wike op ús blog te sjen!

    Oefenje wurkboek foar download

    TEXTSPLIT-funksje om snaren te splitsen - formulefoarbylden (.xlsx-bestân)

    <3 3>

    Michael Brown is in tawijd technology-entûsjast mei in passy foar it ferienfâldigjen fan komplekse prosessen mei software-ark. Mei mear as in desennium ûnderfining yn 'e tech-yndustry hat hy syn feardigens yn Microsoft Excel en Outlook, lykas Google Blêden en Docs, oanskerpe. Michael's blog is wijd oan it dielen fan syn kennis en ekspertize mei oaren, en biedt maklik te folgjen tips en tutorials foar it ferbetterjen fan produktiviteit en effisjinsje. Oft jo in betûfte profesjonele of in begjinner binne, Michael's blog biedt weardefolle ynsjoch en praktysk advys om it measte út dizze essensjele software-ark te heljen.