Есть массив, огромный(несколько книг, в книгах около 100 листов на каждой) столбец а-названия, повторяются разное количество раз. Столбец б-стоимость, разная. нужно сделать одну таблицу(на одном листе), где А-название(повторяется 3 раза) Б-средняя цена, первая цена, последняя цена. Условие выводить только если конечная цена больше первой и средней. Описал для общего понимая. Задача, которую не могу решить-найти среднюю стоимость(повторю разное количество позиций, много книг...). Буду благодарен за помощь.
Есть массив, огромный(несколько книг, в книгах около 100 листов на каждой) столбец а-названия, повторяются разное количество раз. Столбец б-стоимость, разная. нужно сделать одну таблицу(на одном листе), где А-название(повторяется 3 раза) Б-средняя цена, первая цена, последняя цена. Условие выводить только если конечная цена больше первой и средней. Описал для общего понимая. Задача, которую не могу решить-найти среднюю стоимость(повторю разное количество позиций, много книг...). Буду благодарен за помощь.exelskatyazhelyi
znach = Cells(1, 1) Dim n As Integer n = Application.WorksheetFunction.CountA(Columns("A")) ' считаем количество ячеек Dim i, s As Integer Dim summ As Integer For i = 1 To n If Cells(i, 1) = znach Then summ = WorksheetFunction.Average(Range(Cells(1, 2), Cells(i, 2)))
Range(Cells(1, 3), Cells(i, 3)).Value = summ
End If Next i
End Sub
[/vba]
вот что получилось, осталась только одна проблема выводит все полученные средние значения в соседний столбец. как сделать чтобы выводилось только последнее значение? надо изменить вот эту строку
Range(Cells(1, 3), Cells(i, 3)).Value = summ
[vba]
Код
Sub tt()
znach = Cells(1, 1) Dim n As Integer n = Application.WorksheetFunction.CountA(Columns("A")) ' считаем количество ячеек Dim i, s As Integer Dim summ As Integer For i = 1 To n If Cells(i, 1) = znach Then summ = WorksheetFunction.Average(Range(Cells(1, 2), Cells(i, 2)))
Range(Cells(1, 3), Cells(i, 3)).Value = summ
End If Next i
End Sub
[/vba]
вот что получилось, осталась только одна проблема выводит все полученные средние значения в соседний столбец. как сделать чтобы выводилось только последнее значение? надо изменить вот эту строку
KuklP, ну т.е. в первом столбце ищем одинаковый товар, во втором его цена. выводим среднее значение на последнем повторяющемся элементе.
KuklP, ну т.е. в первом столбце ищем одинаковый товар, во втором его цена. выводим среднее значение на последнем повторяющемся элементе.exelskatyazhelyi
Sub tt() Dim j&, znach$, i&, summ& znach = Cells(1, 1): j = 1 For i = 1 To Application.WorksheetFunction.CountA(Columns("A")) + 1 If Cells(i, 1) <> znach Then summ = WorksheetFunction.Average(Range(Cells(j, 2), Cells(i - 1, 2))) Cells(i - 1, 3).Value = summ: znach = Cells(i, 1): summ = 0: j = i End If Next i End Sub
[/vba]
[vba]
Код
Sub tt() Dim j&, znach$, i&, summ& znach = Cells(1, 1): j = 1 For i = 1 To Application.WorksheetFunction.CountA(Columns("A")) + 1 If Cells(i, 1) <> znach Then summ = WorksheetFunction.Average(Range(Cells(j, 2), Cells(i - 1, 2))) Cells(i - 1, 3).Value = summ: znach = Cells(i, 1): summ = 0: j = i End If Next i End Sub