Имеется ячейка с содержимым (артикул-пробел-одно\несколько слов наименования) . Нужно вырезать артикул и вставить в отдельную ячейку, а в исходной ячейке должно остаться наименование.
И еще хотелось бы формулу для варианта, когда артикул находится после наименования.
Программное обеспечение
Подскажите формулу для excel?..
Вариант предложенный Генрихом Монт не очень удачный, Так как ваш пример будет разделен на 4 столбца, а объединять столбцы без потери данных, это тоже задача, которую придется решать.
Самое простое это применить макрос.
Как вставить. Alt+F11 Откроется проект VBA. В меню Insert выбрать Module, откроется окно для вставки Module1. В окно вставить код.
Код
Sub Macros()
Set objRegExp = CreateObject("VBScript.RegExp")
For Each cell In Selection
objRegExp.Pattern = "[A-ZА-ЯЁ]\d{5}[A-ZА-ЯЁ]\s?"
objRegExp.IgnoreCase = True ' если эту строку убрать из макроса, то будет учитываться регистр букв.
If objRegExp.Test(cell.Value) Then
Set objMatches = objRegExp.Execute(cell.Value)
Set objMatch = objMatches.Item(0)
Cells(cell.Row, cell.Column + 1) = objMatch
cell.Value = LTrim(objRegExp.Replace(cell.Value, ""))
End If
Next
End Sub
Вернутся к окну Экселя. Выделить диапазон ячеек с данными, которые надо разделить. Alt+F8, выбрать Macros и нажать выполнить. Все.
В макросе "[A-ZА-ЯЁ]\d{5}[A-ZА-ЯЁ]\s?" это шаблон поиска, в котором:
[A-ZА-ЯЁ] - одна любая буква
\d{5} - пять цифр (если цифр больше измените число 5 на другое)
\s - пробел, ? -указывает что пробел один или его нет
Макрос переносит артикул в соседнюю ячейку не зависимо от его положения в исходной строке.
Тестовый файл
Самое простое это применить макрос.
Как вставить. Alt+F11 Откроется проект VBA. В меню Insert выбрать Module, откроется окно для вставки Module1. В окно вставить код.
Код
Sub Macros()
Set objRegExp = CreateObject("VBScript.RegExp")
For Each cell In Selection
objRegExp.Pattern = "[A-ZА-ЯЁ]\d{5}[A-ZА-ЯЁ]\s?"
objRegExp.IgnoreCase = True ' если эту строку убрать из макроса, то будет учитываться регистр букв.
If objRegExp.Test(cell.Value) Then
Set objMatches = objRegExp.Execute(cell.Value)
Set objMatch = objMatches.Item(0)
Cells(cell.Row, cell.Column + 1) = objMatch
cell.Value = LTrim(objRegExp.Replace(cell.Value, ""))
End If
Next
End Sub
Вернутся к окну Экселя. Выделить диапазон ячеек с данными, которые надо разделить. Alt+F8, выбрать Macros и нажать выполнить. Все.
В макросе "[A-ZА-ЯЁ]\d{5}[A-ZА-ЯЁ]\s?" это шаблон поиска, в котором:
[A-ZА-ЯЁ] - одна любая буква
\d{5} - пять цифр (если цифр больше измените число 5 на другое)
\s - пробел, ? -указывает что пробел один или его нет
Макрос переносит артикул в соседнюю ячейку не зависимо от его положения в исходной строке.
Тестовый файл
Артикул находится так
=ЛЕВСИМВ (A2;НАЙТИ (" ";A2))
Наименование определяется так :
=ПСТР (A2;НАЙТИ (" ";A2);99)
=ЛЕВСИМВ (A2;НАЙТИ (" ";A2))
Наименование определяется так :
=ПСТР (A2;НАЙТИ (" ";A2);99)
Rapuk Saltanat
А если артикул после наименования, которое из нескольких слов? Это в условии задачи есть.
Ильнур Файзулин
огромное спасибо за Ваше ЗДЕСЬ !!!
Похожие вопросы
- Помогите с формулой в Excel для выведения слова, исходя из заданного диапазона
- Помогите с формулой в excel!
- Повторение формулы в Excel
- #ЗНАК! - В Excel при вводе в формулы со ссылкой на ячейку в другой таблице в другом каталоге появляется значение #ЗНАК!
- Как объединить ячейки в Excel при помощи формул?
- Как в MS Excel 2007 решить проблему с длинными формулами?
- Подскажите, какую формулу нужно ставить в Excel?
- Как преобразовать сканированный файл PDF в Excel или Word?
- Помогите ответить на вопросы MS Excel (последний)
- Подскажите, как использовать функцию СЧЕТЕСЛИ в Excel если диапазоп ячеек находится на разных листах.