Помогите, пожалуйста, справиться с задачей (пока не доконца освоил формулы для работы с текстом).
Нужно из ячейки с данными вытащить в другую ячейку только цвета. Пример (1 ячейка): radio|В наличии (доставка по РБ - бесплатно):||1|10|1|+|0.0000|+|0|+|0.00 radio|Цвет рамы|Серый|1|10|1|+|0.0000|+|0|+|0.00|catalog/colors/cthsq.jpg radio|Цвет рамы|Синий|1|10|1|+|0.0000|+|0|+|0.00|catalog/colors/sinij.jpg radio|Размер рамы|20"|1|10|1|+|0.0000|+|0|+|0.00 ------ В соседней ячейке нужно вставить из этой ячейки только цвета - Серый, Синий. Цветов в ячейке может быть и 1 и 5. Файл прикрепляю с примером. Заранее Огромнейшее СПАСИБО за мастер-класс!
Да, это постоянно в таком виде, единственное что может строчек в ячейке с |цвет рамы| или |размер рамы| быть больше, чем одно повторение. |цвет рамы| синий .... |цвет рамы| красный ..... |цвет рамы| черный ..... |размер рамы| 17 ... |размер рамы| 19,5 ....
Посмотрите реализацию на скорую руку - реализация до 6 возможных значений цвета в ячейке. Использованы доп.столбцы с С по Н (скрыты). Итоговая формула в ячейке с фоном.
З.Ы. Ещё, как вариант, решение через пользовательскую функцию на регулярных выражениях:
Скрытый текст
Код
Function ExtructColorNames(T As Range)
Dim objRE As Object, objMatch As Object
Dim sS As String, rC As Range, bytB As Byte
Set objRE = CreateObject("VBScript.RegExp")
With objRE
.Global = True
.Ignorecase = True
.Pattern = "\|Цвет рамы\|\W+\|"
End With
For Each rC In T
If objRE.test(rC) Then
Set objMatch = objRE.Execute(rC)
With objMatch
For bytB = 0 To .Count - 1
sS = sS & Mid(.Item(bytB).Value, 12, Len(.Item(bytB).Value) - 12) & ", "
Next bytB
End With
sS = Left(Trim(sS), Len(Trim(sS)) - 1)
ExtructColorNames = sS
End If
Next rC
End Function