Страницы: 1
RSS
Вычленить число из строки перед определенным словом
 
Доброго дня ! подскажите, пожалуйста , есть вот такая задачка Нужно вычленить число выделенное пробелами  стоящее перед словом "PART"
Число не всегда двухзначное может быть и единичным 3-4-5 значным
Например:
GLK0012863 69588058 1 60 0 60 PART: F6810CT-ND -> 60
GLK0012863 69588058 2 20 0 20 PART: 1727-6920-1-ND -> 20  
 
Если количество пробелов ПЕРЕД нужным числом одинаково:
=--ПСТР(ЛЕВБ(A2;НАЙТИ("PART:";A2)-2);НАЙТИ("/";ПОДСТАВИТЬ(A2;" ";"/";5));9)
Если цепляться за слово:
=--ПСТР(ПОДСТАВИТЬ(A2;" ";ПОВТОР(" ";99));НАЙТИ("PART:";ПОДСТАВИТЬ(A2;" ";ПОВТОР(" ";99)))-120;99)

Пример с вариантами надо в файле показывать. Для общего развития
 
Код
=ПСТР(A1;НАЙТИ("й";ПОДСТАВИТЬ(A1;" ";"й";ДЛСТР(ЛЕВСИМВ(A1;НАЙТИ(" PART";A1)-1))-ДЛСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЛЕВСИМВ(A1;НАЙТИ(" PART";A1)-1);" ";"й");"й";""))))+1;НАЙТИ(" PART";A1)-НАЙТИ("й";ПОДСТАВИТЬ(A1;" ";"й";ДЛСТР(ЛЕВСИМВ(A1;НАЙТИ(" PART";A1)-1))-ДЛСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЛЕВСИМВ(A1;НАЙТИ(" PART";A1)-1);" ";"й");"й";""))))-1)
 
Цитата
вычленить число выделенное пробелами  стоящее перед словом "PART"
UDF
Код
Function iChislo(cell$) As Long
 With CreateObject("VBScript.RegExp")
     .Global = True
     .Pattern = "\d+(?= PART:)"
   If .test(cell) Then
     iChislo = .Execute(cell)(0)
   Else
     iChislo = ""
   End If
 End With
End Function
 
То что надо ! спасибо огромное!  
Страницы: 1
Наверх