Привет всем! Есть табличка: 1 Семенов 10 1 Иванов 20 1 Петров 30 2 Ветров 40 2 Ирхин 50 3 Юрсин 60 4 Тайсов 70 5 Мукин 80 6 Вилков 90 7 Сетков 100 7 Горошков 110 1 Иванов 120 5 Семенов 130 Необходимо найти одинаковые значения в столбце А которые находятся рядом (именно рядом, а не по всей таблице), суммировать их, результат вывести в верхний столбик С, нижние значения удалить. Вот как должно получиться: 1 Семенов 60 1 Иванов 1 Петров 2 Ветров 90 2 Ирхин 3 Юрсин 60 4 Тайсов 70 5 Мукин 80 6 Вилков 90 7 Сетков 210 7 Горошков 1 Иванов 120 5 Семенов 130
У Семенова 60 - сумма всех чисел С1:C3 отобранных по столбику А (число 1), без учета 1 в конце, т.к. она находится отдельно от верхних 1.. Фамилии роли не играют, необходимо осуществить поиск по столбцу А, если ближайшие значения А совпадают, осуществить суммирование в ячейке С, если не совпадают, все остается как есть.. например, как в случае с Семеновым, т.к. A1=A2=A3, значит С1=С1+С2+С3, C2="";C3=""; если A1<>A2; C1=C1;C2=C2.. но в таблице есть еще одна A13=1; здесь С13=C13, т.к. значения ближайших А<>1
Sub fff()
a = [a2].CurrentRegion.Value
ReDim b(1 To UBound(a), 1 To 1)
For i = 2 To UBound(a)
j = 0: tt = 0
If i <> UBound(a) Then
Do While a(i + j, 1) = a(i + 1 + j, 1)
tt = tt + a(i + j, 3)
j = j + 1
If i + j = UBound(a) Then Exit Do
Loop
End If
b(i, 1) = a(i + j, 3) + tt
i = j + i
Next
[d1].Resize(UBound(b), 1) = b
End Sub