Страницы: 1
RSS
Как вычленить числа перед буквами из текстовой строки?
 
имеются значения, состоят из букв перед которыми стоит цифра (от 1 до 10) - 6А4Г, 10А, 2А2Б2В2Г2Д, 5А5А (например)
необходимо вычленить числа перед каждой буквой (6А4Б- вытащить цифры "6" и "4", прим), но я сталкиваюсь с проблемой, если число равняется "10"(10А, прим), либо если одна буква используется два раза (5А5А, пример-необходимо чтобы выдавало сумму с двух букв)
подскажите, как изменить форумулу
 
Марина Лепская, предложите новое название темы, из которого будет понятна ЗАДАЧА - модераторы поменяют.
 
Изьятие значений из текста
 
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=53752&am...

Формула вводится в ячейку сочетанием клавиш Ctrl+Shift+Enter
Изменено: Marat Ta - 03.03.2021 16:21:30
 
Marat Ta,  зачем такой огромный шрифт? И прекратите писать через строку. Приведите своё сообщение в порядок.
 
Цитата
Marat Ta написал:
Формула вводится в ячейку сочетанием клавиш Ctrl+Shift+E
все что кидаете - это немного не то, что мне надо, либо я не понимаю как это применить, спасибо)
Изменено: Марина Лепская - 03.03.2021 16:22:28
 
Marat Ta, можно использовать кнопку ссылка на панели, чтобы прятать ссылки в текст - так выглядит намного лучше  ;)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Марина Лепская, в файле ваш пример с функцией подсчета.  
Изменено: Marat Ta - 03.03.2021 19:32:01
 
Код
Sub Tablica()
Dim i As Long
Dim j As Long
Dim iLastRow As Long
Dim Matches As Object
Dim re As Object
  iLastRow = Cells(Rows.Count, 3).End(xlUp).Row
   Set re = CreateObject("VBScript.RegExp")
     re.Global = True
     re.Pattern = "\d+[А-Ж]"
     Range("E5:K8") = 0
  For i = 5 To iLastRow
    Set Matches = re.Execute(Cells(i, "C"))
    For j = 0 To Matches.Count - 1
            Select Case Right(Matches.Item(j), 1)
        Case "А"
          Cells(i, "E") = Cells(i, "E") + Left(Matches.Item(j), Len(Matches.Item(j)) - 1)
        Case "Б"
          Cells(i, "F") = Cells(i, "F") + Left(Matches.Item(j), Len(Matches.Item(j)) - 1)
        Case "В"
          Cells(i, "G") = Cells(i, "G") + Left(Matches.Item(j), Len(Matches.Item(j)) - 1)
        Case "Г"
          Cells(i, "H") = Cells(i, "H") + Left(Matches.Item(j), Len(Matches.Item(j)) - 1)
        Case "Д"
          Cells(i, "I") = Cells(i, "I") + Left(Matches.Item(j), Len(Matches.Item(j)) - 1)
        Case "Е"
          Cells(i, "J") = Cells(i, "J") + Left(Matches.Item(j), Len(Matches.Item(j)) - 1)
        Case "Ж"
          Cells(i, "K") = Cells(i, "K") + Left(Matches.Item(j), Len(Matches.Item(j)) - 1)
      End Select
    Next
  Next
End Sub
Изменено: Kuzmich - 03.03.2021 19:07:47
 
Массивная из расчета на двузначное число.
=SUM(IFERROR(--RIGHT(TRIM(MID(SUBSTITUTE($C5;E$4;REPT(" ";99));(ROW($1:$99)-1)*99+1;99));2);IFERROR(--RIGHT(TRIM(MID(SUBSTITUTE($C5;E$4;REPT(" ";99));(ROW($1:$99)-1)*99+1;99)));)))
Изменено: БМВ - 03.03.2021 20:42:54
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх