Страницы: 1
RSS
Вырезать отдельные слова из текста в ячейке
 
Добрый день!

Друзья,
помогите разобраться и сократить тот ужас который я создал..
Задача заключается в том, что нужно вырезать определенные слова из текста, а именно %, объем и все, что в скобках.
Во вложении пример, зеленым отметил, то, что вышло как нужно, дальше просто беда, не могу сохранить все условия.
Может есть более простой способ.
Заранее всем спасибо!
 
балуемся только винишком? в данных может быть пивко 0,5Л или 1,5Л с крепостью 4,9% или водочка 0,5Л или 1Л
Лень двигатель прогресса, доказано!!!
 
Сергей, не слишком ли гремучаая смесь получится :) ? Винишко, пивко и водочка.
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Разбить текст по столбцам и сцепить нужные  
 
Цитата
Максим В. написал:
не слишком ли гремучаая смесь получится
гулять так гулять  :D
формула для винишка из примера
Код
=ЗАМЕНИТЬ(ЗАМЕНИТЬ(ЛЕВСИМВ(A1;ЕСЛИОШИБКА(ПОИСК("(";A1)-2;100));ЕСЛИОШИБКА(ПОИСК("?,??Л";A1);100);5;);ЕСЛИОШИБКА(ПОИСК("%";A1)-2;100);3;)
Лень двигатель прогресса, доказано!!!
 
Цитата
и все, что в скобках.
UDF
Код
Function Skobki(cell As String)
 With CreateObject("VBScript.RegExp")
   .Global = True
   .IgnoreCase = True
   .Pattern = " \((.+)\)"
    If .test(cell) Then
     Skobki = .Execute(cell)(0).submatches(0)
    Else
     Skobki = ""
    End If
  End With
End Function
 
Цитата
occupiedwork написал:
нужно вырезать ....... и все, что в скобках.
Kuzmich, функция делает наоборот  :)  
Лень двигатель прогресса, доказано!!!
 
Сергей,
Это я показал, как вырезать то, что в скобках.
А вот так видимо надо ТС
Код
Function iNado(cell As String) As String
Dim arr
Dim i As Integer
Dim temp As String
 With CreateObject("VBScript.RegExp")
   .Global = True
   .IgnoreCase = True
   arr = Array("\(.+\)", "\d+(,\d)?%", "\d[\.,]\d+ ?Л")
  temp = cell
   For i = 0 To UBound(arr)
    .Pattern = arr(i)
    iNado = .Replace(temp, "")
    temp = iNado
   Next
 End With
End Function
Изменено: Kuzmich - 16.04.2020 19:01:46
 
Цитата
Сергей написал:
гулять так гулять   формула для винишка из примера
Очень сильно сократили, спасибо Сергей! Да может быть и другой вид алкоголя.
Небольшой вопрос, а если % не целый и формата 15,5 или 35,4? А литраж к примеру 0,449Л или 1Л?
 
Цитата
Небольшой вопрос, а если % не целый и формата 15,5 или 35,4? А литраж к примеру 0,449Л или 1Л?
А мою UDF пробовали?
 
Kuzmich,
спасибо большое, хороший, но на данный момент сложноватый для меня вариант, так как планируется добавление дополнительных нюансов, боюсь не смогу это потянуть. Если % не целый и формата 15,5 или 35,4 или литраж к примеру 0,449Л или 1Л и т.п. Мне уже не исправить :)
 
Цитата
Если % не целый и формата 15,5 или 35,4 или литраж к примеру 0,449Л или 1Л и т.п
Что не получается?
 
если бы нормальный пример с различными вариантами с самого начала приложили Kuzmich, бы сделал универсальный шаблон и не надо было бы туда ни чего добавлять, да и я поэкспериментировал бы с формулами а щас уже как то лениво
Лень двигатель прогресса, доказано!!!
 
Сергей,
все равно огромное спасибо, всего к сожалению не учел и возможно еще куча всего, буду учиться на ошибках!!  :)  
 
попаразитировал на коде Kuzmich, хотя из меня тот еще рунописец, но вроде доп вводные отрабатывает
Код
Function iNado(cell As String) As String
Dim arr
Dim i As Integer
Dim temp As String
 With CreateObject("VBScript.RegExp")
   .Global = True
   .IgnoreCase = True
  arr = Array("\(.+\)", "\d{1}Л|\d{1,2}\,\d{1,3}Л|\d+%|\d+")
  temp = cell
   For i = 0 To UBound(arr)
    .Pattern = arr(i)
    iNado = .Replace(temp, "")
    temp = iNado
   Next
 End With
End Function
Изменено: Сергей - 16.04.2020 15:38:18 (чет при вставке кода Л заменилось на Ё)
Лень двигатель прогресса, доказано!!!
 
Цитата
occupiedwork написал:
0,449Л

Недолив!!!!

Може в ассортименте и нет, но
Вино Кагор 2008,   красное полусладкое 0.75 л
32 Десертный/Вина Тамани 0.7 л
Вино Fanagoria Avtorskoe Vino №1 красное сухое 0.75 л

Лишатся важного признака из названия. Простите медведь он такой шалун :-)
Про крепкие напитки с годами молчу, а про Портвешок ......
Изменено: БМВ - 16.04.2020 17:39:50
По вопросам из тем форума, личку не читаю.
 
Сергей,
еще раз спасибо!!! Взял за основу!

Цитата
БМВ написал:
Недолив!!!!
Цена растет, а литраж уменьшается)) Суровые будни!
Страницы: 1
Наверх