Excel: Разделяне на низ по разделител или шаблон, отделяне на текст и числа

  • Споделя Това
Michael Brown

В урока е обяснено как да разделяте клетки в Excel с помощта на формули и функцията за разделяне на текст. Ще научите как да разделяте текст със запетая, интервал или друг разделител и как да разделяте низове на текст и числа. .

Разделянето на текст от една клетка в няколко клетки е задача, с която всички потребители на Excel се сблъскват от време на време. В една от предишните ни статии обсъдихме как да разделяте клетки в Excel, като използвате Текст към колона функция и Запълване на светкавицата . Днес ще разгледаме подробно как можете да разделяте низове с помощта на формули и Разделяне на текст инструмент.

    Как да разделите текст в Excel с помощта на формули

    За разделяне на низ в Excel обикновено използвате функцията LEFT, RIGHT или MID в комбинация с FIND или SEARCH. На пръв поглед някои от формулите може да изглеждат сложни, но логиката всъщност е доста проста и следващите примери ще ви дадат някои насоки.

    Разделяне на низ със запетая, точка и запетая, наклонена черта, тире или друг разделител

    Когато разделяте клетки в Excel, ключът е да откриете позицията на разделителя в текстовия низ. В зависимост от задачата това може да стане с помощта на SEARCH (търсене без отчитане на големи и малки букви) или FIND (търсене без отчитане на големи и малки букви). След като разберете позицията на разделителя, използвайте функцията RIGHT (дясно), LEFT (ляво) или MID (средно), за да извлечете съответната част от текстовия низ. За по-добро разбиране нека разгледаме следнотопример.

    Да предположим, че разполагате със списък на SKU на Артикул-цвят-размер и искате да разделите колоната на 3 отделни колони:

    1. За да извлечете име на елемента (всички символи преди първото тире), въведете следната формула в B2 и я копирайте надолу по колоната:

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

      В тази формула функцията SEARCH определя позицията на първия дефис ("-") в низа, а функцията LEFT извлича всички символи, които остават до него (изваждате 1 от позицията на дефиса, защото не искате да извличате самия дефис).

    2. За да извлечете цвят (всички символи между първото и второто тире), въведете следната формула в C2 и след това я копирайте в други клетки:

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

      В тази формула използваме функцията MID на Excel, за да извлечем текст от A2.

      Началната позиция и броят на символите, които трябва да се извлекат, се изчисляват с помощта на 4 различни функции за търсене:

      • Начален номер е позицията на първото тире +1:

        ТЪРСЕНЕ("-",A2) + 1

      • Брой символи за извличане : разликата между позицията на второто тире и първото тире, минус 1:

        ТЪРСЕНЕ("-", A2, ТЪРСЕНЕ("-",A2)+1) - ТЪРСЕНЕ("-",A2) -1

    3. За да извлечете размер (всички символи след третото тире), въведете следната формула в D2:

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

      В тази формула функцията LEN връща общата дължина на низа, от която се изважда позицията на второто тире. Разликата е броят на символите след второто тире и функцията RIGHT ги извлича.

    По подобен начин можете да разделите колона по всеки друг символ. Всичко, което трябва да направите, е да замените "-" с необходимия разделител, например пространство (" "), запетая (","), слъш ("/"), дебело черво (";"), точка и запетая (";") и т.н.

    Съвет. В горните формули +1 и -1 съответстват на броя на символите в разделителя. В този пример това е дефис (1 символ). Ако вашият разделител се състои от 2 символа, напр. запетая и интервал, тогава подайте само запетаята (",") на функцията SEARCH и използвайте +2 и -2 вместо +1 и -1.

    Как да разделите низ чрез прекъсване на реда в Excel

    За разделяне на текста по интервал използвайте формули, подобни на тези, показани в предишния пример. Единствената разлика е, че ще ви е необходима функцията CHAR, за да предоставите символа за прекъсване на реда, тъй като не можете да го въведете директно във формулата.

    Предполагаме, че клетките, които искате да разделите, изглеждат по следния начин:

    Вземете формулите от предишния пример и заменете тирето ("-") с CHAR(10), където 10 е ASCII кодът за Line feed.

    • За да извлечете име на елемента :

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

    • За да извлечете цвят :

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

    • За да извлечете размер :

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

    И ето как изглежда резултатът:

    Как да разделите текст и числа в Excel

    По начало не съществува универсално решение, което да работи за всички буквено-цифрови низове. Коя формула да се използва зависи от конкретния модел на низа. По-долу ще намерите формулите за двата често срещани сценария.

    Разделяне на низ от шаблона 'текст + число'

    Да предположим, че имате колона от низове с комбиниран текст и числа, където числото винаги следва текста. Искате да разделите оригиналните низове, така че текстът и числата да се появяват в отделни клетки, както е показано по-долу:

    Резултатът може да бъде постигнат по два различни начина.

    Метод 1: Пребройте цифрите и извлечете толкова знака

    Най-лесният начин за разделяне на текстов низ, в който числото идва след текста, е следният:

    За извличане на номера , търсите в низа всички възможни числа от 0 до 9, получавате общия брой на числата и връщате толкова символа от края на низа.

    С оригиналния низ в A2 формулата е следната:

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

    За извличане на текст , изчислявате колко текстови символа съдържа низът, като изваждате броя на извлечените цифри (C2) от общата дължина на оригиналния низ в A2. След това използвате функцията LEFT, за да върнете този брой символи от началото на низа.

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

    Където A2 е оригиналният низ, а C2 е извлеченият номер, както е показано на екранната снимка:

    Метод 2: Определяне на позицията на първата цифра в низ

    Алтернативно решение е да се използва следната формула за определяне на позицията на първата цифра в низа:

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

    След като откриете позицията на първата цифра, можете да разделите текст и числа с помощта на много прости формули LEFT и RIGHT.

    За извличане на текст :

    =ЛЯВО(A2, B2-1)

    За извличане на номер :

    =ПРАВО(A2, LEN(A2)-B2+1)

    Където A2 е оригиналният низ, а B2 е позицията на първото число.

    За да се отървете от помощната колона, която държи позицията на първата цифра, можете да вградите формулата MIN във функциите LEFT и RIGHT:

    Формула за извличане текст :

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

    Формула за извличане номера :

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

    Разделяне на низ от шаблона 'число + текст'

    Ако разделяте клетки, в които текстът се появява след числото, можете да извличане на номера по следната формула:

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

    Формулата е подобна на разгледаната в предишния пример, с изключение на това, че се използва функцията LEFT вместо RIGHT, за да се получи числото от лявата страна на низа.

    След като разполагате с числата, екстракт текст като извадите броя на цифрите от общата дължина на оригиналния низ:

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

    Където A2 е оригиналният низ, а B2 е извлеченият номер, както е показано на екранната снимка по-долу:

    Съвет. За да получите номер от всяка позиция в текстовия низ , използвайте тази формула или инструмента за извличане.

    Това е начинът, по който можете да разделяте низове в Excel, като използвате различни комбинации от различни функции. Както виждате, формулите далеч не са очевидни, затова може да изтеглите примерната работна книга на Excel Split Cells, за да ги разгледате по-отблизо.

    Ако разгадаването на тайните усуквания на формулите на Excel не е любимото ви занимание, може да ви хареса визуалният метод за разделяне на клетки в Excel, който е демонстриран в следващата част на този урок.

    Как да разделите клетките в Excel с инструмента Split Text

    Алтернативен начин за разделяне на колона в Excel е използването на функцията за разделяне на текст, включена в нашия Ultimate Suite за Excel, която предоставя следните опции:

      За да стане всичко по-ясно, нека разгледаме по-подробно всяка опция, една по една.

      Разделяне на клетките по символи

      Изберете тази опция, когато искате да разделите съдържанието на клетката на всяка поява на посочения символ .

      За този пример нека вземем низовете на Артикул-цвят-размер Както може би си спомняте, разделихме ги в 3 различни колони, като използвахме 3 различни формули. А ето как можете да постигнете същия резултат в 2 бързи стъпки:

      1. Предполага се, че имате инсталиран Ultimate Suite, изберете клетките, които искате да разделите, и щракнете върху Разделяне на текст икона в Данни от Ablebits таб.

      2. Сайтът Разделяне на текста в дясната част на прозореца на Excel ще се отвори прозорец и ще направите следното:
        • Разширете Разделяне по символи и изберете един от предварително дефинираните разделители или въведете друг символ в полето Потребителски кутия.
        • Изберете дали да разделите клетките на колони или редове.
        • Прегледайте резултата в Преглед и щракнете върху Сплит бутон.

      Съвет. Ако в дадена клетка има няколко последователни разделителя (например повече от един символ интервал), изберете Третиране на последователни разделители като един кутия.

      Готово! Задачата, която изискваше 3 формули и 5 различни функции, сега отнема само няколко секунди и едно натискане на бутон.

      Разделяне на клетките по низ

      Тази опция ви позволява да разделяте низове с помощта на всяка комбинация от символи Технически разделяте низ на части, като използвате един или няколко различни подниза като граници на всяка част.

      Например, за да разделите изречение със съюзите " и " и " или ", разширете Разделяне по низове и въведете низовете за разграничаване, по един на ред:

      В резултат на това изходната фраза се отделя при всяко появяване на всеки разделител:

      Съвет. Символите "или" и "и" често могат да бъдат част от думи като "портокал" или "Андалусия", затова не забравяйте да въведете пространство преди и след и и или за да предотвратите разделянето на думи.

      А ето и друг пример от реалния живот. Да предположим, че сте импортирали колона с дати от външен източник, които изглеждат по следния начин:

      5.1.2016 12:20

      5.2.2016 14:50

      Този формат не е обичаен за Excel и затова нито една от функциите Date няма да разпознае нито един от елементите на датата или часа. За да разделите деня, месеца, годината, часовете и минутите в отделни клетки, въведете следните символи в полето Разделяне по низове кутия:

      • Точка (.) за разделяне на ден, месец и година
      • Двоеточие (:) за разделяне на часове и минути
      • Място за отделяне на дата и час

      Натиснете Сплит и веднага ще получите резултата:

      Разделяне на клетките по маска (модел)

      Разделянето на клетка с маска означава разделяне на низ въз основа на модел .

      Тази опция е много удобна, когато трябва да разделите списък от еднотипни низове на някои елементи или поднизове. Усложнението е, че изходният текст не може да бъде разделен при всяко появяване на даден разделител, а само при някои конкретни появявания. Следващият пример ще направи нещата по-лесни за разбиране.

      Да предположим, че разполагате със списък от низове, извлечени от някакъв лог файл:

      Това, което искате, е да имате дата и час, ако има такива, код на грешката и подробности за изключението в 3 отделни колони. Не можете да използвате интервал като разделител, защото има интервали между датата и часа, които трябва да се появят в една колона, и има интервали в текста на изключението, който също трябва да се появи в една колона.

      Решението е разделяне на низ чрез следната маска: *ERROR:*Exception:*

      Където звездичката (*) представлява произволен брой символи.

      Двоеточията (:) са включени в разделителите, защото не искаме те да се появяват в получените клетки.

      А сега разширете Разделяне по маска раздел в Разделяне на текст панел, въведете маската в Въведете разделители и щракнете върху Сплит :

      Резултатът ще изглежда по следния начин:

      Забележка. Разделянето на низ по маска е отчитане на малки и големи букви . Затова не забравяйте да въведете символите в маската точно както се появяват в изходните низове.

      Голямото предимство на този метод е гъвкавостта. Например, ако всички оригинални низове имат стойности за дата и час и искате те да се появяват в различни колони, използвайте тази маска:

      * *ERROR:*Exception:*

      Преведена на обикновен английски език, маската инструктира добавката да раздели оригиналните низове на 4 части:

      • Всички символи преди първия интервал, открити в низа (дата)
      • Символи между първия интервал и думата ГРЕШКА: (време)
      • Текст между ГРЕШКА: и Изключение: (код за грешка)
      • Всичко, което идва след това Изключение: (текст на изключението)

      Надявам се, че този бърз и лесен начин за разделяне на низове в Excel ви е харесал. Ако сте любопитни да го изпробвате, по-долу е налична за изтегляне версия за оценка. Благодаря ви за четенето и се надявам да се видим в нашия блог следващата седмица!

      Налични изтегляния

      Формули за разделяне на клетките в Excel (.xlsx файл)

      Ultimate Suite 14-дневна напълно функционална версия (.exe файл)

      Майкъл Браун е отдаден технологичен ентусиаст със страст към опростяване на сложни процеси с помощта на софтуерни инструменти. С повече от десетилетие опит в технологичната индустрия, той е усъвършенствал уменията си в Microsoft Excel и Outlook, както и в Google Sheets и Docs. Блогът на Майкъл е посветен на споделянето на неговите знания и опит с други, предоставяйки лесни за следване съвети и уроци за подобряване на продуктивността и ефективността. Независимо дали сте опитен професионалист или начинаещ, блогът на Michael предлага ценни прозрения и практически съвети за извличане на максимума от тези основни софтуерни инструменти.