Страницы: 1
RSS
Как выделить из текстовой строки переменной длины только нужные числа?
 
Здравствуйте. Дан столбец с информацией. Нужно с этого столбца с каждой ячейки вытащить информацию, находящуюся между знаком "-" и  м.кв.. Пример  приложен. Спасибо!
 
Цитата
вытащить информацию, находящуюся между знаком "-" и  м.кв.
UDF
Код
Function iArea(cell$)
 With CreateObject("VBScript.RegExp")
     .Pattern = "-\s(\d+,\d+)(?= м.кв.)"
   If .test(cell) Then
     iArea = .Execute(cell)(0).SubMatches(0)
   Else
     iArea = ""
   End If
 End With
End Function
 
Код
=--СЖПРОБЕЛЫ(ПРАВСИМВ(ПОДСТАВИТЬ(ЛЕВСИМВ(A5;ПОИСК("м.кв.";A5)-2);" ";ПОВТОР(" ";50));50))
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Максим В., не проще через ПСТР(..., найти, найти) ?
Изменено: Marat Ta - 22.02.2021 16:10:10
 
Код
Function exec(t$)
     With CreateObject("VBScript.RegExp")
        .Pattern = "(-\s)([\d,]+)"
        exec = .Execute(t)(0).SubMatches(1)
    End With
End Function

Изменено: buchlotnik - 22.02.2021 16:08:53
Соблюдение правил форума не освобождает от модераторского произвола
 
Цитата
Marat Ta написал:
Максим В. , не проще через ПСТР
Мне показалось, что проще так как написал. ;)  
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Максим В., сложновато будет набирать такие "длинные" строки без ошибок..)
 
del
Изменено: buchlotnik - 23.08.2021 17:35:32
Соблюдение правил форума не освобождает от модераторского произвола
 
Marat Ta, извините, но не пойму в чём сложность.
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Предложите название темы. Заменят модераторы
 
Еще один монстрик :)
Код
=--СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A5;" ";ПОВТОР(" ";99));МАКС(1;НАЙТИ("м.кв";ПОДСТАВИТЬ(A5;" ";ПОВТОР(" ";99)))-110);99))

Вариант темы: извлечь текст из строки расположенный между двумя символами.
 
=--TRIM(RIGHT(SUBSTITUTE(LEFT(A5;FIND("м.кв.";A5)-1);"-";REPT(" ";15));15))

Marat Ta, У меня лично к Вам есть просьба. Накопите немного опыт а пока давайте свои решения, а не свои оценки тому или иному.
Изменено: БМВ - 22.02.2021 17:19:17
По вопросам из тем форума, личку не читаю.
 
БМВ, ваша формула и формула Максим В. идентичны
Изменено: Marat Ta - 22.02.2021 18:47:46
 
Цитата
buchlotnik написал:
а пример "простой" формулы покажете?
Цитата
БМВ написал:
Накопите немного опыт а пока давайте свои решения, а не свои оценки
Цитата
Marat Ta написал:
ваша формула и формула  Максим В. один в один
мдя, не помогло...
Изменено: buchlotnik - 22.02.2021 18:49:08
Соблюдение правил форума не освобождает от модераторского произвола
 
Цитата
Marat Ta написал:
БМВ , ваша формула
с Максимом мы как-нибудь сами разберемся  
а так
=--RIGHT(SUBSTITUTE(LEFT(A5;FIND("м.кв.";A5)-1);"-";REPT(" ";15));15)  :D

Цитата
buchlotnik написал:
мдя, не помогло...
ну да,

когдааа мы были молодыыыыми , и чуш прекрасную несли.  :D
По вопросам из тем форума, личку не читаю.
 
Как и обещал - всего 2 функции...)
Код
=ПСТР(A5;НАЙТИ("- ЗВЕЗДА -";A5)+11;НАЙТИ("м.кв.";A5)-НАЙТИ(""- ЗВЕЗДА -";A5)-11)
 
Marat Ta,
Ваша формула не везде сработает, потому что кроме "звезды" в диапазоне есть ONER. Думаю, лучше ориентироваться на второе тире.
Изменено: memo - 22.02.2021 20:12:55
 
Можно так
Код
=--ПСТР(A5;НАЙТИ(",";A5)-3;5)
 
Название темы мутное. Кто предложит вменяемое?
 
Вариант темы: Как выделить из текстовой строки переменной длины только нужные числа
 
Цитата
Юрий М написал:
Кто предложит вменяемое?
так два автора самых не универсальных решений  Сергей Карамов, Marat Ta,  
Кто вам сказал, что  везде будет звезда и не будет иных запятых?
По вопросам из тем форума, личку не читаю.
 
Уважаемый БМВ! А Вы сами то задачу правильно поняли. Ведь между "-" и "кв. м" находятся "ЗВЕЗДА - 67,35".  
 
Какой запрос - такой и ответ. Решение под конкретные данные - чем проще решение, тем эффективней.

Без всяких формул и функций: Ctrl+H .... заменить все: м.кв* на пусто и *- на пусто
Изменено: Marat Ta - 23.02.2021 06:15:15
 
СПАСИБО ВАМ БОЛЬШОЕ РЕБЯТА!!!!!!
 
Цитата
Сергей Карамов написал:
А Вы сами то задачу правильно поняли.
разделителями выступают "-" и "кв. м" , а вот "кв. м" служит еще и указателем, что перед ним нужные данные. ни о каких звездах речи нет. Кстати ваша формула обрезает сотые, а если 5 заменить на 6 то будет работать до площадей менее 1000. Не ну понятно что мало вероятно появление таких, но нужно более универсально подходить.

Цитата
Marat Ta написал:
Решение под конкретные данные - чем проще решение, тем эффективней.
и на выходе получите текст что потребует еще одну операцию. а если нужно оставить исходные, то это сперва скопируй, потом убери одно, потом другое, ну и в числа преобразуй- а так все простенько. Данные добавились или изменились , все по новой  :D .
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх