TEXTSPLIT function sa Excel: hatiin ang mga string ng text ayon sa delimiter

  • Ibahagi Ito
Michael Brown

Ipinapakita ng tutorial kung paano gamitin ang bagong function na TEXTSPLIT upang hatiin ang mga string sa Excel 365 sa pamamagitan ng anumang delimiter na iyong tinukoy.

Maaaring mayroong iba't ibang sitwasyon kung kailan kailangan mong hatiin mga cell sa Excel. Sa mga naunang bersyon, nilagyan na kami ng ilang instrumento para magawa ang gawain tulad ng Text to Columns at Fill Flash. Ngayon, mayroon din kaming espesyal na function para dito, TEXTSPLIT, na maaaring paghiwalayin ang isang string sa maraming mga cell sa mga column o/at mga row batay sa mga parameter na iyong tinukoy.

    Excel TEXTSPLIT function

    Hinahati ng TEXTSPLIT function sa Excel ang mga string ng text sa pamamagitan ng isang partikular na delimiter sa mga column o/at row. Ang resulta ay isang dynamic na array na awtomatikong dumaloy sa maraming mga cell.

    Ang function ay tumatagal ng hanggang 6 na argumento, ang unang dalawa lang ang kinakailangan.

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

    text (kinakailangan) - ang text na hahatiin. Maaaring ibigay bilang string o cell reference.

    col_delimiter (kinakailangan) - isang (mga) character na nagsasaad kung saan hahatiin ang text sa mga column. Kung aalisin, dapat tukuyin ang row_delimiter .

    row_delimiter (opsyonal) - isang (mga) character na nagsasaad kung saan hahatiin ang text sa mga row.

    ignore_empty (opsyonal) - tumutukoy kung babalewalain ang mga walang laman na value o hindi:

    • FALSE (default) -gumawa ng mga walang laman na cell para sa magkakasunod na delimiter na walang value sa pagitan.
    • TRUE - huwag pansinin ang mga walang laman na value, ibig sabihin, huwag gumawa ng mga walang laman na cell para sa dalawa o higit pang magkakasunod na delimiter.

    match_mode (opsyonal) - tinutukoy ang case-sensitivity para sa delimiter. Pinagana bilang default.

    • 0 (default) - case-sensitive
    • 1 - case-insensitive

    pad_with (opsyonal ) - isang value na gagamitin bilang kapalit ng mga nawawalang value sa two-dimensional arrays. Ang default ay isang #N/A error.

    Halimbawa, upang hatiin ang isang text string sa A2 sa maraming mga cell gamit ang isang kuwit at espasyo bilang separator, ang formula ay:

    =TEXTSPLIT(A2, ", ")

    Availability ng TEXTSPLIT

    Available lang ang TEXTSPLIT function sa Excel para sa Microsoft 365 (Windows at Mac) at Excel para sa web.

    Mga Tip:

    • Sa mga bersyon ng Excel kung saan hindi available ang TEXTSPLIT function (maliban sa Excel 365), maaari mong gamitin ang Text to Columns wizard para hatiin ang mga cell.
    • Upang gawin ang reverse task, ibig sabihin, pagsali sa mga nilalaman ng maramihang mga cell sa isa gamit ang isang partikular na delimiter, ang TEXTJOIN ay ang function na gagamitin.

    Basic na TEXTSPLIT formula para hatiin ang isang cell sa Excel

    Para sa panimula, tingnan natin kung paano gumamit ng TEXTSPLIT formula sa pinakasimpleng anyo nito upang hatiin ang isang text string sa isang partikular na delimiter.

    Hatiin ang isang cell nang pahalang sa mga column

    Upang hatiin ang mga nilalaman ng isang naibigay na cell sa maraming column, magbigay ng isangreference sa cell na naglalaman ng orihinal na string para sa unang ( text ) argument at ang delimiter na nagmamarka sa punto kung saan dapat mangyari ang paghahati para sa pangalawang ( col_delimiter ) argument.

    Halimbawa, para paghiwalayin ang string sa A2 nang pahalang sa pamamagitan ng kuwit, ang formula ay:

    =TEXTSPLIT(A2, ",")

    Para sa delimiter, gumagamit kami ng kuwit na nakapaloob sa double quotes (",") .

    Bilang resulta, ang bawat item na pinaghihiwalay ng kuwit ay napupunta sa isang indibidwal na column:

    Hatiin ang cell nang patayo sa mga row

    Upang hatiin ang text sa maraming row, ang pangatlo argument ( row_delimiter ) ay kung saan mo ilalagay ang delimiter. Ang pangalawang argumento ( col_delimiter ) ay tinanggal sa kasong ito.

    Halimbawa, para paghiwalayin ang mga value sa A2 sa iba't ibang row, ang formula ay:

    =TEXTSPLIT(A2, ,",")

    Pakitandaan na, sa parehong mga kaso, ang formula ay ipinasok lamang sa isang cell (C2). Sa mga kalapit na cell, ang mga ibinalik na halaga ay awtomatikong natapon. Ang resultang array (na tinatawag na spill range) ay naka-highlight na may asul na border na nagsasaad na lahat ng nasa loob nito ay kinakalkula ng formula sa itaas na kaliwang cell.

    Hatiin ang text ayon sa substring

    Sa maraming mga kaso, ang mga halaga sa source string ay pinaghihiwalay ng isang pagkakasunod-sunod ng mga character, isang kuwit at isang puwang bilang isang tipikal na halimbawa. Para pangasiwaan ang sitwasyong ito, gumamit ng substring para sa delimiter.

    Halimbawa, para paghiwalayin ang text sa A2 sa maraming columnsa pamamagitan ng kuwit at puwang, gamitin ang string na "," para sa col_delimiter .

    =TEXTSPLIT(A2, ", ")

    Ang formula na ito ay mapupunta sa B2, at pagkatapos ay kokopyahin mo ito sa pinakamaraming mga cell kung kinakailangan.

    Hatiin ang string sa mga column at row nang sabay-sabay

    Upang hatiin ang text string sa mga row at column nang sabay-sabay, tukuyin ang parehong delimiter sa iyong TEXTSPLIT formula.

    Halimbawa, para hatiin ang text string sa A2 sa mga column at row, nagbibigay kami ng:

    • Ang equal sign ("=") para sa col_delimiter
    • Isang kuwit at isang space (", ") para sa row_delimiter

    Ginagamit ng kumpletong formula ang form na ito:

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

    Ang resulta ay isang 2-D array na binubuo ng 2 column at 3 row:

    Paghiwalayin ang mga cell sa pamamagitan ng maraming delimiter

    Upang pangasiwaan ang maramihan o hindi pare-parehong delimiter sa source string, gumamit ng array constant tulad ng {"x","y" ,"z"} para sa argumento ng delimiter.

    Sa screenshot sa ibaba, ang teksto sa A2 ay nililimitahan ng parehong mga kuwit (",") at semicolon (";") na may at walang mga puwang. Upang hatiin ang string nang patayo sa mga hilera ayon sa lahat ng 4 na variation ng delimiter, ang formula ay:

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

    O kaya, maaari kang magsama lamang ng kuwit (",") at semicolon ("; ") sa array, at pagkatapos ay mag-alis ng mga karagdagang espasyo sa tulong ng TRIM function:

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

    Hatiin ang text na binabalewala ang mga walang laman na value

    Kung naglalaman ang string dalawa o higit pang magkakasunod na delimiter na walang halaga sa pagitan ng mga ito, maaari mong piliin kung balewalain ang gayong walang lamanhalaga o hindi. Ang gawi na ito ay kinokontrol ng pang-apat na parameter na ignore_empty , na nagde-default sa FALSE.

    Bilang default, hindi binabalewala ng TEXTSPLIT function ang mga walang laman na value. Ang default na gawi ay gumagana nang maayos para sa structured data tulad ng sa halimbawa sa ibaba.

    Sa sample na talahanayang ito, ang mga marka ay nawawala sa ilang mga string. Ang formula ng TEXTSPLIT na may argument na ignore_empty ay tinanggal o itinakda sa FALSE ang perpektong humahawak sa kasong ito, na lumilikha ng isang walang laman na cell para sa bawat walang laman na value.

    =TEXTSPLIT(A2, ", ")

    O

    =TEXTSPLIT(A2, ", ", FALSE)

    Bilang resulta, lumilitaw ang lahat ng value sa mga naaangkop na column.

    Kung sakaling ang iyong mga string ay naglalaman ng homogenous na data, maaaring makatuwirang huwag pansinin ang mga walang laman na halaga. Para dito, itakda ang argumentong ignore_empty sa TRUE o 1.

    Halimbawa, para hatiin ang mga string sa ibaba na naglalagay ng bawat kasanayan sa isang hiwalay na cell na walang gaps, ang formula ay:

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

    Sa kasong ito, ganap na binabalewala ang mga nawawalang value sa pagitan ng magkakasunod na delimiter:

    Cell splitting case-sensitive o case-insensitive

    Upang kontrolin ang case- sensitivity ng delimiter, gamitin ang ikalimang argumento, match_mode .

    Bilang default, ang match_mode ay nakatakda sa 0, na ginagawang TEXTSPLIT case-sensitive .

    Sa halimbawang ito, ang mga numero ay pinaghihiwalay ng maliliit na "x" at malalaking titik na "X."

    Ang formula na may default na case-sensitivity ay tumatanggap lamang ng lowercase na "x "bilang angdelimiter:

    =TEXTSPLIT(A2, " x ")

    Mangyaring bigyang-pansin na ang delimiter ay may puwang sa magkabilang gilid ng letrang " x " upang maiwasan ang mga nauuna at sumusunod na mga puwang sa mga resulta.

    Upang i-off ang case sensitivity, magbibigay ka ng 1 para sa match_mode para pilitin ang TEXTSPLIT formula na balewalain ang letter case:

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

    Ngayon, lahat ang mga string ay nahahati nang tama ng alinman sa delimiter:

    Pad missing values ​​in 2D array

    Ang huling argumento ng TEXTSPLIT function, pad_with , ay magagamit kung sakaling isa o mas maraming value ang nawawala sa source string. Kapag nahati ang naturang string sa parehong mga column at row, bilang default, ibinabalik ng Excel ang mga #N/A na error sa halip na ang mga nawawalang value para hindi masira ang structure ng isang two-dimensional array.

    Sa string sa ibaba, walang "=" ( col_delimiter ) pagkatapos ng "Score". Upang mapanatili ang integridad ng resultang array, ang TEXTSPLIT ay naglalabas ng #N/A sa tabi ng "Score".

    Upang gawing mas madaling gamitin ang resulta, maaari mong palitan ang #N/A error ng anumang value na gusto mo. I-type lang ang gustong value sa argument na pad_with .

    Sa aming kaso, maaaring ito ay isang gitling ("-"):

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

    O isang walang laman na string (""):

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

    Ngayong natutunan mo na ang praktikal na paggamit ng bawat argumento ng TEXTSPLIT function, talakayin natin ang ilang advanced na halimbawa na makakatulong sa iyo makayanan ang mga di-maliit na hamon sa iyong mga spreadsheet sa Excel.

    Paghati-hatiin ang mga petsasa araw, buwan at taon

    Upang hatiin ang petsa sa mga indibidwal na unit, kailangan mo munang i-convert ang petsa sa text dahil ang TEXTSPLIT function ay tumatalakay sa mga string ng text habang ang mga petsa ng Excel ay mga numero.

    Ang pinakamadali paraan upang i-convert ang isang numerong halaga sa teksto ay sa pamamagitan ng paggamit ng TEXT function. Siguraduhing magbigay ng naaangkop na format code para sa iyong petsa.

    Sa aming kaso, ang formula ay:

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

    Ang susunod na hakbang ay ang paglalagay ng function sa itaas sa ang 1st argument ng TEXTSPLIT at ilagay ang kaukulang delimiter para sa 2nd o 3rd argument, depende kung nahahati ka sa mga column o row. Sa halimbawang ito, ang mga unit ng petsa ay nililimitahan ng mga slash, kaya ginagamit namin ang "/" para sa argumentong col_delimiter :

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

    Hatiin ang mga cell at alisin ang ilang partikular na character

    Isipin mo ito: nahati mo ang isang mahabang string sa mga piraso, ngunit ang resultang array ay naglalaman pa rin ng ilang hindi gustong mga character, tulad ng mga panaklong sa screenshot sa ibaba:

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

    Upang hubarin off ang pambungad at pagsasara ng mga panaklong nang sabay-sabay, ilagay ang dalawang SUBSTITUTE function sa isa't isa (bawat isa ay pinapalitan ang isang panaklong ng isang walang laman na string) at gamitin ang TEXTSPLIT formula para sa text argument ng panloob na SUBSTITUTE:

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

    Tip. Kung ang huling array ay naglalaman ng napakaraming dagdag na character, maaari mong i-purge ang mga ito gamit ang isa sa mga pamamaraan na inilarawan sa artikulong ito: Paano mag-alis ng mga hindi gustong character sa Excel.

    Paghiwalayin ang mga string na lumalaktaw sa ilang partikular na value

    Ipagpalagay na gusto mong paghiwalayin ang mga string sa ibaba sa 4 na column: First name , Apelyido , Score , at Resulta . Ang problema ay ang ilang mga string ay naglalaman ng pamagat na "Mr." o "Ms.", dahil sa kung saan ang mga resulta ay mali lahat:

    Ang solusyon ay hindi halata ngunit medyo simple :)

    Bukod pa sa mga kasalukuyang delimiter, na isang puwang (" ") at isang kuwit at isang puwang (", "), isama mo ang mga string na "Mr. " at "Ms. " sa col_delimiter array constant, nang sa gayon ay ginagamit ng function ang mga pamagat mismo upang paghiwalayin ang text. Upang huwag pansinin ang mga walang laman na halaga, itinakda mo ang argumentong ignore_empty sa TRUE.

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

    Ngayon, ang mga resulta ay ganap na perpekto!

    Mga alternatibo sa TEXTSPLIT

    Sa mga bersyon ng Excel kung saan hindi suportado ang TEXTSPLIT function, maaari mong hatiin ang mga string sa pamamagitan ng paggamit ng iba't ibang kumbinasyon ng function na SEARCH / FIND na may LEFT, RIGHT at MID. Sa partikular:

    • Case-insensitive SEARCH o case-sensitive FIND ay tumutukoy sa posisyon ng delimiter sa loob ng isang string, at
    • Ang LEFT, RIGHT, at MID function ay nag-extract ng substring bago , pagkatapos o sa pagitan ng dalawang instance ng delimiter.

    Sa aming kaso, upang hatiin ang mga value na pinaghihiwalay ng isang kuwit at isang espasyo , ang mga formula ay napupunta sa mga sumusunod.

    Upang kunin ang pangalan:

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

    Upang makuha ang marka:

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

    Upang makuha angresulta:

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

    Para sa detalyadong paliwanag ng lohika ng mga formula, tingnan ang Paano hatiin ang mga string ayon sa karakter o mask.

    Pakitandaan na hindi katulad ng dynamic na array TEXTSPLIT function, ang mga formula na ito ay sumusunod sa tradisyonal na one-formula-one-cell na diskarte. Ilalagay mo ang formula sa unang cell, at pagkatapos ay i-drag ito pababa sa column upang kopyahin sa mga cell sa ibaba.

    Ipinapakita ng screenshot sa ibaba ang mga resulta:

    Ganyan kung paano hatiin ang mga cell sa Excel 365 sa pamamagitan ng paggamit ng TEXTSPLIT o mga alternatibong solusyon sa mga naunang bersyon. Salamat sa pagbabasa at umaasa akong makita ka sa aming blog sa susunod na linggo!

    Magsanay ng workbook para sa pag-download

    TEXTSPLIT function na maghati ng mga string – mga halimbawa ng formula (.xlsx file)

    Si Michael Brown ay isang dedikadong mahilig sa teknolohiya na may hilig sa pagpapasimple ng mga kumplikadong proseso gamit ang mga tool sa software. Sa higit sa isang dekada ng karanasan sa industriya ng tech, hinasa niya ang kanyang mga kasanayan sa Microsoft Excel at Outlook, pati na rin ang Google Sheets at Docs. Ang blog ni Michael ay nakatuon sa pagbabahagi ng kanyang kaalaman at kadalubhasaan sa iba, na nagbibigay ng madaling sundan na mga tip at mga tutorial para sa pagpapabuti ng pagiging produktibo at kahusayan. Isa ka mang batikang propesyonal o baguhan, nag-aalok ang blog ni Michael ng mahahalagang insight at praktikal na payo para masulit ang mahahalagang software tool na ito.