Как в excel отделить цифры от текста в одной ячейке

Разделить текст в ячейке Excel по столбцам.

​Смотрите также​​ вернуть!!!​ привык както формулами​ ​ использовать одну (две)​​ не вся номенклатура.​ бампера следующая​ количество символов. Именно​ Из-за несовместимости структуры​_Boroda_​Очень нужно !!!​ получить, в соотв.​ заменой не получается,​ С1 можно ввести​
​ кода​​ используются номера кредитных​ ​ них сотрется и​ работают формулы в​​Рассмотрим,​
​GIG_ant​ обходится, если формулой​
​ UDF вместо кучи​ А там где​ ячейка E771SXA000​ поэтому мы называли​ данных при импорте​
​: Если сначала всегда​То что есть:​ с Правилами​
​ т.к эксель принимает​
​ формулу​0000000000​ карт или другие​ заменится на новую.​ Excel».​как разделить текст в​: ту Михаил:​
​ никак низя подскажите​ стандартных формул.​
​ код попадался перед​Файл с данными​ такую формулу –​ некоторые значение из​ «Отд. №»​То что нужно​
​Амортизатор задний 271.00.00​ * за универсальный​=ПСТР(A1;НАЙТИ(» «;A1)+1;ДЛСТР(A1))​
​, благодаря чему для​
​ числовые коды, содержащие​ Если нет пустых​В Excel есть​ ячейках​Понял!!! Вы хитро​ плз. как вставить​
​И кстати макросы​ текстом, так это​ прилагаю. Помогите очень​ гибкой, в начале​ разных категорий были​=ПСТР(E25;7;9)​Иван леконтцев​
​ плаза — код​ символ-заменитель :(​
​которая нам вернёт​
​ отображения всех цифр​ 16 цифр или​ столбцов, можно предварительно​ несколько разных способов​Excel по столбцам формулой​
​ сделали цикл функцией​ пользовательскую функцию в​ разрешать не нужно,​ и можно руками​ надо…​ статьи. Она подходит​
​ внесены в одну​Если нужно не​: текст с числами​ «271.00.00» или «271.00.00​Guest​ текст после кода​ десять кода продукта,​
​ более, необходимо использовать​ вставить столбцы. Как​ сгрупприровать данные в​. В Excel есть​ ПСТР(A1;СТРОКА($1:$30);1) добавив формулу​ ексель так что​ если UDF в​ исправить, а весь​sulfur​ для любых условий​ ячейку. Необходимо из​ текстом, а числами​

excel-office.ru

Разделить текст Excel на несколько ячеек.

​ в столбце А.​​ плаза»?​: Смотрите текстовые функции.​Подходит, нет?​​ включая ведущими нулями​ текстовый формат. Это​ это сделать, смотрите​ таблице по нашим​ специальная функция –​
​ массива. Значит цикл​ бы она была​ Personal.xls или как​ текст даже тот​: во-первых, если у​ при решении подобного​ этой ячейки отделить​Код=—ПСТР(E25;7;9)​ результаты в столбцах​Guest​ Например =ПОДСТАВИТЬ()​sergejkov​ в Excel. Дополнительные​ вызвано тем, что​
​ в статье «Как​ условиям, например, по​ «Текст по столбцам».​ все же можно​
​ в каждой новой​ у меня в​ кусок в 3​ вас так мало​ рода задач. Гибкость​ целые числовые значения.​vitaliyms​ В и С.​: Побольше бы данных,​kim​: Pavel55 , вау!​
​ сведения об этой​ в Excel используется​ добавить строку, столбец​ датам, по определенному​ Где она находится​ организовать(хоть и с​ книге и не​ MyFunc.xls:​ тыс позиций, очень​ номенклатуры, то ее​ придает ей сложная​ Пример таких неправильно​: А бывает ещё​разделить текст ячейки на несколько ячеек Excel.​в ячейках столбца​ хочется посмотреть из​: Для замены #​ на простом столбце​ проблеме читайте в​ точность до 15​
​ в Excel» тут.​ периоду, шагу цен,​ и как с​ такими наворотами, но​ спрашивала постоянно про​ ​=MyFunc.xls!ExtractString(A1)​​ много времени занимает.​ проще вручную перебрать​ комбинация из функций​ импортированных данных отображен​ и так​ В прописываете такую​ чего код состоит.​ на пусто можно​ все получилось!​ статье Создание или​ цифр. Любые цифры​Можно указать формат​
​ сумм, т. д.​ ней работать, смотрите​ можно !). Благодарю.​ включение макросов.​=MyFunc.xls!ExtractNumber(A1)​ Так что спасибо​во-вторых, у нас​ НАЙТИ. Пользователю формулы​
​ ниже на рисунке:​_Boroda_​
РАЗДЕЛИТЬТЕКСТ ИЗ ОДНОЙ ЯЧЕЙКИ НА НЕСКОЛЬКО В EXCEL.​ формулу:​ ..И формат желательно​ =ПОДСТАВИТЬ(A1;»#»;»»)​ОГРОМНОЕ СПАСИБО!!!​ удаление пользовательского числового​ после 15-й округляются​ Ячеек столбцов. Например,​

ЗАПИМАТЬ ТЕКСТ ИЗ ОДНОЙ ЯЧЕЙКИ В НЕСКОЛЬКОВ EXCEL.

​ Как это сделать,​ в статье «Разделить​ Беру формулу на​Hugo​А формулы тут​ всем огромное кто​ наименования не стандартизованы.​ достаточно определить закономерность​Сначала определим закономерность, по​: А почто сразу​
​=ЛЕВСИМВ (A1;НАЙТИ («​ *.xls​Для звездочки =ПОДСТАВИТЬ(A1;»*»;»»)​попробую это на​ формата с сохранением​ до нуля, что,​ если вы делите​ смотрите в статье​
​ текст Excel на​ вооружение.​: Если у Вас​ в копилке должны​ помог.​ Есть и такие,​ и указать их​ которой можно определить,​

excel-office.ru

Форматирование чисел в виде текста

​ не показываете все​​ «;A1)-1)​Владимир​Про артикулы не​ более сложных столбцах​ начальных нулей в​ наверняка, будет неприемлемым.​ столбец на дни​ «Как группировать в​ несколько ячеек» тут.​ЗЫ: Не в​ ещё нет Personal.xls,​ быть, или вот,​Добрый день, подскажите​ где номер идет​ в параметрах функций:​ что данные из​ варианты?​в ячейках столбца​: Это я был.​ понял…​ ;)​

​ числовых кодах.​Если число имеет текстовый​ и месяцы, год,​ Excel».​Здесь рассмотрим,​ обиду Hugo, ваш​ то его проще​ несколько версий:​ пожалуйста как дополнить​ в начале строки.​ будут это квадратные​ разных категорий, несмотря​=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ($E242;»Цех №»;ПОВТОР(» «;999));999*СТОЛБЕЦ(A242);999))​ С другую:​Guest​kim​sergejkov​В некоторых случаях номера​ формат, это легко​

​ то можно указать​Здесь рассмотрим,​как разделить в​ пример с макросом​ всего создать так​Function GetNumeric(t As​ вышеприведённый код, что​

  1. ​ Кто знает что​ скобки либо другие​ на то, что​vitaliyms​=ПРАВСИМВ (A1;ДЛСТР (A1)-ДЛСТР​

    ​: Пишет ИМЯ?​​: А кажись понял.​: на более сложных​ может отформатирован и​ определить, поскольку число​ «Формат данных столбца»​как разделить текст в​

  2. ​Excel формулой текст числа,​​ тоже вполне подходит.​​ — включаете запись​​ Range)​​ б цифры переносились​ там еще у​​ разделительные знаки. Например,​​ они находятся в​​: Прошу прощения но​​ (B1)-1)​

    ​Guest​​ Так?​​ данных не работает​​ хранящиеся в ячейках,​ будет выровнено в​ — «дата».​ ячейке Excel на​

    Применение текстового формата к числам​ коды на составляющие​Hugo​

​ макроса, как место​​Dim j As​

  • ​ не только с​ вас попадается.​ это могут быть​ одной и той​ нашёл ещё вариант​после копируйте ячейки​

  • ​: Вот пример​sergejkov​ :( — надо​ как текст, который​ ячейке по левому​Нажимаем кнопку «Готово».​ несколько ячеек.​.​: Чего обижаться. Я​ сохранения макроса выбираете​ Integer, l As​ латинскими буквами но​Я бы на​ пробелы если нужно​ же строке. В​ (я просто разбираюсь​ и обратно вставляете​vikttur​: вот теперь так​ отделить именно цифры(артикул)​ позже может привести​ краю, а не​ Получилось так.​​Например, предложение из​​У нас такая​ б такую формулу​ Personal.xls, записываете простой​ String​ и с русскими,​ вашем месте раскошелился​ разделить строку на​ нашем случае нас​ с новым документом​ но уже через​: Вас давно просят​ как нужно :)​

  • ​ в начале строки,​ к проблемам с​ по правому.​Так можно разделить текст​ первой ячейки разнести​ таблица с данными.​ не в жисть​ макрос (например, пишите​For j =​ и как можно​ на услуги фрилансера,​ слова и т.п.​ интересуют только числа,​ поэтому не все​ спец. вставку только​ четкие критерии кода.​ спасибо!​ а не просто​ вычислениями или Фрукты​Выделите ячейку или диапазон​

  • ​ из одной ячейки​ по словам в​В столбце А написан​ не сочинил :)​ в А1 что-нибудь).​ 1 To Len(t)​ убрать лишние перенесенные​ т.к. это задача​В данном примере функция​ которые находятся вне​ варианты сразу выложил)​

support.office.com

как разделить столбец на цифры и текст

​ значения. возможно потребуется​​Из «Подшипник 180202​куда дэньги слать​
​ первыймассив символов :(​ понятнее порядки сортировки.​
​ ячеек, содержащий числа,​ на большее количество​
​ несколько других ячеек,​ код, составленный через​

​Макросом проще, и​
​ Останавливаете запись.​If IsNumeric(Mid(t, j,​ символы, например убрать​ коммерческая и занудная.​ НАЙТИ во втором​
​ квадратных скобок. Каким​vikttur​ удалить лишнии пробелы…​ генератора» удалится «генератора»,​ ;)​иначе при отсутствии​

​ Это иногда происходит​​ которые требуется отформатировать​ столбцов. Например, здесь​ ФИО, дату, т.д.​

​ слеш из кода​ контроля больше -​Теперь через Alt+F11​ 1)) Then l​ первый дефис: -ПС-12212​ Мало кто захочет​ аргументе определяет положение​

​ способом можно быстро​

​: Это у кого​Вадим гусев​

​ Вам так и​ps вопрос про​ артикула в строке​

​ при импорте или​

​ как текст. Выделение​ разделили дату отдельно​

​Например, у нас​

​ и года. Нам​​ можно любые знаки​ заходите в редактор,​ = l &​
​Sub CodeToNextColumn() Dim​
​ решать ее для​ относительно первой закрывающейся​ выбрать из строк​

​ же такие кривые​​: Это делается еще​ нужно?​ *# , *##​ из наименования пропадает​ копировании чисел из​ ячейки или диапазона.​ по столбцам –​
​ есть список с​ нужно их разделить.​ препинания в любую​ слева в окне​
​ Mid(t, j, 1)​ cell As Range,​ вас бесплатно​ скобки. А в​

​ целые числа и​​ рученьки? Так испортить​
​ до Экселя.​Guest​
​ пока открыт.​ первое слово :(​ базы данных или​
​Совет:​ число, месяц, год.​ фамилиями, именами в​В ячейке В27​ группу добавить. Иногда​
​ пректов открываете свой​Next j​ rgX As Object​

​deniking​​ третьем аргументе эта​
​ поместить их в​ данные — это​Открываете эксель и​

​: Работает. Только мне​​Смысл в том​может быть есть​ другого источника данных.​
​ Можно также выделить пустые​
​Для большей наглядности​

​ одном столбце. Нам​​ пишем такую формулу.​

​ бывает нужно.​​ Personal.xls, в модуле​

​GetNumeric = Val(l)​​ Set rgX =​: Здравствуйте,​ же функция вычисляет​
​ отдельные ячейки? Эффективным​ еще уметь нужно.​

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

​ =ЗНАЧЕН(ЛЕВСИМВ(A27;НАЙТИ(«/»;A27;1)-1))​vikttur​ удаляете свой ненужный​End Function​ CreateObject(«VBScript.RegExp») rgX.IgnoreCase =​deniking​ положение нужного нам​ решением является гибкая​Логика: унифицируем разделитель​ нужный документ (я​ не коды.​

​ в конце строки​​ на буквы и​ необходимо преобразование чисел​

​ как текст, а​​ можно выделить некоторые​ в одном столбце,​Пояснение к формуле.​
​: Вторую формулу можно​
​ макрос, вместо него​Public Function ExtractNumber(S​

​ True ‘Ищем без​​. Это классическая задача​ текста в строке​

​ формула основана на​​ между текстами и​ так понял -​Есть мысли?​
​ указано количество еиниц​ цифры?​

​ из текстового формата​ затем ввести числа.​ строки, столбцы (например,​
​ а имена в​В конце формулы​ привязать к первой:​ помещаете текст функций.​ As String)​ различения по регистру​
​ на регулярные выражения.​ относительно второй открывающийся​ текстовых функциях.​ числами (меняем символ​
​ текстовый)​

​Guest​​ в упаковке(*6, *24​sergejkov​ обратно в числовой.​

​ Такие числа будут​​ итоговые) выделить другим​ другом столбце. Например,​ мы написали «-1».​

​=ПРАВСИМВ(A1;ДЛСТР(A1)-ДЛСТР(E1))​​Теперь эти функции​Dim i As​
​ (есть номера с​ Вот решение:​
​ квадратной скобки. Вычисление​

​В ячейку B3 введите​​ переноса и №​при этом откроется​: Это не страшно,​ и т.п.)​: пример сложных данных:​ Подробнее читайте Преобразование​ иметь текстовый формат.​ цветом, разделительной линией.​ чтобы определить пол​ Это для того,​

​Guest​ доступны в любой​
​ Integer, str As​ буквами в нижнем​
​Sub CodeToNextColumn() Dim​ в третьем аргументе​
​ следующую формулу:​

​ на пробел) и​ окно импорта данных.​

​ таких позиций не​​под # я​9450/4450 ХИЛЛс ДИЕТА​ чисел из текстового​На вкладке​ Подробнее, смотрите в​
​ людей в списке.​ чтобы знак слеша​: или еще проще:​ книге под эти​ String​ регистре) rgX.Pattern =​

​ cell As Range,​ более сложное и​Теперь скопируйте эту формулу​ извлекаем между пробелами​

​ В нем будет​​ очень много.​ подразумевал цифры. еще​ кон.д/кошек S/D 156гр*24​ формата в числовой.​Главная​

​ статье «Разделительная линия​​ Подробнее об этом​

​ не писался с​​=ПОДСТАВИТЬ(A1;E1;)​

​ пользователем на этом​​For i =​

​ «[-A-Zd]{2,}» ‘Номер -​​ rgX As Object​ оно подразумевает вычитание​
​ вдоль целого столбца:​ каждое второе слово:​ возможность задать тип​Думаю просто их​

​ бывают варианты /#​​5280 ХИЛЛc НБ​Можно также использовать функцию​в группе​
​ строк в таблице​

​ читайте в статье​​ кодом в столбце​DV_68​ компьютере в разделе​
​ 1 To Len(S)​ это последовательность не​

​ Set rgX =​​ одной большей длинны​Выборка чисел из строк​=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(» «&СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ($E244;»№»;» «);СИМВОЛ(10);» «));»​ разделителей полей.​
​ так4 и оставить​ и /##​ Корм сух.д/КОТЯТ Курица/овощи​ текст для преобразования​Число​

