Excel: Hatiin ang string ayon sa delimiter o pattern, magkahiwalay na text at mga numero

  • Ibahagi Ito
Michael Brown

Ipinapaliwanag ng tutorial kung paano hatiin ang mga cell sa Excel gamit ang mga formula at ang feature na Split Text. Matututuhan mo kung paano paghiwalayin ang teksto sa pamamagitan ng kuwit, espasyo o anumang iba pang delimiter, at kung paano hatiin ang mga string sa teksto at mga numero .

Ang paghahati ng teksto mula sa isang cell patungo sa ilang mga cell ay ang gawain ng lahat ng mga gumagamit ng Excel pakikitungo sa minsan. Sa isa sa aming mga naunang artikulo, tinalakay namin kung paano hatiin ang mga cell sa Excel gamit ang tampok na Text to Column at Flash Fill . Ngayon, titingnan natin nang malalim kung paano mo mahahati ang mga string gamit ang mga formula at ang tool na Split Text .

    Paano hatiin ang text sa Excel gamit ang mga formula

    Upang hatiin ang string sa Excel, karaniwang ginagamit mo ang LEFT, RIGHT o MID function kasama ng FIND o SEARCH. Sa unang tingin, maaaring magmukhang kumplikado ang ilan sa mga formula, ngunit ang logic sa katunayan ay medyo simple, at ang mga sumusunod na halimbawa ay magbibigay sa iyo ng ilang mga pahiwatig.

    Hatiin ang string sa pamamagitan ng kuwit, semicolon, slash, gitling o iba pang delimiter

    Kapag naghahati ng mga cell sa Excel, ang susi ay upang mahanap ang posisyon ng delimiter sa loob ng text string. Depende sa iyong gawain, maaari itong gawin sa pamamagitan ng paggamit ng alinman sa case-insensitive na SEARCH o case-sensitive FIND. Kapag mayroon ka nang posisyon ng delimiter, gamitin ang RIGHT, LEFT o MID function para kunin ang kaukulang bahagi ng text string. Para sa mas mahusay na pag-unawa, isaalang-alang natin ang mga sumusunod(petsa)

  • Mga character sa pagitan ng 1st space at ng salitang ERROR: (oras)
  • Text sa pagitan ng ERROR: at Exception: (error code)
  • Lahat na darating pagkatapos ng Exception: (exception text)
  • Sana ikaw Nagustuhan nito ang mabilis at direktang paraan upang hatiin ang mga string sa Excel. Kung gusto mong subukan ito, ang isang bersyon ng pagsusuri ay magagamit para sa pag-download sa ibaba. Salamat sa pagbabasa at umaasa akong makita ka sa aming blog sa susunod na linggo!

    Mga available na download

    Mga formula ng Excel Split Cells (.xlsx file)

    Ultimate Suite 14 na araw fully-functional na bersyon (.exe file)

    halimbawa.

    Ipagpalagay na mayroon kang isang listahan ng mga SKU ng pattern na Item-Color-Size , at gusto mong hatiin ang column sa 3 magkahiwalay na column:

    1. Upang i-extract ang pangalan ng item (lahat ng character bago ang unang gitling), ipasok ang sumusunod na formula sa B2, at pagkatapos ay kopyahin ito sa column:

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

      Sa formula na ito, tinutukoy ng SEARCH ang posisyon ng unang gitling ("-") sa string, at kinukuha ng LEFT function ang lahat ng character na natitira dito (binabawas mo ang 1 sa posisyon ng hyphen dahil hindi mo gustong i-extract ang gitling mismo).

    2. Upang i-extract ang kulay (lahat ng character sa pagitan ng 1st at 2nd hyphens), ilagay ang sumusunod formula sa C2, at pagkatapos ay kopyahin ito pababa sa iba pang mga cell:

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

      Sa formula na ito, ginagamit namin ang Excel MID function para mag-extract ng text mula sa A2.

      Ang panimulang posisyon at ang bilang ng mga character na kukunin ay kinakalkula sa tulong ng 4 na magkakaibang function ng SEARCH:

      • Start number ay ang posisyon ng unang gitling +1:

        SEARCH("-",A2) + 1

      • Bilang ng mga character na kukunin : ang pagkakaiba sa pagitan ng posisyon ng ika-2 gitling at ang unang gitling, minus 1:

        SEARCH("-", A2, SEARCH("-",A2)+1) - SEARCH("-",A2) -1

    3. Upang kunin ang laki (lahat ng character pagkatapos ng ika-3 gitling), ilagay ang sumusunod na formula sa D2:

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

      Sa formula na ito, ibinabalik ng LEN function ang kabuuang haba ng string,kung saan mo ibawas ang posisyon ng 2nd hyphen. Ang pagkakaiba ay ang bilang ng mga character pagkatapos ng ika-2 gitling, at kinukuha ng RIGHT function ang mga ito.

    Sa katulad na paraan, maaari mong hatiin ang column sa pamamagitan ng anumang ibang karakter. Ang kailangan mo lang gawin ay palitan ang "-" ng kinakailangang delimiter, halimbawa space (" "), comma (","), slash ("/"), colon (";"), semicolon (";"), at iba pa.

    Tip. Sa mga formula sa itaas, ang +1 at -1 ay tumutugma sa bilang ng mga character sa delimiter. Sa halimbawang ito, ito ay isang gitling (1 character). Kung ang iyong delimiter ay binubuo ng 2 character, hal. isang kuwit at isang espasyo, pagkatapos ay ibigay lamang ang kuwit (",") sa SEARCH function, at gamitin ang +2 at -2 sa halip na +1 at -1.

    Paano hatiin ang string ayon sa line break sa Excel

    Upang hatiin ang text ayon sa espasyo, gumamit ng mga formula na katulad ng ipinakita sa nakaraang halimbawa. Ang kaibahan lang ay kakailanganin mo ang CHAR function para maibigay ang line break na character dahil hindi mo ito mai-type nang direkta sa formula.

    Kumbaga, ang mga cell na gusto mong hatiin ay kamukha nito:

    Kunin ang mga formula mula sa nakaraang halimbawa at palitan ang isang gitling ("-") ng CHAR(10) kung saan ang 10 ay ang ASCII code para sa Line feed.

    • Upang i-extract ang pangalan ng item :

      =LEFT(A2, SEARCH(CHAR(10),A2,1)-1)

    • Upang i-extract ang kulay :

      =MID(A2, SEARCH(CHAR(10),A2) + 1, SEARCH(CHAR(10),A2,SEARCH(CHAR(10),A2)+1) - SEARCH(CHAR(10),A2) - 1)

    • Upang kunin ang laki :

      =RIGHT(A2,LEN(A2) - SEARCH(CHAR(10), A2, SEARCH(CHAR(10), A2) + 1))

    At ganito ang hitsura ng resulta:

    Paano hatiin ang text at mga numero sa Excel

    Upang magsimula, walang pangkalahatang solusyon na gagana para sa lahat ng alphanumeric na string. Aling formula ang gagamitin ay depende sa partikular na pattern ng string. Makikita mo sa ibaba ang mga formula para sa dalawang karaniwang sitwasyon.

    Hatiin ang string ng pattern na 'text + number'

    Ipagpalagay, mayroon kang column ng mga string na may pinagsamang text at mga numero, kung saan ang isang numero laging sumusunod sa text. Gusto mong putulin ang orihinal na mga string upang ang teksto at mga numero ay lumabas sa magkahiwalay na mga cell, tulad nito:

    Maaaring makamit ang resulta sa dalawang magkaibang paraan.

    Paraan 1: Bilangin ang mga digit at i-extract ang napakaraming character

    Ang pinakamadaling paraan upang hatiin ang string ng text kung saan ang numero ay pagkatapos ng text ay ito:

    Upang i-extract ang mga numero , ikaw hanapin ang string para sa bawat posibleng numero mula 0 hanggang 9, kunin ang kabuuang bilang, at ibalik ang maraming character mula sa dulo ng string.

    Gamit ang orihinal na string sa A2, ang formula ay napupunta sa sumusunod:

    =RIGHT(A2,SUM(LEN(A2) - LEN(SUBSTITUTE(A2, {"0","1","2","3","4","5","6","7","8","9"},""))))

    Upang mag-extract ng text , kinakalkula mo kung gaano karaming mga text character ang nilalaman ng string sa pamamagitan ng pagbabawas ng bilang ng mga na-extract na digit (C2) mula sa kabuuang haba ng orihinal na string sa A2 . Pagkatapos nito, gagamitin mo ang LEFT function para ibalik ang maraming character mula sa simula ng string.

    =LEFT(A2,LEN(A2)-LEN(C2))

    Kung saan ang A2 ang orihinal na string,at C2 ang na-extract na numero, gaya ng ipinapakita sa screenshot:

    Paraan 2: Alamin ang posisyon ng 1st digit sa isang string

    Isang alternatibo solution ay gagamit ng sumusunod na formula upang matukoy ang posisyon ng unang digit sa string:

    =MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))

    Kapag nahanap na ang posisyon ng unang digit, maaari mong hatiin ang text at mga numero sa pamamagitan ng paggamit napakasimpleng LEFT at RIGHT formula.

    Upang i-extract ang text :

    =LEFT(A2, B2-1)

    Upang i-extract ang number :

    =RIGHT(A2, LEN(A2)-B2+1)

    Kung saan ang A2 ay ang orihinal na string, at ang B2 ay ang posisyon ng unang numero.

    Upang alisin ang helper column na may hawak na posisyon ng unang digit, maaari mong i-embed ang MIN formula sa LEFT at RIGHT function:

    Formula para i-extract ang text :

    =LEFT(A2,MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))-1)

    Formula para kunin ang mga numero :

    =RIGHT(A2,LEN(A2)-MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))+1)

    Hatiin ang string ng pattern na 'number + text'

    Kung hinahati mo ang mga cell kung saan lumalabas ang text pagkatapos ng numero, ikaw maaaring mag-extract ng mga numero gamit ang sumusunod na formula:

    =LEFT(A2, SUM(LEN(A2) - LEN(SUBSTITUTE(A2, {"0","1","2","3","4","5","6","7","8","9"}, ""))))

    Ang formula ay katulad ng tinalakay sa nakaraang halimbawa, maliban na ginagamit mo ang LEFT function sa halip na RIGHT para makuha ang numero mula sa kaliwang bahagi ng string.

    Sa sandaling mayroon ka ng mga numero , i-extract text sa pamamagitan ng pagbabawas ng bilang ng mga digit mula sa kabuuang haba ng orihinal na string:

    =RIGHT(A2,LEN(A2)-LEN(B2))

    Kung saan ang A2 ay ang orihinal na string at Ang B2 ay ang nakuhang numero,tulad ng ipinapakita sa screenshot sa ibaba:

    Tip. Upang makakuha ng numero mula sa anumang posisyon sa text string , gamitin ang formula na ito o ang Extract tool.

    Ganito ka makakapaghati ng mga string sa Excel gamit ang iba't ibang kumbinasyon ng iba't ibang function. Tulad ng nakikita mo, ang mga formula ay malayo sa halata, kaya maaaring gusto mong i-download ang sample na Excel Split Cells workbook upang suriin ang mga ito nang mas malapit.

    Kung ang pag-alam sa mga arcane twist ng mga formula ng Excel ay hindi mo paboritong trabaho, ikaw maaaring gusto ang visual na paraan upang hatiin ang mga cell sa Excel, na ipinapakita sa susunod na bahagi ng tutorial na ito.

    Paano hatiin ang mga cell sa Excel gamit ang Split Text tool

    Isang alternatibong paraan upang hatiin ang isang Ang column sa Excel ay gumagamit ng feature na Split Text na kasama sa aming Ultimate Suite for Excel, na nagbibigay ng mga sumusunod na opsyon:

      Upang gawing mas malinaw ang mga bagay, tingnan natin ang bawat opsyon, isa. sa isang pagkakataon.

      Hatiin ang mga cell ayon sa character

      Piliin ang opsyong ito kapag gusto mong hatiin ang mga nilalaman ng cell sa bawat paglitaw ng tinukoy na character .

      Para sa halimbawang ito, kunin natin ang mga string ng pattern na Item-Color-Size na ginamit namin sa unang bahagi ng tutorial na ito. Tulad ng natatandaan mo, pinaghiwalay namin ang mga ito sa 3 magkakaibang column gamit ang 3 magkakaibang formula. At narito kung paano mo makakamit ang parehong resulta sa 2 mabilis na hakbang:

      1. Ipagpalagay na mayroon kang Ultimate Suitenaka-install, piliin ang mga cell na hahatiin, at i-click ang icon na Split Text sa tab na Ablebits Data .

      2. Ang Magbubukas ang panel ng>Split Text sa kanang bahagi ng iyong Excel window, at gagawin mo ang sumusunod:
        • Palawakin ang grupong Split by character , at pumili ng isa sa mga paunang natukoy na delimiter o i-type ang anumang iba pang character sa kahon na Custom .
        • Piliin kung hahatiin ang mga cell sa mga column o row.
        • Suriin ang resulta sa ilalim ng Preview seksyon, at i-click ang button na Split .

      Tip. Kung maaaring mayroong ilang magkakasunod na delimiter sa isang cell (halimbawa, higit sa isang space character), piliin ang kahon na Treat consecutive delimiter as one .

      Tapos na! Ang gawain na nangangailangan ng 3 formula at 5 iba't ibang function ay tumatagal na lamang ng ilang segundo at isang pag-click sa button.

      Hatiin ang mga cell ayon sa string

      Hinahayaan ng opsyong ito naghati ka ng mga string gamit ang anumang kumbinasyon ng mga character bilang delimiter. Sa teknikal, hinati mo ang isang string sa mga bahagi sa pamamagitan ng paggamit ng isa o ilang magkakaibang mga substring bilang mga hangganan ng bawat bahagi.

      Halimbawa, upang hatiin ang isang pangungusap sa pamamagitan ng mga pang-ugnay na " at " at " o ", palawakin ang grupong Split by strings , at ilagay ang delimiter string, isa bawat linya:

      Bilang resulta, ang pinagmulang parirala ay pinaghihiwalay sa bawat paglitaw ng bawat delimiter:

      Tip.Ang mga character na "o" pati na rin ang "at" ay madalas na bahagi ng mga salita tulad ng "orange" o "Andalusia", kaya siguraduhing mag-type ng space bago at pagkatapos ng at at o upang maiwasan ang paghahati-hati ng mga salita.

      At narito ang isa pang halimbawa sa totoong buhay. Ipagpalagay na nag-import ka ng column ng mga petsa mula sa isang panlabas na pinagmulan, na ganito ang hitsura:

      5.1.2016 12:20

      5.2.2016 14:50

      Ang format na ito ay hindi karaniwan para sa Excel, at samakatuwid ay wala sa mga function ng Petsa ang makakakilala ng alinman sa mga elemento ng petsa o oras. Upang hatiin ang araw, buwan, taon, oras at minuto sa magkahiwalay na mga cell, ilagay ang mga sumusunod na character sa kahon na Split by strings :

      • Dot (.) para paghiwalayin ang araw, buwan , at taon
      • Colon (:) upang paghiwalayin ang mga oras at minuto
      • Space upang paghiwalayin ang petsa at oras

      Pindutin ang Split button, at agad mong makukuha ang resulta:

      Hatiin ang mga cell ayon sa mask (pattern)

      Paghihiwalay ng cell sa pamamagitan ng mask nangangahulugan ng paghahati ng string batay sa isang pattern .

      Ang opsyong ito ay napakadaling gamitin kapag kailangan mong hatiin ang isang listahan ng magkakatulad na mga string sa ilang elemento, o mga substring. Ang komplikasyon ay hindi maaaring hatiin ang pinagmulang teksto sa bawat paglitaw ng isang partikular na delimiter, sa ilang partikular na (mga) pangyayari lamang. Ang sumusunod na halimbawa ay gagawing mas madaling maunawaan ang mga bagay.

      Ipagpalagay na mayroon kang isang listahan ng mga string na nakuha mula sa ilang logfile:

      Ang gusto mo ay magkaroon ng petsa at oras, kung mayroon man, error code at mga detalye ng exception sa 3 magkahiwalay na column. Hindi ka maaaring gumamit ng espasyo bilang delimiter dahil may mga puwang sa pagitan ng petsa at oras, na dapat lumabas sa isang column, at may mga puwang sa loob ng exception text, na dapat ding lumabas sa isang column.

      Ang solusyon ay paghahati ng string sa pamamagitan ng sumusunod na mask: *ERROR:*Exception:*

      Kung saan ang asterisk (*) ay kumakatawan sa anumang bilang ng mga character.

      Ang mga colon (:) ay kasama sa mga delimiter dahil hindi namin gustong lumabas ang mga ito sa mga resultang cell.

      At ngayon, palawakin ang Split by mask na seksyon sa Split Text pane, i-type ang mask sa kahon na Enter delimiters , at i-click ang Split :

      Magiging katulad nito ang resulta:

      Tandaan. Ang paghahati ng string sa pamamagitan ng mask ay case-sensitive . Kaya, siguraduhing i-type ang mga character sa mask nang eksakto kung paano lumilitaw ang mga ito sa source string.

      Ang isang malaking bentahe ng pamamaraang ito ay ang flexibility. Halimbawa, kung ang lahat ng orihinal na string ay may mga halaga ng petsa at oras, at gusto mong lumabas ang mga ito sa iba't ibang column, gamitin ang mask na ito:

      * *ERROR:*Exception:*

      Isinalin sa simpleng English, ang mask ay nagtuturo sa add-in na hatiin ang orihinal na mga string sa 4 na bahagi:

      • Lahat ng character bago ang unang puwang na makikita sa loob ng string

      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.