Страницы: 1
RSS
"Вытащить" данные из строки.
 
Доброе время всем. Нужно помощь. В одном столбике несколько моделей автомобилей, нужно в вытащить только только первую модель в соседний столбик.
Заранее спасибо.
 
.
Код
=ПСТР(A2;1;ПОИСК(ПСТР(A2;1;ПОИСК(" ";A2)-1);A2;2)-2)
Изменено: artyrH - 31.03.2019 13:23:16 (не подходит)
 
немного изврата
Код
=ФИЛЬТР.XML("<x>"&ПСТР(ПОДСТАВИТЬ(A2;ЛЕВБ(A2;ПОИСК(" ";A2));"</y><y>"&ЛЕВБ(A2;ПОИСК(" ";A2)));5;999)&"</y></x>";"//y[1]")
Изменено: Андрей Лящук - 31.03.2019 12:38:41
 
UDF
Код
Function iModel(cell$)
 With CreateObject("VBScript.RegExp")
     .Global = True
     .IgnoreCase = True
     .Pattern = "^[0-9a-z ]+\d{4}-\d{4}"
     iModel = .Execute(cell)(0)
 End With
End Function
 
Андрей Лящук, я б не сказал что изврат))). Есть проблемка с вормулой LEXUS не переноситься. Т,е если марка автомобиля из одного слова то не переносит название марки.
Можно исправить?
 
Так нужно?
=TRIM(LEFT(A2;IFERROR(FIND(LEFT(A2;FIND(" ";A2)-1);A2;2)-1;99)))
По вопросам из тем форума, личку не читаю.
 
точно!!! спасибо.
Изменено: Sergey760 - 31.03.2019 23:20:50
 
Sergey760,
Код
=ФИЛЬТР.XML("<x>"&ПСТР(ПОДСТАВИТЬ(A2;ЛЕВБ(A2;ПОИСК(" ";A2&" ")-1);"</y><y>"&ЛЕВБ(A2;ПОИСК(" ";A2&" ")-1));5;999)&"</y></x>";"//y[1]")
 
ЭЭЭЭх Еще вопрос -Нужно из строки выделить данные (в файле)
 
Цитата
Sergey760 написал:
Нужно из строки выделить данные
Код
 =ЛЕВСИМВ(ПРАВСИМВ(A2;(ДЛСТР(A2)-11));(ДЛСТР(ПРАВСИМВ(A2;(ДЛСТР(A2)-11)))-9))
Изменено: Алиса Селезнева - 02.04.2019 09:24:23 (файлик перезалит)
Уж больно здесь красиво, жди беды..
 
Спасибо всем. Формулы работают. Но не совсем корректно. Например если
Cadillac   Escalade 2006-2014 Chevrolet Tahoe 2006-2014
то берет все данные, а нужно чтобы только первую Cadillac   Escalade 2006-2014  (выделил курсивом)
Прошу помочь.
Заранее спасибо.


 
Доброе время суток.
Цитата
Sergey760 написал:
Формулы работают. Но не совсем корректно. Например еслиCadillac   Escalade 2006-2014 Chevrolet Tahoe 2006-2014
А вы уверены, что этот вариант точно такой же как и представленный ранее?
Чуть усложнённый вариант Kuzmich на регулярках.
Код
Public Function getAutoModel(ByVal fromText As String) As String
    Dim pReg As Object
    Set pReg = CreateObject("VBScript.RegExp")
    pReg.Pattern = "[A-Z].*?\d{4} ?- ?\d{4}\)?"
    getAutoModel = pReg.Execute(fromText)(0).Value
End Function
 
Андрей VG

Вариант/Файл один в один. Ваша функция хороша, но не читает русские модели авто.

Спасибо.
 
Цитата
Sergey760 написал:
читает русские модели авто.
А где пример этого безобразия? Вы серьёзно считаете, что форум - это такое место где всё будут делать за вас? Пальцы тоже загибать?
 
Прошу прощения за свой английский )))) ВОт.
 
Код
pReg.Pattern = "[A-zА-я].*?\d{4} ?- ?\d{4}\)?"


Только у Ваза нет года с и по, по этому все равно ошибку выдаст, а вот если добавить года, то норм
Изменено: Ivan.kh - 22.04.2019 13:32:43
 
Цитата
Ivan.kh написал:
Только у Ваза нет года
Иван, если взять пример из #10, то тоже не сработает. Там текст "Фаркоп для Kia Rio хэтчбек (2010-2011) № 6747-A".
Sergey760, Сергей, вы уж определитесь со спектром примеров. Нет в Excel такой функции, как названия марок автомобилей, поэтому нужно либо иметь справочник таких названий на всех возможных алфавитах, плюс, чётко определить, что ещё вам нужно после названий. Либо работать с упрощённым в ручную набором данных, чтобы срабатывал формальный вариант.
Например, название автомобиля начинается с заглавной буквы или кириллицы или латыни и нужный текст завершается четыре цифры дефис ещё четыре цифры.
Интеллектуального распознавания в Excel нет. Да и с человеческим распознаванием могут быть проблемы. Пригласите менеджера по уборке вашего офиса - пусть попробует распознать марки автомобилей в тексте :)
Чуть усложним вариант Ивана.
Код
Public Function getAutoModel(ByVal fromText As String) As String
    Dim pReg As Object
    Set pReg = CreateObject("VBScript.RegExp")
    pReg.Pattern = "[A-ZА-Я].*?\d{4}(?: ?- ?\d{4}\)?)?"
    getAutoModel = pReg.Execute(fromText)(0).Value
End Function
Изменено: Андрей VG - 22.04.2019 13:44:22
 
Андрей VG, Я бегло просмотрел тему, не качая всех примеров. Глянул только последний...  :)
Страницы: 1
Наверх