Страницы: 1
RSS
как избавиться от лишних скобок и цифр в ячейке, RegExp?
 
Доброго времени суток! Есть ячейки (десятки тыс) с данными, в которых содержатся диапазоны чисел (или просто одно число), заключенные в скобки и разделенные запятыми. К диапазонам прилеплен (необязательно) некий "код", состоящий из открывающей скобки и числа. Вот этот "код" нужно убрать  :cry:.  Оставшиеся диапазоны из скобок выделю сам  :idea:. Спасибо откликнувшимся.
Excel непознаваем как атом.
 
(?( - замена на ничего
(), - замена на ничего
(  -замена на ничего
) - замена на ничего


UPD - (10( и подобные не заметил
(*( - замена на ничего
(  -замена на ничего
) - замена на ничего
разобраться с запятыми
Изменено: БМВ - 28.09.2018 16:15:52
По вопросам из тем форума, личку не читаю.
 
mtts54, Вечер добрый!
1. Через заменить - а почему б нет?
2. PQ с этой задачей так же справляется - могу помочь, приложите только пример с большими данными. Правда только в пнд, скоро уже домой
3. Ну или макросами.  
В жизни нет ничего невозможного! Есть только недостаток знаний и умений.
 
mtts54, а почему в первой строке примера (1(1-8)),(2(9-16)) превращается в 1-8,9-16 ,
а во второй строке (10(1-8)),(11(1-8)) превращается в 101-8,111-8 ?
Изменено: Казанский - 28.09.2018 16:08:48
 
Доброе время суток.
Цитата
Казанский написал:
а почему в первой строке примера...
а во второй строке
Видимо, терпения составить пример "как надо" на вторую строку не хватило. Для первой вроде всё логично. Вариант
Код
Public Function getNumberSequence(ByVal fromText As String) As String
On Error GoTo errHandle
    Static pReg As Object
    Dim pItem As Object, sOut As String
    sOut = ""
    For Each pItem In pReg.Execute(fromText)
        If sOut = "" Then
            sOut = pItem.SubMatches(0)
        Else
            sOut = sOut & "," & pItem.SubMatches(0)
        End If
    Next
    getNumberSequence = sOut
Exit Function
errHandle:
    Set pReg = CreateObject("VBScript.RegExp")
    pReg.Global = True: pReg.Pattern = "\((\d+(?:(?:\-|,)\d+)?)(?=\))"
    Resume
End Function
 
БМВ для 1-строки прокатило, во второй строке есть коды двузначные, диапазон слипается с частью кода, да и в примере я допустил ошибку: должны остаться только диапазоны, которые раньше были в скобках.https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=profile_view&UID=94915
Изменено: mtts54 - 03.10.2018 14:16:30
Excel непознаваем как атом.
 
Цитата
mtts54 написал:
для 1-строки прокатило
выше подправил, сразу после поста от Казанский,
По вопросам из тем форума, личку не читаю.
 
Да, все-таки конец рабочего дня в пятницу сказывается  :sceptic: . Откуда у меня прицепилась гиперссылка в предыдущем сообщении? Спасибо за предложенные варианты. Протестирую и отпишусь в понедельник. Удачных выходных!
Excel непознаваем как атом.
 
Цитата
БМВ написал:
(*( - замена на ничего
Михаил, вы уверены, что ТС предоставил все возможные варианты? А  вдруг там будет )*)?
 
Спасибо всем, задача решена - оказалось достаточно (*( - замена на ничего и ) - замена на ничего от БМВ
Спасибо!   Код от   Андрей VG  протестирую в понедельник (все-таки это у меня должно выполняться в VBA).



 
Excel непознаваем как атом.
 
Андрей VG, Андрей, я никогда ни в чем не уверен. :-)
По вопросам из тем форума, личку не читаю.
 
Цитата
Андрей VG написал:
Вариант
Безукоризненно. Спасибо!
Excel непознаваем как атом.
Страницы: 1
Наверх