Страницы: 1
RSS
Из текста ячейки разнести характекристики в разные ячейки
 

Здравствуйте,

Обратите внимание на прикрепленный файл

как я вижу решение данных задач:

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

Надеюсь на помощь специалистов в Excel с этими вопросами.

 
Цитата
benel написал:
как я вижу решение данных задач:
решения вы огласили, хорошо...
А о самой задаче можно что ни будь узнать?
 
Есть исходные данные, которые находиться в столбце А
Задача состоит в получении в отдельных ячейках данные
- о Названии Ткани (смотри столбец D)
- о описании или цвете/оттенке ткани (смотри столбец B)
- о составе (смотри столбец C)
- о ширине (смотри столбец E)
 
а где тут цвет и название?
Salma стрейч гитары
Salma стрейч очки
 
Цитата
выделяем знаки до скобки и отнимаем на лево текст от скобки до первого пробела
UDF
Код
Function BeforeSkobki(cell As String) As String
 With CreateObject("VBScript.RegExp")
   .Pattern = "[а-я\./-]+\s(?=\()"
     If .test(cell) Then
       BeforeSkobki = .Execute(cell)(0)
     End If
 End With
End Function

Function iSkobki(cell As String) As String
 With CreateObject("VBScript.RegExp")
   .Pattern = "\((.+?)\)"
     If .test(cell) Then
       iSkobki = .Execute(cell)(0).Submatches(0)
     End If
 End With
End Function

Function Tkan(cell As String) As String
 With CreateObject("VBScript.RegExp")
   .Pattern = "[а-я\./-]+\s(?=\()"
     If .test(cell) Then
       Tkan = Left(cell, .Execute(cell)(0).FirstIndex)
     End If
 End With
End Function

Function iWidth(cell As String) As Integer
 With CreateObject("VBScript.RegExp")
   .Pattern = "\d+(?=см)"
     If .test(cell) Then
       iWidth = .Execute(cell)(0)
     End If
 End With
End Function
 
benel, код от Kuzmich оформил вам в макрос. Откройте файл, нажмите на синюю кнопку
 
Цитата
New написал:
а где тут цвет и название?Salma стрейч гитары Salma стрейч очки
просто это не цвета, а расцветки или принты :-)

Вот тут "Джерси жаккард Эден морская волна" - интереснее.
Изменено: БМВ - 22.09.2020 00:12:32
По вопросам из тем форума, личку не читаю.
 
У него в файле морская волна как цвет идёт)
 
Цитата
New написал:
как цвет идёт
это понятно, но вот как без справочника определить что это "цвет" ???
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
как без справочника определить что это "цвет" ???
этточно :)
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Цитата
БМВ написал:
как без справочника определить
кстати, да. Я сперва думал, чтобы создать справочник всех цветов, всех названий материалов и потом поиском в циклах искать их в тексте
Изменено: New - 22.09.2020 10:55:52
 
У каждого поставщика своё обозначение. Не выйдет.
 
так что варианты предложенные нами не подошли?
 
Михаил Лебедев,
Вывод в отдельный столбец всех цветов/дизайнов убивает всю малину, когда позиций от 2000+. Ещё момент, обратите внимание на "очки" и "розочки" в столбце "Цвет" вашего варианта файла. В любом случае спасибо! за внимание и подсказки по формулам.

New,
Макросами пока не владею, но обезательно гляну
Спасибо!

БМВ,
Особая благодарность так как в основном предложенные вами формулы использовал, но как вы правильно заметили "морская волна" чуть подпортила картину.
Спасибо!

Kuzmich,
Спасибо!

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

см. прикреплённый файл.

Есть ли формула, если может макрос, выделяющий ПВОТОРЯЮЩИЕСЯ слов/выражений до скобки
Изменено: benel - 22.09.2020 15:44:15
Страницы: 1
Наверх