Страницы: 1
RSS
Заключить в скобки цифры на определенных позициях в тексте
 
Помогите преобразовать данные.
Есть вот такая запись 010460026601494821&NDF9wF800513000093ulNZ24010117823
Нужно получить (01)04600266014948(21)&NDF9wF800513000093ulNZ24010117823
Скобки должны быть физическими.
Изменено: vikttur - 23.08.2021 13:40:50
 
Vlad K,
кажется перемудрил, но вот вариант:
Код
="("&ЛЕВСИМВ(A1;2)&")"&ЛЕВСИМВ(ПРАВСИМВ(A1;ДЛСТР(A1)-2);ПОИСК("&";A1)-5)&"("&ПРАВСИМВ(ЛЕВСИМВ(A1;ПОИСК("&";A1)-1);2)&")"&ПРАВСИМВ(A1;ДЛСТР(A1)-ПОИСК("&";A1)+1)
 
Цитата
Vlad K написал: выбрать определенные цифры
И по какому правилу их определить?  а то что в примере, так просто
="("&REPLACE(REPLACE(REPLACE(A3;19;;")");17;;"(");3;;")")
По вопросам из тем форума, личку не читаю.
 
Цитата
Vlad K написал: Скобки должны быть физическими
Что значит физическими?
 
Цитата
выбрать определенные цифры и заключить в скобки
UDF
Код
Function iSkobki(cell$)
 With CreateObject("VBScript.RegExp")
     .Global = True
     .Pattern = "(\d{2})(\d{14})(\d{2})(.+)"
   If .test(cell) Then
     iSkobki = .Replace(cell, "($1)$2($3)$4")
   Else
     iSkobki = ""
   End If
 End With
End Function
 
Цитата
БМВ написал: И по какому правилу их определить?
14 и 7 знаков

evgeniygeo, спасибо огромное, работает, значит отличный вариант. Еще раз спасибо.
 
Цитата
Vlad K написал: 14 и 7 знаков
чаво? Ну 14 с трудом нашел в примере
(01)04600266014948(21)&NDF9wF800513000093ulNZ24010117823
а 7 то где?
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ: 14 с трудом нашел в примере
тогда уж было бы "берём в скобки первые 2 цифры, потом 14 пропускаем и берём ещё 2 или "берём первые 2 и последние 2 перед амперсандом"  :D

Вариантов много, а значит с большой вероятностью начнётся нытьё "вы не так поняли, ничего не работает"  :D
Изменено: Jack Famous - 23.08.2021 13:08:02
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
БМВ, ттам целое условие идет (01) 04600266014948   (21)   &NDF9wF и остальное надо убрать. С убрать я справлюсь а вот со скобками реально трудно для меня

Цитата
Jack Famous написал: берём в скобки первые 2 цифры, потом 14 пропускаем и берём ещё 2
вот так правильнее будет
Изменено: vikttur - 23.08.2021 13:27:18
 
Вам уже в 3 сообщении писали формулу, а если нужно убрать после wF, то так
Код
=ЛЕВСИМВ("("&ЗАМЕНИТЬ(ЗАМЕНИТЬ(ЗАМЕНИТЬ(A1;19;;")");17;;"(");3;;")");29)
 
msi2102? cпасибо, спасибо. сработало как нужно
Изменено: vikttur - 23.08.2021 13:28:10
 
В данном случае можно не мудрить, а просто собрать ,теперь хоть видно откуда 14 и 7 :-)
="("&MID(A1;2;2)&")"&MID(A1;3;14)&"("&MID(A1;17;2)&")"&MID(A1;19;7)
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх