Страницы: 1 2 След.
RSS
Извлечь из текста порядковые номера, которые начинаются с английской B, P, W и C
 
Помогите решить проблему!
как можно совместить несколько вот таких формул в одну?
Код
=ПСТР(A1;ПОИСК("B";A1;1);5)
=ПСТР(A1;ПОИСК("P";A1;1);5)
=ПСТР(A1;ПОИСК("W";A1;1);5)
=ПСТР(A1;ПОИСК("C";A1;1);5)

То есть нужно из текста достать вот эти буквы B,P,W,C c порядковым номером что идет после них
Изменено: Atcdimon - 01.11.2019 09:59:13
 
Цитата
Atcdimon написал:
как можно совместить несколько вот таких формул в одну?
Можно вот так, вопрос что Вы хотите увидеть!?
Код
=ПСТР(A1;ПОИСК("B";A1;1);5)&ПСТР(A1;ПОИСК("P";A1;1);5)&ПСТР(A1;ПОИСК("W";A1;1);5)&ПСТР(A1;ПОИСК("C";A1;1);5)
 
Atcdimon,  в примере в русских словах английские буквы.
В поиске буквы В и С русские.
Полагаю искать нужно английские, а русские слова должны быть из русских букв.
Алексей М.
 
Цитата
АlехМ написал:
русские слова должны быть из русских букв
Alexey, zolotye slova :-)
По вопросам из тем форума, личку не читаю.
 
да все верно
 
Тема: Извлечь из текста порядковые номера, которые начинаются с английской B, P, W и C
Код
=ПСТР(A1;МИН(ЕСЛИ(ЕЧИСЛО(ПОИСК({"B":"P":"W":"C"};A1&"C"));ПОИСК({"B":"P":"W":"C"};A1&"C")));5)
Изменено: АlехМ - 01.11.2019 10:59:25
Алексей М.
 
спасибо огромное!все работает!
а можно еще к этой формуле добавить =СЖПРОБЕЛЫ(A:A)?
Изменено: Atcdimon - 01.11.2019 10:59:35
 
=TRIM(MID(A1;MIN(IFERROR(FIND({"B";"P";"W";"C"};A1);99));5))
Формула массива
По вопросам из тем форума, личку не читаю.
 
=СЖПРОБЕЛЫ(ПСТР(A1;МИН(ПОИСК({"B":"P":"W":"C"};A1&"BPWC"));5))
 
Мужики спасибо за помощь!очень выручили!
 
UDF
Код
Function iNomer(cell$) As String
 With CreateObject("VBScript.RegExp")
   .Global = True
   .IgnoreCase = True
   .Pattern = "[BPWC]\d+"
   If .Test(cell) Then
     iNomer = .Execute(cell)(0)
   End If
 End With
End Function
 
=СЖПРОБЕЛЫ(ВПР("*";ПСТР(A1;ПОИСК({"B":"P":"W":"C"};A1&"C");5);1;))
Изменено: АlехМ - 01.11.2019 19:52:17
Алексей М.
 
Для коллекции вариант на PQ:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content],
    AddedCustom = Table.AddColumn(Source, "результат", each Text.BeforeDelimiter( Text.Range( [текст], Text.PositionOfAny( [текст], {"B", "P","W","C"} ) ) , " ") )
in
    AddedCustom
Вот горшок пустой, он предмет простой...
 
Код
Sub Repair_LAT()   ' заменить русские буквы такими же по начертанию латинскими
  If TypeName(Selection) <> "Range" Then Exit Sub
  Dim arrENG(): arrENG = Array("C", "c", "E", "e", "T", "O", "o", "p", "P", "A", "a", "H", "K", "k", "X", "x", "B", "M")
  Dim arrRUS(): arrRUS = Array("С", "с", "Е", "е", "Т", "О", "о", "р", "Р", "А", "а", "Н", "К", "к", "Х", "х", "В", "М")
  Dim i%
  For i = 0 To UBound(arrENG)
     Intersect(Selection, ActiveSheet.UsedRange).Replace _
           What:=arrRUS(i), _
           Replacement:=arrENG(i), _
           LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=True
  Next i
End Sub

Возникла новая проблема с кириллицей и латиницей
раньше пользовался вот этим макросом
но я его применял уже к вытянутому тексту,а сейчас по сути нужно к изначальному тексту применить,а он коверкает весь текст.подскажите что делать?
я предполагаю что нужно в этом макросе оставить только те буквы которые мне надо,или добавить,просто не знаю как это делается
либо же можно как то все это сделать в формуле
Изменено: Atcdimon - 01.11.2019 23:55:49
 
Atcdimon, код следует оформлять соответствующим тегом: ищите такую кнопку (см. скрин) и исправьте своё сообщение.
И код копируйте при русской раскладке клавиатуры - не будет проблем с кириллицей.
 
Цитата
Юрий М написал:
код следует оформлять соответствующим тегом
А смысл? Вопрос не по теме.
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
А смысл
Пригодится на будущее )
 
Да я согласен что не по теме ,но получается что эти формулы не достают нужную информацию из-за корявого текста)
может можно как то решить проблему правописанием с помощью формулы,без использования макроса
Изменено: Atcdimon - 02.11.2019 00:19:53
 
Цитата
Atcdimon написал:
эти формулы не достают
они работают с тем критерием, что вы написали. Вам нужно код извлечь? Он имеет определенный вид- так? Приведите более корректный пример с разнообразием ошибок и.... но это другая тема.
По вопросам из тем форума, личку не читаю.
 
формулы работают,с ними все ок!но если в изначальном тексте стоит русская буква такая же как английская,то нужная информация не достается
 
Цитата
Atcdimon написал:
нужно из текста достать вот эти буквы B,P,W,C c порядковым номером что идет после них
Формулы выполняют это условие? - да. Результат не тот - значит критерий не верен.
=TRIM(MID(A1;MIN(IFERROR(FIND({"B";"P";"W";"C"}&{0\1\2\3\4\5\6\7\8\9};A1);99));5))
Изменено: БМВ - 02.11.2019 00:41:54
По вопросам из тем форума, личку не читаю.
 
у меня пишет ошибка в формуле
 
прям так и пишет? и в файле что я прикладываю?
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал: прям так и пишет? и в файле что я прикладываю?
по поводу формулы так и пишет,а по поводу файла я не то имею ввиду
наличие W B002s    Kopичнeвый B002s
посмотрите мой файл
 
=TRIM(MID(A3;MIN(IFERROR(FIND({"B";"P";"W";"C"}&{0\1\2\3\4\5\6\7\8\9};SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3;"В";"B");"Р";"P");"С";"C"));99));5))
По вопросам из тем форума, личку не читаю.
 
в вашем примере работает ,а вот в моем exel все так же пустые ячейки
Изменено: Atcdimon - 02.11.2019 01:33:06
 
Цитата
БМВ написал:
Формула массива
и с тех пор она не стала обычной.
Изменено: БМВ - 02.11.2019 07:53:47
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
БМВ  написал:Формула массиваи с тех пор она не стала
спасибо!работает)
 
Atcdimon, написал
Цитата
а вот в моем exel все так же пустые ячейки
У вас там русские буквы С и Р
Код
Function iNomer(cell$) As String
 With CreateObject("VBScript.RegExp")
   .Global = True
   .IgnoreCase = True
   .Pattern = "[BPWCСРВ]\d+"
   If .Test(cell) Then
     iNomer = .Execute(cell)(0)
   End If
 End With
End Function
 
Цитата
Kuzmich написал:
У вас там русские буквы С и Р
Да и ещё попадается русская 'в',потому что текст наберают на русской раскладке типа английскими буквами,то-есть вместо английской 'B' пишут  русскую 'В' и возникает проблема
Страницы: 1 2 След.
Наверх