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

  • Поделись Этим
Michael Brown

В уроке рассказывается, как разделить ячейки в Excel с помощью формул и функции "Разделить текст". Вы узнаете, как разделять текст запятой, пробелом или любым другим разделителем, а также как разделить строки на текст и числа. .

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

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

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

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

    При разделении ячеек в Excel главное - найти позицию разделителя в текстовой строке. В зависимости от вашей задачи, это можно сделать с помощью нечувствительного к регистру SEARCH или чувствительного к регистру FIND. Как только вы узнали позицию разделителя, используйте функцию RIGHT, LEFT или MID для извлечения соответствующей части текстовой строки. Для лучшего понимания рассмотрим следующеепример.

    Предположим, у вас есть список SKU из Пункт-Цвет-Размер шаблон, и вы хотите разделить колонку на 3 отдельные колонки:

    1. Для извлечения название элемента (все символы до 1-го дефиса), вставьте следующую формулу в B2, а затем скопируйте ее вниз по столбцу:

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

      В этой формуле SEARCH определяет позицию 1-го дефиса ("-") в строке, а функция LEFT извлекает все символы, оставшиеся до него (вы вычитаете 1 из позиции дефиса, потому что не хотите извлекать сам дефис).

    2. Для извлечения цвет (все символы между 1-м и 2-м дефисами), введите следующую формулу в C2, а затем скопируйте ее в другие ячейки:

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

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

      Начальная позиция и количество символов для извлечения рассчитываются с помощью 4 различных функций ПОИСК:

      • Стартовый номер это позиция первого дефиса +1:

        ПОИСК("-",A2) + 1

      • Количество символов для извлечения : разница между положением 2-го дефиса и 1-го дефиса, минус 1:

        ПОИСК("-", A2, ПОИСК("-",A2)+1) - ПОИСК("-",A2) -1

    3. Для извлечения размер (все символы после 3-го дефиса), введите следующую формулу в D2:

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

      В этой формуле функция LEN возвращает общую длину строки, из которой вы вычитаете позицию 2-го дефиса. Разница - это количество символов после 2-го дефиса, и функция RIGHT извлекает их.

    Аналогичным образом вы можете разделить столбец по любому другому символу. Все, что вам нужно сделать, это заменить "-" на нужный разделитель, например пространство (" "), запятая (","), косая черта ("/"), толстая кишка (";"), точка с запятой (";") и так далее.

    Совет. В приведенных выше формулах +1 и -1 соответствуют количеству символов в разделителе. В данном примере это дефис (1 символ). Если ваш разделитель состоит из двух символов, например, запятой и пробела, то введите в функцию ПОИСК только запятую (",") и используйте +2 и -2 вместо +1 и -1.

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

    Для разделения текста по пробелам используйте формулы, аналогичные тем, что были продемонстрированы в предыдущем примере. Единственное отличие заключается в том, что для ввода символа переноса строки вам понадобится функция CHAR, поскольку вы не можете ввести его непосредственно в формулу.

    Предположим, что ячейки, которые вы хотите разделить, выглядят примерно так:

    Возьмите формулы из предыдущего примера и замените дефис ("-") на CHAR(10), где 10 - это код ASCII для перевода строки.

    • Для извлечения название элемента :

      =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: Выясните положение 1-й цифры в строке

    Альтернативным решением может быть использование следующей формулы для определения позиции первой цифры в строке:

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

    Как только позиция первой цифры найдена, вы можете разделить текст и числа с помощью очень простых формул LEFT и RIGHT.

    Для извлечения текст :

    =LEFT(A2, B2-1)

    Для извлечения номер :

    =RIGHT(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 - извлеченный номер, как показано на скриншоте ниже:

    Совет. Чтобы получить номер из любая позиция в текстовой строке используйте либо эту формулу, либо инструмент Extract.

    Вот как можно разделить строки в Excel, используя различные комбинации различных функций. Как вы видите, формулы далеко не очевидны, поэтому вы можете скачать образец рабочей книги Excel Split Cells, чтобы изучить их поближе.

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

    Как разделить ячейки в Excel с помощью инструмента Split Text

    Альтернативным способом разделения столбца в Excel является использование функции "Разделить текст", входящей в состав нашего пакета Ultimate Suite for Excel, которая предоставляет следующие возможности:

      Чтобы прояснить ситуацию, давайте рассмотрим каждый вариант по очереди.

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

      Выберите эту опцию, когда вы хотите разделить содержимое ячейки на каждое вхождение указанного символа .

      Для этого примера возьмем строки вида Пункт-Цвет-Размер Как вы помните, мы разделили их на 3 разных столбца с помощью 3 разных формул. А вот как вы можете добиться того же результата за 2 быстрых шага:

      1. Если у вас установлен пакет Ultimate Suite, выберите ячейки для разделения и нажмите кнопку Разделенный текст значок на Ablebits Data вкладка.

      2. Сайт Разделенный текст в правой части окна Excel откроется панель, и вы выполните следующие действия:
        • Расширить Разделение по характеру группу и выберите один из предопределенных разделителей или введите любой другой символ в поле Пользовательский коробка.
        • Выберите, как разделить ячейки - на столбцы или строки.
        • Просмотрите результат под Предварительный просмотр раздел, и нажмите кнопку Сплит кнопка.

      Совет. Если в ячейке может быть несколько последовательных разделителей (например, более одного символа пробела), выберите параметр Рассматривайте последовательные разделители как один коробка.

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

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

      Эта опция позволяет разделять строки с помощью любая комбинация символов Технически, вы разделяете строку на части, используя одну или несколько различных подстрок в качестве границ каждой части.

      Например, чтобы разделить предложение с помощью союзов " и " и " или ", расширить Разделение по струнам группу и введите строки-разделители, по одной на строку:

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

      Совет. Символы "или", а также "и" часто могут быть частью таких слов, как "апельсин" или "Андалузия", поэтому не забудьте напечатать a пространство до и после и и или для предотвращения разделения слов.

      А вот еще один реальный пример. Предположим, вы импортировали столбец дат из внешнего источника, которые выглядят следующим образом:

      5.1.2016 12:20

      5.2.2016 14:50

      Этот формат не является обычным для Excel, и поэтому ни одна из функций Date не распознает элементы даты или времени. Чтобы разделить день, месяц, год, часы и минуты на отдельные ячейки, введите следующие символы в ячейку Разделение по струнам коробка:

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

      Нажмите кнопку Сплит кнопку, и вы сразу же получите результат:

      Разделение ячеек по маске (шаблону)

      Разделение ячейки по маске означает разделение строки на части на основе шаблона .

      Эта опция очень полезна, когда вам нужно разделить список однородных строк на некоторые элементы, или подстроки. Сложность заключается в том, что исходный текст не может быть разделен на каждое вхождение данного разделителя, только на некоторые определенные вхождения. Следующий пример облегчит понимание.

      Предположим, у вас есть список строк, извлеченных из некоторого файла журнала:

      Вы хотите, чтобы дата и время, если есть, код ошибки и детали исключения были в трех отдельных колонках. Вы не можете использовать пробел в качестве разделителя, потому что есть пробелы между датой и временем, которые должны отображаться в одной колонке, и есть пробелы в тексте исключения, который также должен отображаться в одной колонке.

      Решением является разделение строки по следующей маске: *ERROR:*Exception:*

      Где звездочка (*) обозначает любое количество символов.

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

      А теперь расширьте Разделение по маске раздел на Разделенный текст панели, введите маску в поле Введите разделители и нажмите кнопку Сплит :

      Результат будет выглядеть примерно так:

      Примечание. Разделение строки по маске является с учетом регистра Поэтому обязательно вводите символы в маске точно так же, как они отображаются в исходных строках.

      Например, если все исходные строки имеют значения даты и времени, и вы хотите, чтобы они отображались в разных колонках, используйте эту маску:

      * *ERROR:*Exception:*

      Переведенная на простой английский язык, маска инструктирует дополнение разделить исходные строки на 4 части:

      • Все символы до 1-го пробела, найденные в строке (дата)
      • Символы между 1-м пробелом и словом ОШИБКА: (время)
      • Текст между ОШИБКА: и Исключение: (код ошибки)
      • Все, что приходит после Исключение: (текст исключения)

      Надеюсь, вам понравился этот быстрый и простой способ разделения строк в Excel. Если вам интересно попробовать, ознакомительная версия доступна для скачивания ниже. Благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!

      Доступные загрузки

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

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

      Майкл Браун — увлеченный технологический энтузиаст, стремящийся упростить сложные процессы с помощью программных инструментов. Имея более чем десятилетний опыт работы в технологической отрасли, он отточил свои навыки в Microsoft Excel и Outlook, а также в Google Sheets и Docs. Блог Майкла посвящен тому, чтобы делиться своими знаниями и опытом с другими, предоставляя простые советы и учебные пособия для повышения производительности и эффективности. Являетесь ли вы опытным профессионалом или новичком, в блоге Майкла вы найдете ценную информацию и практические советы, которые помогут вам максимально эффективно использовать эти важные программные инструменты.