Страницы: 1
RSS
Просчет формулы макросом после консолидации или во время нее
 
Уважаемые форумчане, на вас последняя надежда.
При помощи макроса и инструмента "консолидации" подсчитана средняя из двух листов. В примере оставил два листа, но чаще всего приходится работать с большим. Консолидацию в зависимости от задач, приходится выполнять для разных листов.
Проблема в следующем.
В столбец "Н" на листе-"Среднее1" занесена интересующая меня формула. Занесена она в ручную.
Подскажите пожалуйста можно ли написать макрос или поправить существующий, который бы выполнял просчет этих значений в зависимости от консолидированных листов?
Изменено: zaolog - 21.03.2018 12:55:49
 
Код действующего макроса:
Код
Sub Усредненная_проба()

'Раскрытие Исходного листа
    Sheets("Исходный").Visible = True
'Коприрование Исходного
    Sheets("Исходный").Copy Before:=Sheets(1)
'Сокрытие Исходного листа
    'Sheets("Исходный").Visible = False
'Переименование копии листа
    Sheets("Исходный (2)").Select
    Sheets("Исходный (2)").Name = "Усредненная проба"
'Вызов окна консолидации данных
    Range("C1:G1").Select
    Application.Dialogs(xlDialogConsolidate).Show
        
'Скрытие незаполненных строк
    For N = 2 To 17
        If Cells(N, 4) = 0 Then Rows(N).Hidden = True
    Next
    
'Формирование окончательного вида пробы
       Columns("A:G").Select
       Selection.EntireColumn.Hidden = False
       Range("A1").Select
   
'Формирование предупреждающего сообщения и
'преименование пробы
    Dim SheetName As String
    Do
    SheetName = InputBox("Введите название усредненной пробы:")
    Loop While SheetName = "" Or Len(SheetName) > 31 'не более 31 знака
    ActiveSheet.Name = SheetName

End Sub
Вот эта злосчастная формула: =100*(((ЕСЛИ('1'!C2>0;1;0))+(ЕСЛИ(Лист2!C2>0;1;0)))/(СУММ('1'!G2;Лист2!G2)))*Средняя1!C2/Средняя1!$C$11
Возможно ли запускать ее выполнение макросом, но не выбирать листы в ручную, а считать в зависимости от консолидированных листов?
Изменено: zaolog - 21.03.2018 10:56:00
 
Цитата
zaolog написал: Вот эта злосчастная формула
Вы ее словами распишите. Что и при каких условиях должно быть посчитано и куда внесен результат
Согласие есть продукт при полном непротивлении сторон
 
Спасибо за уточнение.

Формула имеет вид Di = 100 × (mi / Mi)× Ni / Ns ,
Т.е. в зависимости от консолидации нужно выполнить подсчет следующих компонентов:
mi – число листов, в которых значения ячейки  C2 принимают положительные значения, т.е. вид присутствует в пробе
M – общее число листов использованных при консолидации,
Ni – полученное после консолидации среднее значение каждого аргумента из ячейки С2,
Ns – общее число особей всех видов. В данный момент это итоговая ячейка С11.
Страницы: 1
Наверх