Дано: Ячейки диапазона A3:F3 могут содержать значения вида: "", "р1", "з1", "р1з1", "з1р1", "какой-то текст, в том числе, содержащий буквы р и з". Вместо единицы могут быть другие цифры. Но ровно одна цифра после буквы. Задача:
В ячейке G3 вывести сумму цифр, идущих в диапазоне A3:F3 после буквы "р".
В ячейке H3 вывести сумму цифр, идущих в диапазоне A3:F3 после буквы "з".
Как реализовано сейчас: Определяю позицию символа "р", беру следующий символ после него. Так как "р" может вовсе не встретиться в ячейке, приходится оборачивать снаружи в ЕСЛИОШИБКА(). В итоге формула получается неэлегантной, для каждой ячейки я её копирую: =ЕСЛИОШИБКА(ПСТР(A3;ПОИСК("р";A3)+1;1);0)+...+ЕСЛИОШИБКА(ПСТР(F3;ПОИСК("р";F3)+1;1);0)
Проблемы:
Неэлегантное решение, формула сложна в восприятии и исправлении. В настоящей задаче столбцов далеко не 5...
Если в тексте встретится буква "р" или "з" (слово "резон", например ), а за ними не последует цифра, то произойдёт ошибка.
Огромное спасибо! Проверил, работает! Считал, что СУММ может работать только с готовым диапазоном, что нельзя ему результат вычислений подставить. Подскажите, пожалуйста, где можно подробности узнать? Что это за -- в ваших формулах?
Sub iSumma_р()
Dim j As Long
With CreateObject("VBScript.RegExp")
.Pattern = "р\d"
For j = 1 To 5
If .test(Cells(3, j)) Then
Cells(3, 7) = Cells(3, 7) + Mid(.Execute(Cells(3, j))(0), 2)
End If
Next
End With
End Sub