​ Excel» тут.​ «В Excel по​ В.​
​: Можно пойти от​ «Определённые пользователем».​If InStr(1, «1234567890,»,​ менее 2-х символов,​
​ CreateObject(«VBScript.RegExp») rgX.IgnoreCase =​ текста от меньшей.​ в отдельные ячейки.​

​ «;ПОВТОР(» «;99));99*СТОЛБЕЦ(A244)*2;99))​​Sm​vikttur​
​вот :(​ 300гр*6​ числа в текст​щелкните стрелку рядом​Можно разделить ячейку​
​ имени определить пол».​Копируем формулу по​ обратного, тогда без​

​Макросы можно не​​ Mid(S, i, 1))​ состоящая ‘из дефисов,​
​ True ‘Ищем без​

​ А чтобы учитывать​​​
​_Boroda_​
​: А что, в​
​: Пытать Вас, что​
​kim​
​2806 12589 Brit​

​ в заданном числовом​ с полем​ по диагонали и,​
​Выделяем ячейки, текст​

planetaexcel.ru

Как в Excel отделить текст от цифры в одной ячейке и перенести из по другим. (в пояснении скрины)

​ столбцу. Получится так.​

​ массива.​

​ разрешать, по крайней​​ <> 0 Then​ латинских букв и​ различения по регистру​ еще 2 пробела​
​Функция ПСТР возвращает текстовое​: Охохохонюшки​ славной Курдюмовке таперича​
​ ли? Что предпочитаете​: Я так понимаю,​
​ Care Cat Light​ формате. Примеры этот​
​Числовой формат​ в каждой части​
​ в которых нужно​В столбце С устанавливаем​Сначала цифры:​ мере на 2000​ str = str​ цифр. Application.ScreenUpdating =​

​ (есть номера с​​ следует вычитать число​ значение содержащие определенное​
​=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(» «&СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ($E244;СИМВОЛ(10);» «);»№»;» «));»​ не модно различать​ — средневековье или​ Вы вообще хотите​ д/стареющих кошек, склонных​
​ способ сохранения начальных​и выберите пункт​ написать текст. Читайте,​ разделить или весь​ формат «Дата». Какими​

​=—ПРАВСИМВ(A1;СЧЁТ(ПОИСК({0:1:2:3:4:5:6:7:8:9};A1)))​​ так, может на​ & Mid(S, i,​ False ‘Отключаем обновление​ буквами в нижнем​ 3. В результате​
​ количество символов в​ «;ПОВТОР(» «;99));99*СТОЛБЕЦ(A244)*2;99))​ понятия «число» и​
​ электрический стул? :)​ от них избавиться?​
​ к полноте всех​ нулей в числовых​
​Текстовый​

​ как это сделать,​​ столбец.​ способами установить формат,​Затем остальное:​ 2003/7/10 иначе, не​ 1)​ экрана для ускорения​ регистре) rgX.Pattern =​ чего получаем правильное​ строке. Аргументы функции:​_Boroda_​ «цифра» ?​Вы написали, что​

Отделить в ячейки буквы от цифр (Формулы/Formulas)

​Guest​​ пород 7,5кг​ кодахсм. Дополнительные сведения​
​.​ в статье «Как​Заходим на закладке «Данные»​ смотрите в статье​=ПОДСТАВИТЬ(A1;C1;)​ знаю.​Next​

​ процесса. Set cell​​ «[-A-Zd]{2,}» ‘Номер -​
​ количество символов в​​Первый аргумент – это​

​: Виктор​​> В нем​ формула работает, значит,​
​: Про звездочки вам​

​ПРО ПАК БИСКВИТ​​ об использовании функции​Примечание:​
​ разделить ячейку в​
​ в раздел «Работа​ «Число Excel. Формат»​
​DV_68​

​GIG_ant​​ExtractNumber = str​ = Cells(1) ‘Начинаем​

​ это последовательность не​​ разделенной строке. С​ ссылка на ячейку​vikttur​
​ будет возможность задать​

​ кодом является все,​​ ведь давно ответили.​ Смат Риводс Мини​ текст отображается функция​ Если пункт​ Excel» здесь.​ с данными» и​

​ здесь.​​: Поторопился, при одинаковых​: Спасибо Hugo.​End Function​ с верхней левой​ менее 2-х символов,​
​ помощью такой гибкой​ с исходным текстом.​: Это же надо…​ тип разделителей полей​ что после последнего​ Ответы читали?​ 200гр​
​ текст.​Текстовый​

​Удобнее работать в​​ выбираем функцию «Текст​
​В ячейке С27​ цифрах не пройдет((​

​Буду пробывать, я​​Public Function ExtractString(S​beer beer beer

​ ячейки активного листа.​​ состоящая ‘из дефисов,​ формулы можно делать​Второй аргумент – это​:)

​ Одинаковой дорогой идете,​​А как быть​hands​ пробела?!​

​Guest​​kim​sergejkov​не виден, прокрутите​

excelworld.ru

Как разделить текст по ячейкам формула в Excel

​ таблице, где в​ по столбцам». В​ пишем такую формулу.​kim​ понимаю что язык​ As String)​ While Not IsEmpty(cell)​ латинских букв и​ выборку разной длинны​ позиция первого символа,​ товарищи​ с​»Подшипник 180202 генератора»​: Даже не знаю​: =ЕСЛИ(ЕЧИСЛО(—ЛЕВСИМВ(A1;1));ЛЕВСИМВ(A1;МИН(ПОИСК(«/»;A1);ПОИСК(» «;A1))-1);A1)​: Имеем столбец с​ список до конца​ ячейках не видны​ появившемся окне «Мастер​ =ДАТАЗНАЧ(ПСТР(A27;НАЙТИ(«/»;A27;1)+1;255))​: Можно еще:​ программирования намного гибче​Dim i As​ ‘Идем по ячейкам​

Как разделить текст на две ячейки Excel

​ цифр. Application.ScreenUpdating =​ разделенного текста из​ с которого должна​vitaliyms​с. Бiльшая Курдюмiвка​ — где здесь​ как Вас отблагодарить!​Для первого столбца.​ подобным содержаним:​ с помощью полосы​ нули. Как их​ текстов», в строке​Пояснение в формуле.​=—ПРАВСИМВ(A1;СЧЁТ(ИНДЕКС(-ПСТР(A1;СТРОКА($1:$99);1);)))​

Строки для разделения на ячейки.

​ чем стандартные формулы​ Integer, str As​ вниз, пока не​ False ‘Отключаем обновление​ разных длинны исходных​ начинаться разделенная строка.​:​ 00789​ текст, где код?​Это именно то,​ По аналогии для​0202 Гантеля резиновая​ прокрутки.​ убрать, скрыть, заменить,​ «Формат исходных данных»​В формуле написали​=ПРОСМОТР(9E+307;—ПРАВСИМВ(A1;СТРОКА($1:$15)))​ екселя, и все​ String​ дойдем до пустой.​

​ экрана для ускорения​ строк.​

​Последний аргумент – это​СПАСИБО​

Текст разбит на ячейки.

​?)​»Подножки Universal Great​

​ что нужно!​

Описание формулы для разделения текста по ячейкам:

​ второго напишите сами?​ 150 мм​Числовой формат списка​ читайте в статье​

  1. ​ указываем – «С​ «+1» — это​Ivian​
  2. ​ таки жалко что​For i =​ ‘Если ячейка -​ процесса. Set cell​
  3. ​deniking​ количество символов, которое​buchlotnik​Саша русанов​

​ Wall Hover» -​Оромнейшая Вам благодарность!​kim​020543 Кольцо резиновое​ в Excel Online​ «Как убрать нули​ разделителями». Нажимаем кнопку​ значит, чтобы в​: Здравствуйте! Столкнулся с​ есть такие задачи​ 1 To Len(S)​ не объединенная и​ = Cells(1) ‘Начинаем​: Доброго времени суток.​ должна содержать разделенная​: до кучи на​: Встроенный бейсик в​ здесь, похоже, без​Максим​: Кстати если для​ 70 мм​Советы:​ в Excel».​

​ «Далее».​ ячейке с датой​ проблемой изъятия цифр​ которые невозможно реализовать​If InStr(1, «QWERTYUIOPASDFGHJKLZXCVBNM,.-<>=*/​ в ней есть​ с верхней левой​ Помогите человеку, который​ строка.​ регулярках с паттерном​ нем напиши программу​ кода?​: Помогите разобраться. Нужно​ первой строки правильно​02064 Кольцо резиновое​ ​Примечание:​Здесь указываем в строке​ не был написан​ из текста (формат​ только силами ексель(без​ «, UCase(Mid(S, i,​ номер согласно шаблону​ ячейки активного листа.​ в VBA не​С первым аргументом ПСТР​

​ «d+»​ читаешь ячейку распознаешь​»Подрамник двигателя на​ удалить код наименований​ так — 9450/4450​ 80 мм​Чтобы использовать десятичные знаки​Мы стараемся как​ «Символом – разделителем​ слеш (косая черточка).​ ячейки: общий). Покопав​ ВБА). Может в​ 1))) <> 0​ — копируем номер​ While Not IsEmpty(cell)​ шарит, а слышал​ все понятно –​Часто приходится оптимизировать структуру​ знаки по кодам​ BQб» — с​ товаров который стоит​то достаточно​Подскажите пожалуйста:​ в числах, хранящихся​ можно оперативнее обеспечивать​ является» — «пробел».​«255» — это​ форум нашел эту​ будущем разработчики включат​

exceltable.com

Нужен макрос для Excel, отделяющий текст от цифр

​ Then str =​​ вправо. If Not​ ‘Идем по ячейкам​ только поверхностно.​ это ссылка на​ данных после импорта​
​ в ansi и​ этим что?​ вконце. в exel​=ЕСЛИ(ЕЧИСЛО(—ЛЕВСИМВ(A1;1));ЛЕВСИМВ(A1;ПОИСК(» «;A1)-1);A1)​Как разделить цифровой​ как текст, возможно,​ вас актуальными справочными​ Поставили «пробел», потому​ количество символов, которые​ тему и вот​ в стандарт какие​
​ str & Mid(S,​ cell.MergeCells And rgX.Test(cell)​
​ вниз, пока не​Задача такая, в​
​ ячейку A3. Второй​ в Excel. Некоторые​
​ вставляешь или в​
​Guest​ не очень силен,​Dophin​
​ код(часто кроме цифр​ придется вводить эти​ материалами на вашем​
​ что в нашем​ могут отобразиться в​ данная комбинация сработала:​
​ нибудь простейшие циклы​ i, 1)​ Then cell.Offset(, 1)​

​ дойдем до пустой.​​ exel есть список​ аргумент мы вычисляем​ разные значения попадают​ одну ячейку или​
​: даже если так​ разбираюсь по-тихоньку, поэтому​: давайте пример, а?)​ содержит «/») и​ числа с десятичными​ языке. Эта страница​ списке имя и​ ячейке. По факту,​
​Но все испортил​ (или запросы) вот​Next​ = rgX.Execute(cell)(0) Set​ ‘Если ячейка -​ деталей которые с​ с помощью функции​ в одну и​

​ в другую (цифры​​ всё будет работать,замечательно.​​ лучше готовую формулу.​​kim​ текста в разные​ разделителями.​
​ переведена автоматически, поэтому​ фамилия написаны через​ отображается столько символов,​ / (слэш). Число​ тогда было бы​ExtractString = Application.Trim(str)​ cell = cell.Offset(1)​ не объединенная и​ номером находятся в​ НАЙТИ(«]»;A3)+2. Она возвращает​ туже ячейку образуя​ в одном диапазоне​просто на самом​ Очень нада. Формат​: Приблизительно так…​ столбцы?​При вводе номер, который​ ее текст может​ пробел. Если бы​ сколько есть в​ выходит совсем другое.​ полегче!​End Function​ Wend Application.ScreenUpdating =​ в ней есть​ одной ячейке, номер​ очередной номер символа​ целую строку как​ таблицы, русские буквы​ деле есть и​ у всех ячеек​sergejkov​psкакто я виде​ начинается с нуля​ содержать неточности и​ имя и фамилия​ дате (после слеша).​Надо изъять цифры​Михаил С.​Function NumbersOnly(srcStr As​
​ True ‘Включаем обновление​ номер согласно шаблону​ состоит из цифр​ первой закрывающейся квадратной​

​ одно значение. Возникает​​ вроде за 180​ позиции без номеров,​ примерно такой​: :( совсем не​ на форуме подобный​ — например, кода​ грамматические ошибки. Для​ (др. слова) были​Копируем формулу по​ из подобной строки:​: К данной задаче​ String) As String​ экрана. End Sub​ — копируем номер​ и символов латинского​ скобки в строке.​ вопрос: как разбить​

​ и далее)​ есть номера перед​Активатор замка электрический​ понимаю как это​ код, но сейчас​ продукта — Excel​ нас важно, чтобы​ написаны через запятую,​ столбцу. Получится так.​Образец №112/54​ это не относится.​
​Dim objRegEx As​GIG_ant​ вправо. If Not​ алфавита, нужно его​ И к этому​ строку на ячейки​vitaliyms​ текстом.​ S11-6205360​ работает :(((((​ не могунайти. да​ приведет к удалению​ эта статья была​ то мы бы​Внимание!​Но и это​Hugo​ Object​: Добрый всем день.​ cell.MergeCells And rgX.Test(cell)​ отделить от названия​ номеру мы добавляем​ в Excel. Программа​: Уважаемые умы прошу​Но мне нужно​Амортизатор 5-й двери​буду вникать и​ и обрабатывал он​ ноль по умолчанию.​ вам полезна. Просим​ указали разделителем «запятая».​Если числа разделены​ еще не все,​: Не относится, но​Set objRegEx =​Данная тема уже​ Then cell.Offset(, 1)​ и перенести в​ еще число 2,​

CyberForum.ru

Отделить формулой текст от чисел

​ располагает разными поисковыми​​ помощи ещё раз.​
​ чтоб уюрать эти​ правый 6309020-0000​ RTFM :(​ не совсем корректно.​ Если это не​ вас уделить пару​В этом окне, в​ не слешем, а​ к полученным цифрам​ всёж использовать комбинацию​ CreateObject(«VBScript.RegExp»)​ обсуждалась но именно​

​ = rgX.Execute(cell)(0) Set​​ соседний столбик.​ так как нам​
​ функциями: одни ищут​В этой же​ номера​Амортизатор задний 271.00.00​
​остается вопрос с​New​ является вас не​ секунд и сообщить,​ разделе «Образец разбора​ другим знаком, то​

​ надо добавить числовой​
​ из 4-х формул,​

​With objRegEx​ в таком разрезе​ cell = cell.Offset(1)​Пример *** ****Кронштейн​

​ нужен номер символа​ по ячейках другие​
​ таблице нужно чтобы​Guest​ плаза​
​ отсутствием артикула в​: Я не специалист​
​ устраивают, можно создать​ помогла ли она​ данных» сразу видно,​ в формуле указываем​
​ префикс (пусть 42),​
​ с повторами, массивную​
​.Global = True​

​ ответа не нашел.​ Wend Application.ScreenUpdating =​
​ заднего брызговика 57707XA270​ после пробела за​ ищут по содержимому​
​ в ячейке Н25​: Вот это, то​
​Амортизатор задний BQ2915050-60AO​ начале строки ПРО​ по формулам, но​ пользовательский числовой формат,​ вам, с помощью​ какие столбцы у​
​ это знак.​
​ как я понял,​
​ — это имхо​

​.Pattern = «[^0-9,]»​ Задача такова: есть​
​ True ‘Включаем обновление​*** ****Кронштейн заднего​ квадратной скобкой. В​
​ ячеек. Ведь выполнять​ было тоже самое​
​ что надо!!!!!!!​Нужно как то​ ПАК БИСКВИТ Смат​ попробую )​ который начинает Excel,​ кнопок внизу страницы.​
​ нас получатся. Нажимаем​
​Примеры других формул​
​ это можно осуществить​

​ перебор… могли мелкомягкие​ ‘»D»​
​ столбец содержащий значения:​ экрана. End SubС​
​ брызговика 7707XA280​ последнем аргументе функция​
​ поиск по текстовой​
​ что и в​
​Спасибо огромное!!!!!!!​ отделить эти номера​
​ Риводс Мини 200гр​Предположим, что текст​
​ чтобы сохранить начального​
​ Для удобства также​ кнопку «Далее».​
​ выбора данных с​

​ командой СЦЕПИТЬ. Файл​​ одну формулу придумать​

​NumbersOnly = .Replace(srcStr,​ несколько букв+несколько цифр.​ уважением, Aksima​*** ****Накладка заднего​ вычисляет какое количество​ строке, которая содержится​ ячейки Е25 только​Julia​Казанский​потому как вся​ «0202 Гантеля резиновая​ нуля. Например если​ приводим ссылку на​

​Здесь, в разделе​​ разными условиями смотрите​ прилагаю.​ на каждое действие.​ vbNullString)​ Возможно ли не​Скорее всего, для​ бампера E771SXA000​ символов будет содержать​ в ячейке ¬–​ цифры без букв​: вот пример​
​: Или четкий критерий,​ строка ереносится в​ 150 мм» находится​ ввода или вставки​ оригинал (на английском​ «Поместить в:» указываем​ в статье «Как​Заранее спасибо!​
​GIG_ant​End With​ применяя макросов отделить​ примера выбрали лишь​и надо​ разделенная строка после​
​ это также распространенная​китин​KH 8625—8шт.​ из чего состоит​ стлбец артикулов :(​ в ячейке А1,​

​ коды продуктов 10​​ языке) .​
​ диапазон столбцов, в​ сделать выбор в​Владимир​: К данной задаче​Set objRegEx =​ буквы от чисел​ часть всей номенклатуры​*** ****Кронштейн заднего​ разделения, учитывая положение​ потребность пользователей Excel.​: и вам здравствуйте!!!​BG 1802001-3—4шт.​ код, например цифры,​ps и еще​ то можно в​ значного на листе,​

​Если необходимо, чтобы приложение​​ которые поместятся новые​ ячейке Excel» тут.​

​: Помимо слэша, желательно​​ это не относится.{/post}{/quote}​ Nothing​ и расположить в​ .​ брызговика следующая ячейка​ квадратной скобки.​ Их мы и​как то так​

​KH 23020007—18шт.​​ знаки «-» и​ вопрос сразу -​

​ ячейку В1 ввести​ Excel будет изменить​ Excel воспринимало некоторые​ данные.​Как выделить в​ посмотреть и те​

​Пока не понял​​End Function​

​ соседних столбцах ?​Теле-ту​ 57707XA270​Обратите внимание! Что в​ будем использовать для​=ПСТР(E25;ПОИСК(«№»;E25)+1;25)​KH 8629/8—8шт.​ «.», латинские буквы.​ как избавиться от​ формулу​

​ номера следующим 0784367998​ типы чисел как​Внимание!​ ячейке из большого​

​ данные, которые сработали.​​ как работает, но​GIG_ant​Hugo​: Спасибо огромное за​
​*** ****Кронштейн заднего​ нашем примере все​ разделения строк.​vikttur​KH 23020008—12шт.​Или пример с​

​ возможны символов в​​=ЛЕВСИМВ(A1;НАЙТИ(» «;A1))​ для 784367998. В​
​ текст, можно применить​

​Столбцы этого диапазона​​ текста число, чтобы​
​ И поместите туда​

​ мою веру в​​: to Hugo​: Почему так макросов​ помощь!!! Действительно это​
​ брызговика следующая​
​ исходные и разделенные​
​Допустим на лист Excel​
​: Если номер всегда​

​подскажите пожалуйста как​​ ~30 строками в​ конце строки типа​

​которая нам вернёт​​ этом случае можно​
​ текстовый формат вместо​
​ должны быть пустыми,​

​ оно считалось, смотрите​​ формулу, которая это​ «негибкие» формулы екселя​я с макросами​ боитесь? :)​ только часть текса​ ячейка 7707XA280​ строки имеют разную​

​ были импортированные данные​ 3-значный:​ отделить символы которые​
​ Excel, что есть​ *# , *##​

​ значение кода «0202»​

​ создать пользовательский числовой​ числового. Например, если​ иначе информация в​ в статье «Не​ сделала.​ вам Михаил удалось​ не очень дружен,​Ведь намного проще​ как пример, а​

​*** ****Накладка заднего​

​ длину и разное​​ из другой программы.​=ПРАВБ(E25;3)​ находятся до —шт.​ и что надо​ («звездочка число») ?​А в ячейку​

planetaexcel.ru

​ формат, состоящий из​

Как разделить текст в ячейке Excel?

Добрый день уважаемый читатель!

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

Разобрать слитый текст на необходимые составляющие возможно произвести с помощью:

Мастер разбора текстов

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

Для выполнения задачи вызываем диалоговое окно «Мастер текстов (разбор)» и в 3 шага разделяем текст:

  1. Для начала нужно выделить данные, которые необходимо разделить, следующим шагом на вкладке «Данные» в разделе «Работа с данными» нажимаете иконку «Текст по столбцам» и в вызванном диалоговом окне мастера указываем формат рабочего текста. Выбираем 2 вида форматов:
  • С разделителями – это когда существует текст или символ, который условно будет отделять будущее содержимое отдельных ячеек;
  • Фиксированной ширины – это когда при помощи пробелов в тексте имитируется столбики одинаковой ширины.
  1. Вторым шагом, в нашем примере, указываем символ, выполняющий роль разделителя. В случаях, когда в тексте идут подряд пару разделителей, несколько пробелов, к примеру, то установка флажка для пункта «Считать последовательные разделители одним» укажет для Excel принимать их за один разделитель. Дополнительное условие «Ограничитель строк» поможет указать, что текстовые значения, содержащиеся в кавычках не делить (к примеру, название фирмы «Рудольф, Петер и Саймон»);
  2. Последним шагом, для уже разделённых столбиков, нужно указать в диалоговом окне мастера, предварительно выделив их, выбрать необходимый формат получаемых данных:
  • Общий – не проводит изменения данных, оставляя их в первоначальном виде, будет оптимальным выбором в большинстве случаев;
  • Текстовый – данный формат, в основном, необходим для столбиков с числовыми значениями, которые программа в обязательном порядке должна интерпретировать как текст. (К примеру, это числа с разделителем по тысяче или номер пластиковой карточки);
  • Дата – этот формат используется для столбиков с датами, кстати, формат самой даты можно выбрать в выпадающем списке.

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

Рассоединяем текст с помощью формул

Для этого способа нам понадобятся возможности сочетаний функций ПОИСК и ПСТР. При помощи функции ПОИСК мы будем искать все пробелы, которые есть между словами (например, между фамилией, именем и отчеством). Потом функцией ПСТР выделяем необходимое количество символов для дальнейшего разделения.

И если с первыми двумя словами понятно, что и как разделять, то разделителя для последнего слова нет, а это значит что нужно указать в качестве аргумента условно большое количество символов, как аргумент «число_знаков» для функции ПСТР, например, 100, 200 или больше.

А теперь поэтапно рассмотрим формирование формулы для разделения текста в ячейке:

  • Во-первых, нам необходимо найти два пробела, которые разделяют наши слова, для поиска первого пробела нужна формула: =ПОИСК(» «;B2;1), а для второго подойдет: =ПОИСК(» «;B2;C2+1);
  • Во-вторых, определяем, сколько символов нужно выделить в строке. Поскольку позиции разделителя мы уже определили, то символов для разделения у нас будет на один меньше. Значит, будем использовать функцию ПСТР для изъятия слов, с ячейки используя как аргумент «количество_знаков» результат работы предыдущей формулы. Для определения первого слова (Фамилии) нужна формула: =ПСТР(B2;1;ПОИСК(» «;B2;1)), для определения второго значения (Имя): =ПСТР(B2;ПОИСК(» «;B2;1)+1;ПОИСК(» «;B2;ПОИСК(» «;B2;1)+1) -ПОИСК(» «;B2;1)), а теперь определим последнее значение (Отчество): =ПСТР(B2;ПОИСК(» «;B2;ПОИСК(» «;B2;1)+1)+1;100).

В результате мы разделили ФИО на три слова, что позволит с ними эффективно работать.

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

Выдергиваем слова с помощью макросов VBA

Рассмотрим два способа разделить текст в ячейке:

  1. Выдергиваем отдельные слова по разделителю;
  2. Делим текст без пробелов.

Способ №1.

Поскольку вас интересует автоматическое деление текста, значит надо написать хорошую функцию на VBA и внедрить ее в рабочую книгу. Для начала переходим на вкладку «Разработчик» и выбираем «Visual Basic» или вызываем эту возможность с помощью горячего сочетания клавиш Alt+F11. (детальнее в статье «Как создать макрос в Excel»).

Создаем новый модуль в меню «Insert» наживаем пункт «Module» и переносим в него нижеприведенный код:

Как оставить в ячейке только цифры или только текст?

Вот бывает так: есть у Вас в ячейке некий текст. Допустим «Было доставлено кусков мыла 763шт.». Вам нужно из этого только 763 — чтобы можно было провести с этим некие математические действия. Если это только одна ячейка — проблем тут нет, а если таких ячеек пару тысяч? И к тому же все разные?

  • Было доставлено кусков мыла 763шт.
  • Всего пришло 34
  • Тюбики — 54 доставлено
  • и т.д.

Никакой зацепки для извлечения данных. Пару тысяч таких строк удалять вручную весьма утомительное занятие, надо сказать. Да еще и не быстрое.
Есть несколько вариантов решения подобной задачи.

СПОСОБ 1: не используем макросы
можно применить формулу массива, вроде такой:
=ПСТР( A1 ;МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 )));ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 ))-МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 )))+1)
Три важных момента:

  1. Формула вводится в ячейку сочетанием клавиш Ctrl+Shift+Enter, т.к. является формулой массива. Подробнее про эти формулы читайте в статье: Что такое формула массива
  2. в таком виде формула работает с текстом, количество символов в котором не превышает 99. Чтобы расширить необходимо в формуле во всех местах заменить СТРОКА( $1:$99 ) на СТРОКА( $1:$200 ) . Т.е. вместо 99 указать количество символов с запасом. Только не увлекайтесь, иначе может получиться, что формула будет работать слишком долго
  3. формула не обработает корректно текст » Было доставлено кусков мыла 763шт., а заказывали 780 » и ему подобный, где числа раскиданы по тексту.

Теперь коротко разберем формулу на примере фразы: Было доставлено кусков мыла 763шт.

  • в A1 сам текст, из которого необходимо извлечь числа: Было доставлено кусков мыла 763шт., а заказывали 780
  • блок: МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 )))
    вычисляет позицию первой цифры в ячейке — 29
  • блок: ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 ))
    вычисляет позицию последней цифры в ячейке — 31
  • в результате получается: =ПСТР( A1 ;29;3129+1)
    функция ПСТР извлекает из текста, указанного первым аргументом( A1 ) текст, начиная с указанной позиции(29) с количеством символов, указанным третьим аргументом(3129+1)
  • И в итоге:
    =ПСТР( A1 ;29;3129+1)
    => =ПСТР( A1 ;29;2+1)
    => =ПСТР( A1 ;29;3)
    => 763

Может быть задача проще — необходимо извлечь односоставной текст, убрав цифры вначале и в конце строки, учитывая, что сам текст всегда следует после разделителя(например, тире):
12.08-АГСВ2
12.08-АГСВ1
01.03-ОВ2
12.03-КЖ6.1
Из этих данных надо получить только текст после тире(-) и отсечь цифры на конце:
АГСВ
АГСВ
ОВ
КЖ
Формула будет работать почти по тому же принципу, что и формула выше, но она проще:
=ПСТР( A1 ;ПОИСК(«-«; A1 )+1;ПОИСКПОЗ(ИСТИНА;ЕЧИСЛО(—ПСТР(ПСТР( A1 ;ПОИСК(«-«; A1 )+1;999);СТРОКА( $1:$99 );1));0)-1)
В данном случае мы при помощи ПОИСК(«-«; A1 ) ищем сначала позицию тире, далее при помощи ПОИСКПОЗ(ИСТИНА;ЕЧИСЛО(—ПСТР(ПСТР( A1 ;ПОИСК(«-«; A1 )+1;999);СТРОКА( $1:$99 );1));0) находим именно в отсеченном тексте позицию первой цифры. Передаем эти значения в ПСТР , которая отбирает из этого текста все от первого тире(+1) до первого числа, идущего после текста.

СПОСОБ 2: используем макросы
Самый главный недостаток метода при помощи формулы, приведенной выше — из текста » Было доставлено кусков мыла 763шт., а заказывали 780 » формула вернет не только числа, а и текст между первой и последней цифрой: 763шт., а заказывали 780 .
Решить же проблему извлечения цифр даже из такого текста при помощи VBA куда проще и гибче. Плюс можно не только цифры извлекать, но и наоборот — цифры удалить, а извлечь только текст. Ниже приведен код пользовательской функции, которая поможет извлечь из строки только числа либо только текст. Иными словами, результатом функции будет либо только текст, либо только числа.

Function Extract_Number_from_Text(sWord As String, Optional Metod As Integer) ‘sWord = ссылка на ячейку или непосредственно текст ‘Metod = 0 – числа ‘Metod = 1 – текст Dim sSymbol As String, sInsertWord As String Dim i As Integer If sWord = «» Then Extract_Number_from_Text = «Нет данных!»: Exit Function sInsertWord = «» sSymbol = «» For i = 1 To Len(sWord) sSymbol = Mid(sWord, i, 1) If Metod = 1 Then If Not LCase(sSymbol) Like «*[0-9]*» Then If (sSymbol = «,» Or sSymbol = «.» Or sSymbol = » «) And i > 1 Then If Mid(sWord, i — 1, 1) Like «*[0-9]*» And Mid(sWord, i + 1, 1) Like «*[0-9]*» Then sSymbol = «» End If End If sInsertWord = sInsertWord & sSymbol End If Else If LCase(sSymbol) Like «*[0-9.,;:-]*» Then If LCase(sSymbol) Like «*[.,]*» And i > 1 Then If Not Mid(sWord, i — 1, 1) Like «*[0-9]*» Or Not Mid(sWord, i + 1, 1) Like «*[0-9]*» Then sSymbol = «» End If End If sInsertWord = sInsertWord & sSymbol End If End If Next i Extract_Number_from_Text = sInsertWord End Function

Данный код необходимо поместить в стандартный модуль книги. После этого в мастере функций в категории Определенные пользователем (User Defined) будет доступна функция Extract_Number_from_Text , которую можно будет применять как обычную функцию на листе.
Для извлечения только чисел
=Extract_Number_from_Text( A1 ; 0)
или
=Extract_Number_from_Text( A1 )
Для извлечения только текста
=Extract_Number_from_Text( A1 ; 1)

Подробнее про создание пользовательских функции и их применении можно почитать в статье Что такое функция пользователя(UDF)?

Помимо функции пользователя решил выложить и вариант с использованием диалогового окна:

Выбрать ячейку или диапазон с текстом(Лист1! $A$2:$A$10 ) — здесь указывается диапазон с исходными значениями, из которого необходимо оставить только числа или только текст.

Выберите ячейку для вывода данных(Лист1! $A$2 ) — указывается одна ячейка, с которой начать вывод преобразованных значений. В качестве этой ячейки можно выбрать первую ячейку диапазона с текстом(исходного) если необходимо произвести изменения сразу в этих же ячейках(как на рисунке). Осторожнее с таким указанием, т.к. результат работы кода может быть не совсем таким, какой вы ожидали, а вернуть прежние данные уже не получится — если только не закрыть файл без сохранения изменений.

Оставить только цифры, Оставить только текст— думаю не надо пояснять. Здесь выбираем, что оставить в качестве результата.

Небольшое дополнение к использованию кода
В коде есть строка:

If LCase(sSymbol) Like «*[0-9.,;:-]*» Then

Данная строка отвечает за текстовые символы, которые могут встречаться внутри чисел и которые надо оставить(не удалять наравне с другими не числовыми символами). Следовательно, если какие-то из данных символов не нужны в конечном тексте — их надо просто удалить. Например, чтобы оставались исключительно числа(без запятых и пр.):

If LCase(sSymbol) Like «*[0-9]*» Then

если надо исключить из удаления помимо цифр точку(т.е. будут извлечены цифры и точка):

If LCase(sSymbol) Like «*[0-9.]*» Then

и т.д.
Скачать пример:

Число из текста и наоборот.xls (99,0 KiB, 12 857 скачиваний)

Статья помогла? Поделись ссылкой с друзьями!

Поиск по меткам

Здравствуйте скрипт при обработке ячейки:
Пр-ка ТНВД 5301 (пер.) 50-1006315-Б2 выдает: 530150-1006315-2
вопрос есть возможность что бы он брал только последних 15-20 сим.
с заглавными А-Я, или хотя бы цифирки.
Буду признателен за предложения.
Возможно есть проще варианты(12000 стр.записеи) обрезани до последних 10-20сим.

Александр, последние 15-20 символов можно взять при помощи функции ПРАВСИМВ(RIGHT). Так же можно совместить:
=Extract_Number_from_Text(ПРАВСИМВ(A1))
Более сложные вариации извлечения делаются под конкретные данные с учетом различных нюансов.

Добрый день!
Спасибо за замечательный код! Подскажите пожалуйста, как оставить среди неудаляемых символов пробел?
Например, в ячейке было «Т-образный поворот SPB-RF60 TE-200 SS316L».
Ваш код оставляет (после некоторой модификации) «60200316».
А хотелось бы «60 200 316».
Я не понимаю как вписать пробел в строку
Like «*[0-9.,;:-]*» Then

А всё разобрался, пробел нужно указывать в середине ряда, а не в конце.

Здравствуйте.
Использовал функцию, вызванную на VBA, все нормально, при вызове мастера функций он нормально отрабатывает
Но при выполнение в эксель, выскакивает сообщение, что здесь используется циклическая ссылка и потом появляется значение 0. В чем дело?

Добрый день!
А что надо добавить в код/формулу чтобы из строки
«ТП ВЕТЧИННАЯ ВАРЕНАЯ 400Г (162854) /Ш/»
— вытащить только цифры до буквы Г?
— или без содержимого скобок
Заранее большое спасибо!

Нашла пока только такой вариант решения:
=ЛЕВСИМВ(B5;ПОИСК(«г «;B5)-1)
Затем в другой колонке
=ЕСЛИОШИБКА(ПСТР(C5;МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(C5;СТРОКА($1:$99);1));СТРОКА($1:$99)));ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР(C5;СТРОКА($1:$99);1));СТРОКА($1:$99))-МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(C5;СТРОКА($1:$99);1));СТРОКА($1:$99)))+1);1000)
И в третьей колонке = из предыдущей и преобразовать в числовой формат макросом
Результат достигнут, но если расскажите как можно было сделать изящнее — обязательно запомню))

Public Function RegExpExtract(Text As String, Pattern As String, Optional Item As Integer = 1) As String On Error GoTo ErrHandl Set regex = CreateObject(«VBScript.RegExp») regex.Pattern = Pattern regex.Global = True If regex.Test(Text) Then Set matches = regex.Execute(Text) RegExpExtract = matches.Item(Item — 1) Exit Function End If ErrHandl: RegExpExtract = CVErr(xlErrValue) End Function

И играйтесь регулярками, на лету выбирая нужные части текста. Инфы с примерами, благо, достаточно.

Денис, спасибо. Но есть все равно пара замечаний, раз уж предлагаете воспользоваться функцией. Неплохо было бы добавить и пример применения. Иначе как тому, кто зайдет почитать использовать Ваше решение?
Я умею использовать регулярки и по коду вижу, что помимо текста надо указать не только шаблон, но еще и номер элемента, который получить. Что является немаловажным замечанием.
Для извлечения первого числа(без разделения групп разрядов) — =(RegExpExtract( A1 ;»d»;1)
Для извлечения первого текста(что не очень удобно, если чисел в тексте много) — =(RegExpExtract( A1 ;»D»;1)
Оба варианта слегка халтурны, но для понимания общего смысла использования подойдут.
В общем и целом я бы в функцию еще параметр IgnoreCase добавил(при извлечении текста по шаблону может потребоваться). Да и Multiline тоже иногда может играть роль(зависит от шаблона и текста), поэтому его тоже лучше ставить в True сразу в случае с такими функциями.

Поделитесь своим мнением

Комментарии, не имеющие отношения к комментируемой статье, могут быть удалены без уведомления и объяснения причин. Если есть вопрос по личной проблеме — добро пожаловать на Форум

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

Раннее мы рассматривали возможность разделить текст по столбцам на примере деления ФИО на составные части.

Для этого мы использовали инструмент в Excel «Текст по столбцам».

Видео: Разделить текст по столбцам в Excel / Text to Columns (Урок 6) [Eugene Avdukhov, Excel Для Всех]

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

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

Содержание

  • 1 Пример 1. Делим текст с ФИО по столбцам с помощью формул
  • 1.1 Приступаем к делению первой части текста — Фамилии
  • 1.2 Приступаем к делению второй части текста — Имя
  • 1.3 Приступаем к делению третьей части текста — Отчество
  • 2 Пример 2. Как разделить текст по столбцам в Excel с помощью формулы

Пример 1. Делим текст с ФИО по столбцам с помощью формул Если рассматривать на примере деления ФИО, то разделить текст можно будет с помощью текстовых формул Excel, используя функцию ПСТР и НАЙТИ, которую мы рассматривали в прошлых статьях.

В этом случае вам достаточно вставить данные в определенный столбец, а формулы автоматически разделят текст так как вам необходимо. Давайте приступит к рассмотрению данного примера. У нас есть столбец со списком ФИО, наша задача разместить фамилию, имя отчество по отдельным столбцам.

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

Итак, добавим столбцы позиция 1-го и 2-го пробелам. С помощью функции НАЙТИ, как мы уже рассматривали в предыдущей статье найдем позицию первого пробелам. Для этого в ячейке «H2» пропишем формулу

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

Значит на необходимо поменять третий аргумент в функции НАЙТИ — начальная позиция — то есть позиция с которой функция будет искать искомый текст.

Мы видим, что второй пробел находится в любом случае после первого пробела, а позицию первого пробела мы уже нашли, значит прибавив 1 к позиции первого пробелам мы укажем функции НАЙТИ искать пробел начиная с первой буквы после первого пробела.

Функция будет выглядеть следующим образом:

Далее протягиваем формулу и получаем позиции 1-го и 2-го пробела.

Приступаем к делению первой части текста — Фамилии

Для этого мы воспользуемся функцией ПСТР, напомню синтаксис данной функции:

=ПСТР(текст- начальная_позиция- число_знаков), где

  • текст — это ФИО, в нашем примере это ячейка A2;
  • начальная_позиция — в нашем случае это 1, то есть начиная с первой буквы;
  • число_знаков — мы видим, что фамилия состоит из всех знаков, начиная с первой буквы и до 1-го пробела. А позиция первого пробела нам уже известна. Это и будет количество знаков минус 1 знак самого пробела.

Формула будет выглядеть следующим образом:

Приступаем к делению второй части текста — Имя

Снова используем функцию =ПСТР(текст- начальная_позиция- число_знаков), где

  • текст — это тот же текст ФИО, в нашем примере это ячейка A2;
  • начальная_позиция — в нашем случае Имя начинается с первой буква после первого пробела, зная позицию этого пробела получаем H2+1;
  • число_знаков — число знаков, то есть количество букв в имени. Мы видим, что имя у нас находится между двумя пробелами, позиции которых мы знаем. Если из позиции второго пробела отнять позицию первого пробела, то мы получим разницу, которая и будет равна количеству символов в имени, то есть I2-H2

Получаем итоговую формулу:

Приступаем к делению третьей части текста — Отчество

И снова функция =ПСТР(текст- начальная_позиция- число_знаков), где

  • текст — это тот же текст ФИО, в нашем примере это ячейка A2;
  • начальная_позиция — Отчество у нас находится после 2-го пробелам, значит начальная позиция будет равна позиции второго пробела плюс один знак или I2+1;
  • — в нашем случае после Отчества никаких знаков нет, поэтому мы просто может взять любое число, главное, чтобы оно было больше возможного количества символов в Отчестве, я взял цифру с большим запасом — 50

Видео: Формулы в Эксель

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

Это очень просто сделать. Мы видим, что расчет первого пробела находится в ячейке H2 — НАЙТИ(» «-A2-1), а расчет второго пробела в ячейке I2 — НАЙТИ(» «-A2-H2+1) .

Видим, что в формуле ячейки I2 встречается H2 меняем ее на саму формулу и получаем в ячейке I2 вложенную формулу НАЙТИ(» «-A2-НАЙТИ(» «-A2-1)+1)

Смотрим первую формулу выделения Фамилии и смотрим где здесь встречается H2 или I2 и меняем их на формулы в этих ячейках, аналогично с Именем и Фамилией

  • Фамилия =ПСТР(A2-1-H2-1) получаем =ПСТР(A2-1-НАЙТИ(» «-A2-1)-1)
  • Имя =ПСТР(A2-H2+1-I2-H2) получаем =ПСТР(A2-НАЙТИ(» «-A2-1)+1; НАЙТИ(» «-A2-НАЙТИ(» «-A2-1)+1)-НАЙТИ(» «-A2-1))
  • Отчество =ПСТР(A2-I2+1-50) получаем =ПСТР(A2-НАЙТИ(» «-A2-НАЙТИ(» «-A2-1)+1)+1-50)

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

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

Пример 2. Как разделить текст по столбцам в Excel с помощью формулы

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

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


Напомним, что вручную (без формул) это задача очень просто решается с помощью инструмента текст по столбцам, который мы уже рассматривали. В нашем же случае требуется это сделать с помощью формул. Для начала необходимо найти общий разделить, по которому мы будет разбивать текст.

В нашем случае это запятая, но например в первой задаче мы делили ФИО и разделитель был пробел. Наш второй пример более универсальный (более удобный при большом количестве данных), так например мы удобно могли бы делить не только ФИО по отдельным ячейкам, а целое предложение — каждое слово в отдельную ячейку.

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

Теперь основная суть приема.

Шаг 1. В вспомогательном столбце находим позицию первого разделителя с помощью функции НАЙТИ. Описывать подробно функцию не буду, так как мы уже рассматривали ее раннее. Пропишем формулу в D1 и протянем ее вниз на все строки

То есть ищем запятую, в тексте, начиная с позиции 1

Шаг 2. Далее в ячейке E1 прописываем формулу для нахождения второго знака (в нашем случае запятой). Формула аналогичная, но с небольшими изменениями.

  1. Во-первых: закрепим столбец искомого значения и текста, чтобы при протягивании формулы вправо ссылки на ячейки не сдвигалась. Для этого нужно написать доллар перед столбцом B и A — либо вручную, либо выделить A1 и B1, нажать три раза клавишу F4, после этого ссылки станут не относительными, а абсолютными.
  2. Во-вторых: третий аргумент — начало позиции мы рассчитаем как позиция предыдущего разделителя (мы его нашли выше) плюс 1 то есть D1+1 так как мы знаем, что второй разделитель точно находится после первого разделителя и нам его не нужно учитывать.

Пропишем формулу и протянем ее вниз.

Шаг 3. Находимо позиции всех остальных разделителей. Для этого формулу нахождения второго разделителя (шаг 2) протянем вправо на то количество ячеек, сколько всего может быть отдельно разбитых значений с небольшим запасом. Получим все позиции разделителей. Там где ошибка #Знач означает что значения закончились и формула больше не находит разделителей. Получаем следующее

Шаг 4. Отделяем первое число от текст с помощью функции ПСТР.

Начальная позиция у нас 1, количество знаков мы рассчитываем как позиция первого разделителя минус 1: D1-1 протягиваем формулу вниз

Шаг 5. Находимо второе слово так же с помощью функции ПСТР в ячейке P1

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

Количество знаков это есть разница между позицией третьего разделителя и второго и минус один знак, то есть E1-D1-1 Закрепим столбец A исходного текста, чтобы он не сдвигался при протягивании формулы право.

Шаг 6. Протянем формулу полученную на шаге 5 вправо и вниз и получим текст в отдельных ячейках.

Шаг 7. В принципе задача наша уже решена, но для красоты все в той же ячейке P1 пропишем формула отлавливающую ошибку заменяя ее пустым значением.

Так же можно сгруппировать и свернуть вспомогательные столбцы, чтобы они не мешали. Получим итоговое решение задачи

Примечание. Первую позицию разделителя и первое деление слова мы делали отлично от других и из-за этого могли протянуть формулу только со вторых значений.

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

а первого текста как

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

В столбец «A» вставляете данные, в столбце «B» указываете разделитель, протягиваете формулы на нужное количество ячеек и получаете результат.

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

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

Либо второе решение — это на шаге 3, когда мы составляем формулу вычисления позиций разделителей дополнить ее. Сделать проверку, если ошибка, то указываем заведомо большое число, например 1000.

Таким образом последний текст будет рассчитываться начиная от последней запятой до чуть меньше 1000 знаков, то есть до конца строки, что нам и требуется.

Оба варианта выложу для скачивания.

  1. Скачать пример: Как разделить текст по столбцам с помощью функции_1.xlsx (исправлено: доп поле)
  2. Скачать пример: Как разделить текст по столбцам с помощью функции_2.xlsx (исправлено: заведомо большое число)

(Пока оценок нет)

Как разделить текст по ячейкам формула в Excel

Часто приходится оптимизировать структуру данных после импорта в Excel. Некоторые разные значения попадают в одну и туже ячейку образуя целую строку как одно значение. Возникает вопрос: как разбить строку на ячейки в Excel. Программа располагает разными поисковыми функциями: одни ищут по ячейках другие ищут по содержимому ячеек. Ведь выполнять поиск по текстовой строке, которая содержится в ячейке ¬– это также распространенная потребность пользователей Excel. Их мы и будем использовать для разделения строк.

Как разделить текст на две ячейки Excel

Допустим на лист Excel были импортированные данные из другой программы. Из-за несовместимости структуры данных при импорте некоторые значение из разных категорий были внесены в одну ячейку. Необходимо из этой ячейки отделить целые числовые значения. Пример таких неправильно импортированных данных отображен ниже на рисунке:

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

В ячейку B3 введите следующую формулу:

Теперь скопируйте эту формулу вдоль целого столбца:

Выборка чисел из строк в отдельные ячейки.

Описание формулы для разделения текста по ячейкам:

Функция ПСТР возвращает текстовое значение содержащие определенное количество символов в строке. Аргументы функции:

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

С первым аргументом ПСТР все понятно – это ссылка на ячейку A3. Второй аргумент мы вычисляем с помощью функции НАЙТИ(«]»;A3)+2. Она возвращает очередной номер символа первой закрывающейся квадратной скобки в строке. И к этому номеру мы добавляем еще число 2, так как нам нужен номер символа после пробела за квадратной скобкой. В последнем аргументе функция вычисляет какое количество символов будет содержать разделенная строка после разделения, учитывая положение квадратной скобки.

Обратите внимание! Что в нашем примере все исходные и разделенные строки имеют разную длину и разное количество символов. Именно поэтому мы называли такую формулу – гибкой, в начале статьи. Она подходит для любых условий при решении подобного рода задач. Гибкость придает ей сложная комбинация из функций НАЙТИ. Пользователю формулы достаточно определить закономерность и указать их в параметрах функций: будут это квадратные скобки либо другие разделительные знаки. Например, это могут быть пробелы если нужно разделить строку на слова и т.п.

В данном примере функция НАЙТИ во втором аргументе определяет положение относительно первой закрывающейся скобки. А в третьем аргументе эта же функция вычисляет положение нужного нам текста в строке относительно второй открывающийся квадратной скобки. Вычисление в третьем аргументе более сложное и оно подразумевает вычитание одной большей длинны текста от меньшей. А чтобы учитывать еще 2 пробела следует вычитать число 3. В результате чего получаем правильное количество символов в разделенной строке. С помощью такой гибкой формулы можно делать выборку разной длинны разделенного текста из разных длинны исходных строк.

Извлечение слов из текста в Excel

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

Важное замечание!

Задача 1. Подсчет количества слов в тексте

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

Итак, слова в тексте отделены друг от друга пробелами. Пробелов всегда на 1 меньше, чем слов (действительно, между двумя словами — один пробел, между тремя — два и т.д.). Значит, достаточно подсчитать пробелы и прибавить к ним единицу, чтобы узнать число слов в ячейке.

В Excel есть замечательные функции ДЛСТР() и ПОДСТАВИТЬ() . Первая подсчитывает количество символов в указанной ячейке, а вторая умеет заменять указанный символ на любой другой или на пусто (обозначается как двойные кавычки без пробела между ними «» ).

Функция ПОДСТАВИТЬ() имеет 4 аргумента:

1) Ячейка с текстом

2) То, что нужно заменить (указывается в кавычках)

3) То, на что нужно заменить (указывается в кавычка)

4) Необязательный аргумент — номер вхождения заменяемого текста. То есть, если в тексте 4 пробела, мы можем заменить только тот, номер которого укажем. Если аргумент опущен — заменяются все символы.

Первой функцией мы можем узнать длину текста в ячейке. Второй функцией мы можем заменить все пробелы в тексте на «» (пусто), то есть удалить. Если после удаления мы подсчитаем длину текста еще раз, то она сократится ровно на число удаленных пробелов. Таким образом, чтобы подсчитать пробелы, нужна формула:

Прибавим к ней единицу — и получим число слов в ячейке.

Имейте в виду, что такой способ подсчета принимает символы, отделенные от слов пробелом, за отдельные слова. Например, тире, обрамленное пробелами, также будет считаться отдельным словом. Избежать этого можно, если перед подсчетом пробелов убрать функцией ПОДСТАВИТЬ() лишние знаки из ячейки.

Задача 2. Извлечение первого слова из текста

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

Найти символ в тексте поможет функция НАЙТИ() . У нее есть 3 аргумента:

1) Искомый текст;

2) Текст, в котором ищем;

3) С какого символа начать поиск (необязательный, если опущен — функция ищет с самого начала).

Результатом работы функции является позиция первого символа найденного текста в строке. Например, формула =НАЙТИ(«плюс»;»Один плюс один») вернет в результате число 6 (именно с этой позиции начинается искомое слово «плюс»). Если в строке несколько раз содержится искомое слово, то вернется результат для первого вхождения.

Функция НАЙТИ работает с учетом регистра и без подстановочных знаков. Если нужно их использовать, или не учитывать регистр — есть аналогичная функция ПОИСК() .

Теперь мы можем найти позицию первого пробела

Извлечь символы до пробела поможет функция ЛЕВСИМВ . Ей нужно указать текст, а также число символов, которое нужно извлечь начиная с первого. Если найденный пробел, например, 6-ой символ, то нам нужно извлечь 6-1=5.

Формула для извлечения первого слова:

Если в строке одно слово (то есть нет пробела между первым и вторым словом), данная формула вернет ошибку. Чтобы этого избежать, нужно добавить к ней функцию ЕСЛИОШИБКА() .

Теперь формула корректно сработает для любого числа слов в ячейке.

Задача 3. Извлечение последнего слова из текста

Извлечь последнее слово несколько труднее, так как функции поиска текста в ячейке работают только слева направо. Логика формулы будет такая:

  • подсчитаем, сколько в ячейке пробелов, воспользовавшись приемом из Задачи 1.

=ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»))

  • с помощью функции ПОДСТАВИТЬ заменим последний пробел в тексте на символ, которого там точно нет (например, «*» или «$»). Чтобы заменить именно последний пробел, добавим в качестве необязательного аргумента формулу из предыдущего пункта (то есть число пробелов, так как оно равно номеру последнего пробела)

=ПОДСТАВИТЬ(A1;» «;»*»;ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»)))

  • теперь, когда последний пробел заменен на «*», мы можем узнать его позицию с помощью функции НАЙТИ() . В качестве текста, в котором ищем, укажем предыдущую формулу

=НАЙТИ(«*»;ПОДСТАВИТЬ(A1;» «;»*»;ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»))))

  • если из общей длины текста мы вычтем найденную позицию звездочки, то получим число символов после звездочки (то есть длину последнего слова в ячейке)

=ДЛСТР(A1)-НАЙТИ(«*»;ПОДСТАВИТЬ(A1;» «;»*»;ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»))))

  • теперь, зная длину последнего слова, мы можем вытащить его из ячейки с помощью функции ПРАВСИМВ() . Она работает точно так же, как ЛЕВСИМВ() , но извлекает символы не с начала, а с конца строки. В качестве количества извлекаемых символов, укажем предыдущую формулу.

Как и в предыдущей задаче, можно обернуть в ЕСЛИОШИБКА , чтобы верно работало с ячейками, в которых только 1 слово.

=ЕСЛИОШИБКА(ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ(«*»;ПОДСТАВИТЬ(A1;» «;»*»;ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;» «;»»)))));A1)

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

Function РЕВЕРС(str As String)

Это макрофункция. Теперь, используя ее, можно отразить текст зеркально, извлечь первое слово, как в Задаче 2 и отразить его обратно. Формула:

Берите на вооружение, если любите макросы.

Задача 4. Извлечение n-ного слова из текста

Самый интересный пример. Для решения подобной задачи нужно применить фантазию. Разберем решение поэтапно.

Помимо уже использовавшихся в статье функций, нам понадобятся еще 2:

1) ПОВТОР() . Умеет повторять указанный текст указанное число раз.

2) ПСТР() . Имеет 3 аргумента:

  • исходный текст;
  • позиция, с которой нужно начать извлечение;
  • число символов, которые нужно извлечь.

Теперь мы вооружены всем нужным инструментарием. Приступаем:

  • Для начала воспользуемся функцией ПОВТОР() , чтобы вместо 1 пробела в тексте вставить число пробелов, равное длине исходного текста. Количество повторений узнаем через уже известную функцию ДЛСТР() . Итак, формула:

=ПОДСТАВИТЬ(A1;» «;ПОВТОР(» «;ДЛСТР(A1)))

  • Теперь каждое слово отделено друг от друга числом символов, равным общей длине строки. Чтобы извлечь слово под номером n, нам нужно узнать позицию какого-нибудь пробела между словом n и n-1 в обработанном удлиненном тексте. Это может сделать формула ниже (+1 в ней нужно для правильного поиска первого слова):

=ДЛСТР(A1)*(n-1)+1

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

  • Теперь мы может извлечь из найденной позиции число символов ДЛСТР(A1) (на рисунке — m ) и извлеченный текст всегда будет захватывать нужное нам слово целиком (с некоторым количеством предшествующих и последующих пробелов)

=ПСТР(ПОДСТАВИТЬ(A1;» «;ПОВТОР(» «;ДЛСТР(A1)));ДЛСТР(A1)*(n-1)+1;ДЛСТР(A1))

  • Осталось избавиться от лишних пробелов функцией СЖПРОБЕЛЫ()

=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A1;» «;ПОВТОР(» «;ДЛСТР(A1)));ДЛСТР(A1)*(n-1)+1;ДЛСТР(A1)))

Не забудьте в формуле заменить n на номер извлекаемого слова или ссылку на ячейку с этим номером.

Задача 5. Извлечение имя файла из полного пути к нему

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

Как мы знаем, директории в ссылках отделены друг от друга символом «». После последнего такого символа расположено нужное нам имя файла. Похоже на задачу с извлечением последнего слова? Только вместо пробелов теперь символ обратной косой черты.

Берем формулу из задачи 3 и заменяем в ней пробелы на «».

Получим следующую формулу:

Вставляем в ячейку и вуаля! Имя файла извлечено.

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

Поддержать наш проект и его дальнейшее развитие можно вот здесь .

Ваши вопросы по статье можете задавать через нашего бота обратной связи в Telegram: @ExEvFeedbackBot

  • Отделить цифры от текста — формулы Excel
    • Отделить число справа от текста
    • Отделить цифры, стоящие перед текстом
  • Регулярные выражения
    • В Гугл таблицах
    • В Excel с надстройкой !SEMTools
  • Разбить текст и цифры с !SEMTools в 2 клика

Порой при работе в Excel встречаются данные, в которых умышленно или неумышленно сцеплены текст и цифры. Например, определенное число из нескольких цифр, и текст перед ним. Стоит задача отделить это число от текста. Или это некий набор буквенно-числовых артикулов, в которых нужно отделить буквы от цифр.

При этом ни функций, ни процедур, которые выполняли бы задуманное, в Excel по умолчанию нет. Можно ли? Ответ – да, а далее – пошаговое руководство.

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

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

Примечание: речь в ней о разделении текста и цифр внутри ячейки. Если вы хотите выделить цифры в отдельную ячейку – читайте эту статью: извлечь цифры из ячейки в Excel.

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

  • буквы перед цифрами (x100, FX5200, MI6);
  • цифра/цифры перед буквой/буквами (2021г, 3D, 4K, 4,2Ghz);
  • число-текст-число (3к2, 22стр3, 1ЕКХ23).

Отделить число справа от текста

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

{=ПОИСКПОЗ(ЛОЖЬ;ЕОШ(ПСТР(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1)-1);0)}

Это формула массива! Как и все похожие (с фигурными скобками) далее, она вводится:

  1. без фигурных скобок;
  2. сочетанием CTRL + Shift + Enter (вместо просто Enter).

Далее уже дело техники – получить фрагменты до этой позиции и начиная с нее, в этом помогут функции ЛЕВСИМВ и ПСТР. Допустим, если позиция будет вычислена в ячейке A2, а исходный текст в ячейке A1, то формулы для первой и второй части будут, соответственно:

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

{=ЛЕВСИМВ(A1;ПОИСКПОЗ(ЛОЖЬ;ЕОШ(ПСТР(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1)-1);0)-1)
&" "&
ПСТР(A1;ПОИСКПОЗ(ЛОЖЬ;ЕОШ(ПСТР(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1)-1);0);9999)}

Данная формула имеет разделителем пробел (в строке посередине), если хотите использовать другой разделитель, просто замените его на свой.

Отделить цифры, стоящие перед текстом

Если же заранее известно, что текст ячейки начинается с цифр и продолжается текстовыми символами, нужно получить позицию первого нечислового символа. Это можно сделать с помощью аналогичной формулы массива, единственная разница лишь в том, что функция ПОИСКПОЗ ищет ИСТИНА, а не ЛОЖЬ:

{=ПОИСКПОЗ(ИСТИНА;ЕОШ(ПСТР(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1)-1);0)}

Далее порядок действий аналогичен первому примеру.

Регулярные выражения

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

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

В Гугл таблицах

Формула Гугл таблиц, которая разделит текст и цифры, довольно незамысловата:

=TRIM(REGEXREPLACE(A1,"(d+|D+)","$1 "))

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

В Excel с надстройкой !SEMTools

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

Разделить текст и числа через пробел с помощью регулярных выражений в Excel с !SEMTools

Разбить текст и цифры с !SEMTools в 2 клика

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

Все, что вам нужно сделать, это:

  1. просто выделить диапазон или ячейку,
  2. вызвать процедуру,
  3. указать разделитель,
  4. и нажать ОК.

Разбить текст и цифры в диапазоне ячеек Excel

Отделяем текст от цифр в ячейках Excel и выводим в соседний столбец ячейки с буквами, отделенными от цифр

Отделить цифры от текста в Excel, а также решить сотни других рутинных задач поможет надстройка !SEMTools
Скачайте надстройку прямо сейчас и начинайте экономить рабочее время!

Skip to content

Как быстро извлечь число из текста в Excel

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

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

Вот что мы рассмотрим в этой статье:

  • Как извлечь число в конце текста
  • Получаем число из начала текста
  • Как извлечь все числа из текста
  • Извлекаем числа без формул при помощи Ultimate Suite

Когда дело доходит до извлечения части текстового значения заданной длины, Эксель предоставляет три текстовых функции (ЛЕВСИМВ, ПРАВСИМВ и ПСТР) для быстрого выполнения этой задачи. А вот когда дело доходит до извлечения числа из буквенно-цифровой строки, Microsoft Excel … не предоставляет ничего.

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

Или вы можете запустить инструмент «Извлечь (Extract)» из надстройки Ablebits Ultimate Suite и выполнить эту операцию одним щелчком мыши. Ниже вы найдете полную информацию обо всех этих методах.

Как извлечь число из конца текстовой строки.

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

Важное замечание! В приведенных ниже формулах извлечение выполняется с помощью функций ПРАВСИМВ и ЛЕВСИМВ, которые относятся к категории текстовых функций. Эти функции всегда возвращают текст. В нашем случае результатом будет числовая подстрока, которая с точки зрения Excel также является текстом, а не числом. Если вам нужно, чтобы результат был числом (которое можно использовать в дальнейших вычислениях), оберните соответствующую формулу в функцию ЗНАЧЕН, или выполните с ней простейшую математическую операцию (например, двойное отрицание).

Чтобы извлечь число из строки «текстовое число», первое, что вам нужно знать, — это с какой позиции начать операцию. Итак, давайте определим положение первой цифры с помощью этой общего выражения:

=МИН(ПОИСК({0;1;2;3;4;5;6;7;8;9}; ячейка &»0123456789″))

О логике вычислений мы поговорим чуть позже. На данный момент просто замените слово «ячейка» ссылкой на позицию, содержащую исходный текст (в нашем случае A2), и запишите получившееся выражение в любую пустую клетку той же строки, скажем, в B2:

=МИН(ПОИСК({0;1;2;3;4;5;6;7;8;9};A2&»0123456789″))

Хотя формула содержит константу массива, это обычное выражение, которое вводится обычным способом: нажатием клавиши Enter.

Как только позиция первой цифры определена, можно использовать функцию ПРАВСИМВ для извлечения числа. Чтобы узнать, сколько символов нужно извлечь, вы вычитаете позицию первой цифры из общей длины строки и добавляете единицу к результату, потому что первая цифра также должна быть включена:

=ПРАВСИМВ(A2;ДЛСТР(A2)-B2+1)

Где A2 — исходная ячейка, а B2 — позиция первой цифры.

На следующем скриншоте показаны результаты:

Чтобы исключить вспомогательный столбец, содержащий позицию первой цифры, вы можете встроить формулу МИН непосредственно в функцию ПРАВСИМВ следующим образом:

=ПРАВСИМВ(A2;ДЛСТР(A2)-МИН(ПОИСК({0;1;2;3;4;5;6;7;8;9};A2&»0123456789″))+1)

Чтобы формула возвращала именно число, а не числовую строку, вложите ее в функцию ЗНАЧЕН:

=ЗНАЧЕН(ПРАВСИМВ(A2;ДЛСТР(A2)-МИН(ПОИСК({0;1;2;3;4;5;6;7;8;9};A2&»0123456789″))+1))

Или просто примените двойное отрицание, использовав два знака «минус»:

=—ПРАВСИМВ(A2;ДЛСТР(A2)-МИН(ПОИСК({0;1;2;3;4;5;6;7;8;9};A2&»0123456789″))+1)

Другой способ извлечь число из конца строки — использовать вот такое выражение:

=ПРАВСИМВ( ячейка ;СУММ(ДЛСТР( ячейка ) — ДЛСТР(ПОДСТАВИТЬ( ячейка ; {«0″;»1″;»2″;»3″;»4″;»5″;»6″;»7″;»8″;»9″};»»))))

Используя исходный текст в A2, вы записываете приведенную ниже формулу в B2 или любую другую пустую ячейку в той же строке, а затем копируете её вниз по столбцу:

=ПРАВСИМВ(A2;СУММ(ДЛСТР(A2) — ДЛСТР(ПОДСТАВИТЬ(A2; {«0″;»1″;»2″;»3″;»4″;»5″;»6″;»7″;»8″;»9″};»»))))

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

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

=ПРАВСИМВ(A2; ДЛСТР(A2) — МАКС(ЕСЛИ(ЕЧИСЛО(ПСТР(A2; СТРОКА(ДВССЫЛ( «1:»&ДЛСТР(A2))); 1) *1)=ЛОЖЬ; СТРОКА(ДВССЫЛ( «1:»&ДЛСТР(A2))); 0)))

На скриншоте ниже вы видите результат ее работы.

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

Примечание. Если вы используете Excel 2019 или более ранние версии, нужно использовать формулу массива, нажав при вводе комбинацию Ctrl+Shift+Enter. Если у вас Office365, вводите как обычно, через Enter.

Как извлечь число из начала текстовой строки

Если вы работаете со строками, в которых текст находится после числа, решение для извлечения числа будет аналогично описанному выше. С той только разницей, что вы используете функцию ЛЕВСИМВ для извлечения из левой части текста:

=ЛЕВСИМВ( ячейка ;СУММ(ДЛСТР( ячейка )-ДЛСТР(ПОДСТАВИТЬ( ячейка ;{«0″;»1″;»2″;»3″;»4″;»5″;»6″;»7″;»8″;»9″};»»))))

Используя этот метод для A2, извлекаем число при помощи такого выражения:

=ЛЕВСИМВ(A2;СУММ(ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;{«0″;»1″;»2″;»3″;»4″;»5″;»6″;»7″;»8″;»9″};»»))))

Это решение работает для текстовых выражений, которые содержат числа только в начале. Если некоторые цифры также находятся в середине или в конце строки, формула не будет работать. 

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

=ЛЕВСИМВ(A2;ПОИСКПОЗ(ЛОЖЬ;ЕЧИСЛО(—ПСТР(A2;СТРОКА($1:$94);1));0)-1)

Или чуть модифицируем, чтобы ускорить расчеты:

=ЛЕВСИМВ(A2; ПОИСКПОЗ(ЛОЖЬ; ЕЧИСЛО(ПСТР(A2; СТРОКА(ДВССЫЛ( «1:»&ДЛСТР(A2)+1)); 1) *1); 0) -1)

Если у вас Excel 2019 и ниже, вводите ее как формулу массива, используя Ctrl+Shift+Enter. В Office365 и выше можно вводить как обычно.

Примечание. Как и в случае с функцией ПРАВСИМВ, функция ЛЕВСИМВ также возвращает числовую подстроку, которая технически является текстом, а не числом.

Как получить число из любой позиции в тексте

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

=СУММПРОИЗВ(ПСТР(0&A2; НАИБОЛЬШИЙ(ИНДЕКС(ЕЧИСЛО(—ПСТР(A2; СТРОКА(ДВССЫЛ(«1:»&ДЛСТР(A2))); 1)) * СТРОКА(ДВССЫЛ(«1:»&ДЛСТР(A2))); 0); СТРОКА(ДВССЫЛ(«1:»&ДЛСТР(A2))))+1; 1) * 10^СТРОКА(ДВССЫЛ(«1:»&ДЛСТР(A2)))/10)

Где A2 — исходная текстовая строка.

Для пояснения, как это работает, потребуется отдельная статья. Поэтому вы можете просто скопировать на свой рабочий лист, чтобы убедиться, что это действительно работает :)

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

Однако, изучив результаты, вы можете заметить один незначительный недостаток: если исходный текст в ячейке не содержит числа, формула возвращает ноль, как в строке 7 на скриншоте выше. Чтобы исправить это, вы можете заключить формулу в оператор ЕСЛИ, который проверит, содержит ли исходный текст какое-либо число. Если это так, формула извлекает это число, в противном случае возвращает пустую строку:

=ЕСЛИ(СУММ(ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;{«0″;»1″;»2″;»3″;»4″;»5″;»6″;»7″;»8″;»9″};»»)))>0; СУММПРОИЗВ(ПСТР(0&A2; НАИБОЛЬШИЙ(ИНДЕКС(ЕЧИСЛО(—ПСТР(A2; СТРОКА(ДВССЫЛ(«1:»&ДЛСТР(A2))); 1)) * СТРОКА(ДВССЫЛ(«1:»&ДЛСТР(A2))); 0); СТРОКА(ДВССЫЛ(«1:»&ДЛСТР(A2))))+1; 1) * 10^СТРОКА(ДВССЫЛ(«1:»&ДЛСТР(A2)))/10);»»)

В отличие от всех предыдущих примеров, результатом этих формул является число. Чтобы убедиться в этом, просто обратите внимание на выровненные по правому краю значения в столбце B и усеченные ведущие нули (например, 88 вместо 088).

Если число, которое вы хотите извлечь, ограничено какими-то знаками-разделителями, то можно использовать функцию ПСТР. Рассмотрим пример, как получить номер счета из текста платежа.

Мы будем искать позицию знака «№» и позицию следующего за ним первого пробела. То, что находится между ними, как раз и будет номером счёта:

=ПСТР(ПОДСТАВИТЬ(A2;» «;»»);НАЙТИ(«№»;ПОДСТАВИТЬ(A2;» «;»»))+1;НАЙТИ(» «;A2;НАЙТИ(«№»;A2;1))-НАЙТИ(«№»;A2;1)-1)

На скриншоте ниже вы видите, как это работает.

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

Используем формулу

=ПРОСМОТР(2^64;—ЛЕВСИМВ(ПСТР(A1&»_0″;МИН(НАЙТИ({0;1;2;3;4;5;6;7;8;9};A1&»_0123456789″));15); {1;2;3;4;5;6;7;8;9;10;11;12;13;14;15}))

или заменяем список цифр функцией:

=ПРОСМОТР(2^64;—ЛЕВСИМВ(ПСТР(A1&»_0″;МИН(НАЙТИ({0;1;2;3;4;5;6;7;8;9};A1&»_0123456789″));15); СТРОКА($A$1:$IV$16)))

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

И еще один пример. Давайте попробуем достать все числа из текста, разграничив их каким-то разделителем. Например, дефисом “-“.

В этом случае придется использовать формулу массива:

{=ПОДСТАВИТЬ(СЖПРОБЕЛЫ(СЦЕП(ЕСЛИ(ЕЧИСЛО(—ПСТР(A2;СТРОКА($1:$94);1));ПСТР(A2;СТРОКА($1:$94);1);» «)));» «;»-«)}

Мы нашли все числа в тексте, как вы видите на скриншоте ниже:

Откорректировав эту формулу, вы можете использовать любой другой разделитель.

Поскольку между ними есть разделители, то вы легко можете распределить эти числа в отдельные ячейки. Как это сделать — читайте в материале 8 способов разделить ячейку Excel на две или несколько.

Как выделить число из текста с помощью Ultimate Suite

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

С надстройкой Ultimate Suite, добавленной на вашу ленту Excel, вы можете быстро получить число из любой буквенно-цифровой строки:

  1. Перейдите на вкладку Ablebits Data > Text и нажмите Извлечь (Extract) :

  1. Выделите все ячейки с данными, которые нужно обработать.
  2. На панели инструмента «Извлечь (Extract)» установите переключатель «Извлечь числа (Extract numbers)».
  3. В зависимости от того, хотите ли вы, чтобы результаты были формулами или значениями, выберите поле «Вставить как формулу (Insert as formula)» или оставьте его пустым (по умолчанию).

Я советую активировать это поле, если вы хотите, чтобы извлеченные числа обновлялись автоматически, как только в исходные значения вносятся какие-либо изменения. Если нужно, чтобы результаты не зависели от будущих изменений (например, если вы планируете удалить исходные данные позже), не используйте эту опцию.

  1. Нажмите кнопку «Вставить результаты (Insert Results)». Готово!

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

Если установлен флажок «Вставить как формулу», вы увидите выражение в строке формул. Любопытно узнать, какое именно? Просто скачайте пробную версию Ultimate Suite и убедитесь сами :)

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

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

Как быстро посчитать количество слов в Excel В статье объясняется, как подсчитывать слова в Excel с помощью функции ДЛСТР в сочетании с другими функциями Excel, а также приводятся формулы для подсчета общего количества или конкретных слов в…
Как умножить число на процент и прибавить проценты Ранее мы уже научились считать проценты в Excel. Рассмотрим несколько случаев, когда известная нам величина процента помогает рассчитать различные числовые значения. Чему равен процент от числаКак умножить число на процентКак…
Как считать проценты в Excel — примеры формул В этом руководстве вы познакомитесь с быстрым способом расчета процентов в Excel, найдете базовую формулу процента и еще несколько формул для расчета процентного изменения, процента от общей суммы и т.д.…
Функция ПРАВСИМВ в Excel — примеры и советы. В последних нескольких статьях мы обсуждали различные текстовые функции. Сегодня наше внимание сосредоточено на ПРАВСИМВ (RIGHT в английской версии), которая предназначена для возврата указанного количества символов из крайней правой части…
Функция ЛЕВСИМВ в Excel. Примеры использования и советы. В руководстве показано, как использовать функцию ЛЕВСИМВ (LEFT) в Excel, чтобы получить подстроку из начала текстовой строки, извлечь текст перед определенным символом, заставить формулу возвращать число и многое другое. Среди…
5 примеров с функцией ДЛСТР в Excel. Вы ищете формулу Excel для подсчета символов в ячейке? Если да, то вы, безусловно, попали на нужную страницу. В этом коротком руководстве вы узнаете, как использовать функцию ДЛСТР (LEN в английской версии)…
Как быстро сосчитать количество символов в ячейке Excel В руководстве объясняется, как считать символы в Excel. Вы изучите формулы, позволяющие получить общее количество символов в диапазоне и подсчитывать только определенные символы в одной или нескольких ячейках. В нашем предыдущем…

Содержание

  1. Как в Microsoft Excel извлечь число из ячейки с текстом самый простой и быстрый способ
  2. Excel извлекаем число из текста
  3. Как оставить в ячейке только цифры или только текст?
  4. Поиск по меткам

Как в Microsoft Excel извлечь число из ячейки с текстом самый простой и быстрый способ

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

Excel извлекаем число из текста

И так допустим в таблице есть ячейки в которых числа напечатаны вместе с текстом.

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

И нажимаем сочетание клавиш «Ctrl+E», буква «Е» английская, после этого автоматически из всех оставшихся ячеек будет извлечено только число.

Это самый простой и быстрый способ извлечь число из ячейки с текстом в офисном пакете Microsoft Excel, но если Вы знаете другой то обязательно напишите об этом.

Источник

Как оставить в ячейке только цифры или только текст?

Вот бывает так: есть у Вас в ячейке некий текст. Допустим «Было доставлено кусков мыла 763шт.». Вам нужно из этого только 763 — чтобы можно было провести с этим некие математические действия. Если это только одна ячейка — проблем тут нет, а если таких ячеек пару тысяч? И к тому же все разные?

  • Было доставлено кусков мыла 763шт.
  • Всего пришло 34
  • Тюбики — 54 доставлено
  • и т.д.

Никакой зацепки для извлечения данных. Пару тысяч таких строк удалять вручную весьма утомительное занятие, надо сказать. Да еще и не быстрое.
Есть несколько вариантов решения подобной задачи.

СПОСОБ 1: не используем макросы
можно применить формулу массива, вроде такой:
=ПСТР( A1 ;МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 )));ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 ))-МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 )))+1)
Три важных момента:

  1. Формула вводится в ячейку сочетанием клавиш Ctrl+Shift+Enter, т.к. является формулой массива. Подробнее про эти формулы читайте в статье: Что такое формула массива
  2. в таком виде формула работает с текстом, количество символов в котором не превышает 99. Чтобы расширить необходимо в формуле во всех местах заменить СТРОКА( $1:$99 ) на СТРОКА( $1:$200 ) . Т.е. вместо 99 указать количество символов с запасом. Только не увлекайтесь, иначе может получиться, что формула будет работать слишком долго
  3. формула не обработает корректно текст » Было доставлено кусков мыла 763шт., а заказывали 780 » и ему подобный, где числа раскиданы по тексту.

Теперь коротко разберем формулу на примере фразы: Было доставлено кусков мыла 763шт.

  • в A1 сам текст, из которого необходимо извлечь числа: Было доставлено кусков мыла 763шт., а заказывали 780
  • блок: МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 )))
    вычисляет позицию первой цифры в ячейке — 29
  • блок: ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 ))
    вычисляет позицию последней цифры в ячейке — 31
  • в результате получается: =ПСТР( A1 ;29;3129+1)
    функция ПСТР извлекает из текста, указанного первым аргументом( A1 ) текст, начиная с указанной позиции(29) с количеством символов, указанным третьим аргументом(3129+1)
  • И в итоге:
    =ПСТР( A1 ;29;3129+1)
    => =ПСТР( A1 ;29;2+1)
    => =ПСТР( A1 ;29;3)
    => 763

Может быть задача проще — необходимо извлечь односоставной текст, убрав цифры вначале и в конце строки, учитывая, что сам текст всегда следует после разделителя(например, тире):
12.08-АГСВ2
12.08-АГСВ1
01.03-ОВ2
12.03-КЖ6.1
Из этих данных надо получить только текст после тире(-) и отсечь цифры на конце:
АГСВ
АГСВ
ОВ
КЖ
Формула будет работать почти по тому же принципу, что и формула выше, но она проще:
=ПСТР( A1 ;ПОИСК(«-«; A1 )+1;ПОИСКПОЗ(ИСТИНА;ЕЧИСЛО(—ПСТР(ПСТР( A1 ;ПОИСК(«-«; A1 )+1;999);СТРОКА( $1:$99 );1));0)-1)
В данном случае мы при помощи ПОИСК(«-«; A1 ) ищем сначала позицию тире, далее при помощи ПОИСКПОЗ(ИСТИНА;ЕЧИСЛО(—ПСТР(ПСТР( A1 ;ПОИСК(«-«; A1 )+1;999);СТРОКА( $1:$99 );1));0) находим именно в отсеченном тексте позицию первой цифры. Передаем эти значения в ПСТР , которая отбирает из этого текста все от первого тире(+1) до первого числа, идущего после текста.

СПОСОБ 2: используем макросы
Самый главный недостаток метода при помощи формулы, приведенной выше — из текста » Было доставлено кусков мыла 763шт., а заказывали 780 » формула вернет не только числа, а и текст между первой и последней цифрой: 763шт., а заказывали 780 .
Решить же проблему извлечения цифр даже из такого текста при помощи VBA куда проще и гибче. Плюс можно не только цифры извлекать, но и наоборот — цифры удалить, а извлечь только текст. Ниже приведен код пользовательской функции, которая поможет извлечь из строки только числа либо только текст. Иными словами, результатом функции будет либо только текст, либо только числа.

Function Extract_Number_from_Text(sWord As String, Optional Metod As Integer) ‘sWord = ссылка на ячейку или непосредственно текст ‘Metod = 0 – числа ‘Metod = 1 – текст Dim sSymbol As String, sInsertWord As String Dim i As Integer If sWord = «» Then Extract_Number_from_Text = «Нет данных!»: Exit Function sInsertWord = «» sSymbol = «» For i = 1 To Len(sWord) sSymbol = Mid(sWord, i, 1) If Metod = 1 Then If Not LCase(sSymbol) Like «*[0-9]*» Then If (sSymbol = «,» Or sSymbol = «.» Or sSymbol = » «) And i > 1 Then If Mid(sWord, i — 1, 1) Like «*[0-9]*» And Mid(sWord, i + 1, 1) Like «*[0-9]*» Then sSymbol = «» End If End If sInsertWord = sInsertWord & sSymbol End If Else If LCase(sSymbol) Like «*[0-9.,;:-]*» Then If LCase(sSymbol) Like «*[.,]*» And i > 1 Then If Not Mid(sWord, i — 1, 1) Like «*[0-9]*» Or Not Mid(sWord, i + 1, 1) Like «*[0-9]*» Then sSymbol = «» End If End If sInsertWord = sInsertWord & sSymbol End If End If Next i Extract_Number_from_Text = sInsertWord End Function

Данный код необходимо поместить в стандартный модуль книги. После этого в мастере функций в категории Определенные пользователем (User Defined) будет доступна функция Extract_Number_from_Text , которую можно будет применять как обычную функцию на листе.
Для извлечения только чисел
=Extract_Number_from_Text( A1 ; 0)
или
=Extract_Number_from_Text( A1 )
Для извлечения только текста
=Extract_Number_from_Text( A1 ; 1)

Подробнее про создание пользовательских функции и их применении можно почитать в статье Что такое функция пользователя(UDF)?

Помимо функции пользователя решил выложить и вариант с использованием диалогового окна:

Выбрать ячейку или диапазон с текстом(Лист1! $A$2:$A$10 ) — здесь указывается диапазон с исходными значениями, из которого необходимо оставить только числа или только текст.

Выберите ячейку для вывода данных(Лист1! $A$2 ) — указывается одна ячейка, с которой начать вывод преобразованных значений. В качестве этой ячейки можно выбрать первую ячейку диапазона с текстом(исходного) если необходимо произвести изменения сразу в этих же ячейках(как на рисунке). Осторожнее с таким указанием, т.к. результат работы кода может быть не совсем таким, какой вы ожидали, а вернуть прежние данные уже не получится — если только не закрыть файл без сохранения изменений.

Оставить только цифры, Оставить только текст— думаю не надо пояснять. Здесь выбираем, что оставить в качестве результата.

Небольшое дополнение к использованию кода
В коде есть строка:

If LCase(sSymbol) Like «*[0-9.,;:-]*» Then

Данная строка отвечает за текстовые символы, которые могут встречаться внутри чисел и которые надо оставить(не удалять наравне с другими не числовыми символами). Следовательно, если какие-то из данных символов не нужны в конечном тексте — их надо просто удалить. Например, чтобы оставались исключительно числа(без запятых и пр.):

If LCase(sSymbol) Like «*[0-9]*» Then

если надо исключить из удаления помимо цифр точку(т.е. будут извлечены цифры и точка):

If LCase(sSymbol) Like «*[0-9.]*» Then

и т.д.
Скачать пример:

Число из текста и наоборот.xls (99,0 KiB, 17 601 скачиваний)

Статья помогла? Поделись ссылкой с друзьями!

Поиск по меткам

Здравствуйте скрипт при обработке ячейки:
Пр-ка ТНВД 5301 (пер.) 50-1006315-Б2 выдает: 530150-1006315-2
вопрос есть возможность что бы он брал только последних 15-20 сим.
с заглавными А-Я, или хотя бы цифирки.
Буду признателен за предложения.
Возможно есть проще варианты(12000 стр.записеи) обрезани до последних 10-20сим.

Александр, последние 15-20 символов можно взять при помощи функции ПРАВСИМВ(RIGHT). Так же можно совместить:
=Extract_Number_from_Text(ПРАВСИМВ(A1))
Более сложные вариации извлечения делаются под конкретные данные с учетом различных нюансов.

Добрый день!
Спасибо за замечательный код! Подскажите пожалуйста, как оставить среди неудаляемых символов пробел?
Например, в ячейке было «Т-образный поворот SPB-RF60 TE-200 SS316L».
Ваш код оставляет (после некоторой модификации) «60200316».
А хотелось бы «60 200 316».
Я не понимаю как вписать пробел в строку
Like «*[0-9.,;:-]*» Then

А всё разобрался, пробел нужно указывать в середине ряда, а не в конце.

Здравствуйте.
Использовал функцию, вызванную на VBA, все нормально, при вызове мастера функций он нормально отрабатывает
Но при выполнение в эксель, выскакивает сообщение, что здесь используется циклическая ссылка и потом появляется значение 0. В чем дело?

Добрый день!
А что надо добавить в код/формулу чтобы из строки
«ТП ВЕТЧИННАЯ ВАРЕНАЯ 400Г (162854) /Ш/»
— вытащить только цифры до буквы Г?
— или без содержимого скобок
Заранее большое спасибо!

Нашла пока только такой вариант решения:
=ЛЕВСИМВ(B5;ПОИСК(«г «;B5)-1)
Затем в другой колонке
=ЕСЛИОШИБКА(ПСТР(C5;МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(C5;СТРОКА($1:$99);1));СТРОКА($1:$99)));ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР(C5;СТРОКА($1:$99);1));СТРОКА($1:$99))-МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(C5;СТРОКА($1:$99);1));СТРОКА($1:$99)))+1);1000)
И в третьей колонке = из предыдущей и преобразовать в числовой формат макросом
Результат достигнут, но если расскажите как можно было сделать изящнее — обязательно запомню))

Public Function RegExpExtract(Text As String, Pattern As String, Optional Item As Integer = 1) As String On Error GoTo ErrHandl Set regex = CreateObject(«VBScript.RegExp») regex.Pattern = Pattern regex.Global = True If regex.Test(Text) Then Set matches = regex.Execute(Text) RegExpExtract = matches.Item(Item — 1) Exit Function End If ErrHandl: RegExpExtract = CVErr(xlErrValue) End Function

И играйтесь регулярками, на лету выбирая нужные части текста. Инфы с примерами, благо, достаточно.

Денис, спасибо. Но есть все равно пара замечаний, раз уж предлагаете воспользоваться функцией. Неплохо было бы добавить и пример применения. Иначе как тому, кто зайдет почитать использовать Ваше решение?
Я умею использовать регулярки и по коду вижу, что помимо текста надо указать не только шаблон, но еще и номер элемента, который получить. Что является немаловажным замечанием.
Для извлечения первого числа(без разделения групп разрядов) — =(RegExpExtract( A1 ;»d»;1)
Для извлечения первого текста(что не очень удобно, если чисел в тексте много) — =(RegExpExtract( A1 ;»D»;1)
Оба варианта слегка халтурны, но для понимания общего смысла использования подойдут.
В общем и целом я бы в функцию еще параметр IgnoreCase добавил(при извлечении текста по шаблону может потребоваться). Да и Multiline тоже иногда может играть роль(зависит от шаблона и текста), поэтому его тоже лучше ставить в True сразу в случае с такими функциями.

Источник

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


Как разделить текст и числа в ячейке в Excel?

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

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

Общие формулы

Общая формула для определения позиции первого числа

=MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&»0123456789″))

Общая формула для получения текста

=LEFT(A1,position-1)

Общая формула для получения чисел

=RIGHT(A1,LEN(A1)-position+1)

Аргументы приведенных выше формул

A1: Представляет ячейку, содержащую текст и числа, которые вы хотите разделить;

Позиция: Позиция первого числа в A1.

Как пользоваться этими формулами?

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

Во-первых, верните начальную позицию чисел в текстовой строке

1. Выберите пустую ячейку для вывода позиции. В данном случае я выбираю C3.

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

=MIN(FIND({0,1,2,3,4,5,6,7,8,9},B3&»0123456789″))

Во-вторых, получить текст 

1. Выберите пустую ячейку, чтобы найти текст. Здесь я выбираю D3.

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

=LEFT(B3,C3-1)

Наконец, получите числа

1. Выберите пустую ячейку, например E3, чтобы найти числа.

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

=RIGHT(B3,LEN(B3)-C3+1)

Как работают эти формулы?

=MIN(FIND({0,1,2,3,4,5,6,7,8,9},B3&»0123456789″))

1. FIND({0,1,2,3,4,5,6,7,8,9},B3&»0123456789″)

  • B3&»0123456789″ возвращает результат как: ana varela 240.150123456789.
  • FIND({0,1,2,3,4,5,6,7,8,9}, «ana varela 240.150123456789»): Функция Find находит позицию цифр «0–9» в ana varela 240.150123456789 и возвращает результат как {14,16,12,21,13,17,24,25,26,27}.
    Результат {14,16,12,21,13,17,24,25,26,27} означает, что число 0 находится на 14-й позиции в ана варела 240.150123456789, число 1 находится на 16 позиции в ана варела 240.150123456789…

2. =MIN({14,16,12,21,13,17,24,25,26,27}): Функция MIN получает минимальное значение массива. Здесь результат 12.

=LEFT(B3,C3-1)

LEFT(ana varela 240.15,12-1) это означает, что функция LEFT извлекает первые 11 символов из левой части текстовой строки «ana varela 240.15». Конечный результат — ана варела.

=RIGHT(B3,LEN(B3)-C3+1)

1. LEN(B3)-C3+1:

  • Функция LEN вычисляет общую длину текстовой строки (ana varela 240.150123456789) в B3 и возвращает результат как 17.
  • 17-12 + 1: Общая длина чисел в ана варела 240.15. Результат — 6.

2. =RIGHT(B3,6): Функция ВПРАВО извлекает 6 символов из правой части ana varela 240.15. И окончательный результат — 240.15.


Связанные функции

Функция Excel MID
Функция Excel MID используется для поиска и возврата определенного количества символов из середины данной текстовой строки.

Функция поиска в Excel
Функция Excel FIND используется для поиска строки внутри другой строки и возвращает начальную позицию строки внутри другой строки.

Функция ВЛЕВО в Excel
Функция Excel LEFT извлекает заданное количество символов из левой части предоставленной строки.

Функция Excel ВПРАВО
Функция Excel RIGHT извлекает определенное количество символов из правой части текстовой строки.

Функция ДЛСТР в Excel
Функция Excel LEN возвращает количество символов в текстовой строке.


Родственные формулы


Лучшие инструменты для работы в офисе

Kutools for Excel — Помогает вам выделиться из толпы

Хотите быстро и качественно выполнять свою повседневную работу? Kutools for Excel предлагает 300 мощных расширенных функций (объединение книг, суммирование по цвету, разделение содержимого ячеек, преобразование даты и т. д.) и экономит для вас 80 % времени.

  • Разработан для 1500 рабочих сценариев, помогает решить 80% проблем с Excel.
  • Уменьшите количество нажатий на клавиатуру и мышь каждый день, избавьтесь от усталости глаз и рук.
  • Станьте экспертом по Excel за 3 минуты. Больше не нужно запоминать какие-либо болезненные формулы и коды VBA.
  • 30-дневная неограниченная бесплатная пробная версия. 60-дневная гарантия возврата денег. Бесплатное обновление и поддержка 2 года.

Лента Excel (с Kutools for Excel установлены)


Вкладка Office — включение чтения и редактирования с вкладками в Microsoft Office (включая Excel)

  • Одна секунда для переключения между десятками открытых документов!
  • Уменьшите количество щелчков мышью на сотни каждый день, попрощайтесь с рукой мыши.
  • Повышает вашу продуктивность на 50% при просмотре и редактировании нескольких документов.
  • Добавляет эффективные вкладки в Office (включая Excel), точно так же, как Chrome, Firefox и новый Internet Explorer.

Снимок экрана Excel (с установленной вкладкой Office)

 

Имеем столбец с подобным содержаним:  
0202 Гантеля резиновая 150 мм  
020543 Кольцо резиновое 70 мм  
02064 Кольцо резиновое 80 мм  

  Подскажите пожалуйста:    
Как разделить цифровой код(часто кроме цифр содержит «/») и текста в разные столбцы?  
psкакто я виде на форуме подобный код, но сейчас не могунайти. да и обрабатывал он не совсем корректно.

 

New

Пользователь

Сообщений: 4582
Регистрация: 06.01.2013

Я не специалист по формулам, но попробую )  

  Предположим, что текст «0202 Гантеля резиновая 150 мм» находится в ячейке А1, то можно в ячейку В1 ввести формулу  

  =ЛЕВСИМВ(A1;НАЙТИ(» «;A1))  

  которая нам вернёт значение кода «0202»  

  А в ячейку С1 можно ввести формулу  

  =ПСТР(A1;НАЙТИ(» «;A1)+1;ДЛСТР(A1))  

  которая нам вернёт текст после кода  

  Подходит, нет?

 

Pavel55 , вау! на простом столбце все получилось!  
ОГРОМНОЕ СПАСИБО!!!  
попробую это на более сложных столбцах ;)

 

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

 

пример сложных данных:  
9450/4450 ХИЛЛс ДИЕТА кон.д/кошек S/D 156гр*24  
5280 ХИЛЛc НБ Корм сух.д/КОТЯТ Курица/овощи 300гр*6  
2806 12589 Brit Care Cat Light д/стареющих кошек, склонных к полноте всех пород 7,5кг  
ПРО ПАК БИСКВИТ Смат Риводс Мини 200гр

 

kim

Пользователь

Сообщений: 3139
Регистрация: 23.12.2012

Игорь

=ЕСЛИ(ЕЧИСЛО(—ЛЕВСИМВ(A1;1));ЛЕВСИМВ(A1;МИН(ПОИСК(«/»;A1);ПОИСК(» «;A1))-1);A1)  
Для первого столбца. По аналогии для второго напишите сами?

 

kim

Пользователь

Сообщений: 3139
Регистрация: 23.12.2012

Игорь

Кстати если для первой строки правильно так — 9450/4450  
то достаточно  
=ЕСЛИ(ЕЧИСЛО(—ЛЕВСИМВ(A1;1));ЛЕВСИМВ(A1;ПОИСК(» «;A1)-1);A1)

 

Dophin

Пользователь

Сообщений: 2684
Регистрация: 01.01.1970

 

kim

Пользователь

Сообщений: 3139
Регистрация: 23.12.2012

Игорь

 

:( совсем не понимаю как это работает :(((((  
буду вникать и RTFM :(  

  остается вопрос с отсутствием артикула в начале строки ПРО ПАК БИСКВИТ Смат Риводс Мини 200гр  
потому как вся строка ереносится в стлбец артикулов :(  

  ps и еще вопрос сразу —  как избавиться от возможны символов в конце строки типа *# , *## («звездочка число») ? заменой не получается, т.к эксель принимает * за универсальный символ-заменитель :(

 

Смотрите текстовые функции. Например =ПОДСТАВИТЬ()

 

kim

Пользователь

Сообщений: 3139
Регистрация: 23.12.2012

Игорь

Для замены # на пусто можно =ПОДСТАВИТЬ(A1;»#»;»»)  
Для звездочки =ПОДСТАВИТЬ(A1;»*»;»»)  
Про артикулы не понял…

 

kim

Пользователь

Сообщений: 3139
Регистрация: 23.12.2012

Игорь

 

вот теперь так как нужно :) спасибо!  
куда дэньги слать ;)  

  ps вопрос про *# , *## пока открыт.  
Смысл в том , что часто в конце строки указано количество еиниц в упаковке(*6, *24 и т.п.)  
под # я подразумевал цифры. еще бывают варианты /# и /##    
вот :(

 

kim

Пользователь

Сообщений: 3139
Регистрация: 23.12.2012

Игорь

Я так понимаю, Вы вообще хотите от них избавиться?

 

{quote}{login=sergejkov}{date=11.10.2009 07:50}{thema=Re: }{post}ps вопрос про *# , *## пока открыт.({/post}{/quote}  
Про звездочки вам ведь давно ответили. Ответы читали?

 

{quote}{login=kim}{date=11.10.2009 09:03}{thema=}{post}Я так понимаю, Вы вообще хотите от них избавиться?{/post}{/quote}  
Даже не знаю как Вас отблагодарить!  
Это именно то, что нужно!  
Оромнейшая Вам благодарность!

 

Помогите разобраться. Нужно удалить код наименований товаров который стоит вконце. в exel не очень силен, разбираюсь по-тихоньку, поэтому лучше готовую формулу. Очень нада. Формат у всех ячеек примерно такой  

  Активатор замка электрический S11-6205360  
Амортизатор 5-й двери правый 6309020-0000  
Амортизатор задний 271.00.00 плаза  
Амортизатор задний BQ2915050-60AO  

  Нужно как то отделить эти номера

 

Или четкий критерий, из чего состоит код, например цифры, знаки «-» и «.», латинские буквы.  
Или пример с ~30 строками в Excel, что есть и что надо получить, в соотв. с Правилами

http://www.planetaexcel.ru/forum.php?thread_id=8735  

  Амортизатор задний 271.00.00 плаза — код «271.00.00» или «271.00.00 плаза»?

 

{quote}{login=Максим}{date=04.04.2011 01:56}{thema=}{post}Помогите разобраться. {/post}{/quote}Побольше бы данных, хочется посмотреть из чего код состоит. ..И формат желательно *.xls

 

Владимир

Пользователь

Сообщений: 8196
Регистрация: 21.12.2012

Это я был.

«..Сладку ягоду рвали вместе, горьку ягоду я одна.»

 
 

{quote}{login=}{date=04.04.2011 02:32}{thema=Re: }{post}Побольше бы данных, хочется посмотреть из чего код состоит. ..И формат желательно *.xls{/post}{/quote}  
Вот пример

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Вас давно просят четкие критерии кода.  
Из «Подшипник 180202 генератора» удалится «генератора», Вам так и нужно?

 

{quote}{login=The_Prist}{date=04.04.2011 03:56}{post}Пишет ИМЯ?{/post}{/quote}  
Работает. Только мне нужно текст отделить,а не коды.  
Есть мысли?

 

{quote}{login=vikttur}{date=04.04.2011 04:12}{thema=}{post}Вас давно просят четкие критерии кода.  
Из «Подшипник 180202 генератора» удалится «генератора», Вам так и нужно?{/post}{/quote}  
Это не страшно, таких позиций не очень много.  
Думаю просто их так4 и оставить

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Пытать Вас, что ли? Что предпочитаете — средневековье или электрический стул? :)  
Вы написали, что формула работает, значит, кодом является все, что после последнего пробела?!  

  «Подшипник 180202 генератора» — где здесь текст, где код?  
«Подножки Universal Great Wall Hover» — здесь, похоже, без кода?  
«Подрамник двигателя на BQб» — с этим что?

 

даже если так всё будет работать,замечательно.  
просто на самом деле есть и позиции без номеров, есть номера перед текстом.  
Но мне нужно чтоб уюрать эти номера

 

{quote}{login=The_Prist}{date=04.04.2011 04:30}{post}=ПОДСТАВИТЬ(RC[-1];СЖПРОБЕЛЫ(ЛЕВСИМВ(ПРАВСИМВ(» «&ПОДСТАВИТЬ(СЖПРОБЕЛЫ(RC[-1]);» «;ПОВТОР(» «;60));60);60));){/post}{/quote}
Вот это, то что надо!!!!!!!  
Спасибо огромное!!!!!!!

 

Julia

Пользователь

Сообщений: 15
Регистрация: 01.01.1970

#30

16.05.2012 14:13:24

вот пример      
KH 8625—8шт.  
BG 1802001-3—4шт.  
KH 23020007—18шт.  
KH 8629/8—8шт.  
KH 23020008—12шт.  

    подскажите пожалуйста как отделить символы которые находятся до —шт.    
Очень нужно !!!

Sometimes it’s not possible to separate data yourself before putting it into an Excel spreadsheet. Often, the information from old data files gets lumped into a single cell. The same can happen if you are trying to copy information from a PDF file. Fortunately, you don’t have to separate the information all by yourself. You can separate numbers from text in Excel, provided you specify what needs to be separated.

  1. Open Excel

  2. Open the Excel file that contains the garbled data. Take a good look to see where the data has been placed. Long strings of data may appear to occupy an entire row, but are often in just a single cell. For example, if the data is in the first row, click on the second cell and look at the Formula Bar above the spreadsheet, if it’s a blank field, that cell is empty.

  3. Select the Data Column

  4. Select the first column containing data that you want to divide into columns. Excel’s Convert Text to Columns Wizard works only on one column at a time. If the data is in the first column, for example, click on the letter «A» above the column to select the entire column.

  5. Open the Convert Text to Columns Wizard

  6. Click the «Data» menu and then click the «Text to Columns» icon, which is located in the Data Tools section of the Data ribbon. A dialog window opens.

  7. In most cases, chunks of data you want to convert to columns will be separated by commas, tabs or other punctuation. In this case, select the «Delimited» option. If the data chunks are small and are separated by spaces, select «Fixed Width.» Note that if you choose Fixed Width, every word after a space will be put into its own column. After you click «Next,» a preview appears showing you what the spreadsheet will look like when you have finished. If you don’t like what you see, you can customize it or click the «Back» button to choose a different option.

  8. Note you may want to include extra spaces in the Excel so the data doesn’t overwrite the existing data when text and numbers are overwritten.

Using Fixed Width Conversion

Fixed Width conversion is best for small pieces of data that are all separated by spaces, with no spaces between words or numbers. For example, «32 oranges 52 apples» includes four chunks of data separated by spaces, so it will appear in four columns. However «32 oranges and apples» will also appear in four columns. If you want «oranges and apples» together in one column, you may want to drag the line so it is one cell. If two or more pieces of data are in the same column, you can split cells when the conversion is done.

In the preview area, you can manually adjust the column separators, simply by clicking on the preview. Dragging a line moves it, while double-clicking it deletes the line. To add a line, click on the preview where you want it to appear.

Using Delimited Data Conversion

Even when the text is separated by spaces, the Delimited option is usually best to use, because it gives you more ways to separate the data.

First, specify what is separating the data chunks. These can include tabs, semicolons, commas, spaces or you can type any other character in the available field. You can choose as many of these options as needed.

Using a Text Qualifier in Delimited Data

Often, text is placed in quotation marks or apostrophes. If this is the case, you can select either as a text qualifier. Chunks of data within either of these punctuation marks will be placed in a single column, even if there are spaces or another deliminator within the text.

For example, if you have a space and a comma as a deliminator but have chunks of text inside quotation marks, like «apples, oranges and peaches,» then using quotation marks will keep «apples, oranges and peaches» in one column rather than each word in its own column.

Working With Consecutive Deliminators

If you have selected more than one deliminator, you can specify if a subsequent deliminator should be skipped or not by clicking the «Treat consecutive deliminators as one» option. For example, if both commas and spaces are selected, without this option enabled, any space after a comma would be given its own column. If you treat consecutive deliminators as one, Excel will ignore the space after each comma.

Formatting Destination Columns

Both the Delimited and Fixed Width conversion options give you an opportunity to format each column before you convert the data. The options include General, Text and Date formatting. You can also skip columns by selecting them and then clicking the «Do Not Import» option.

The Advanced button gives you the option to specify how decimals and thousands are separated when the column contains numbers. The default setting uses U.S. standards, but you can use commas to separate decimals, or spaces to separate thousands.

Понравилась статья? Поделить с друзьями:
  • Как в excel открыть файл mxl в excel
  • Как в excel отделить определенное количество символов
  • Как в excel отделить целые числа
  • Как в excel открыть текстовый файл с разделителями
  • Как в excel отвязать значение от формулы