Доброго времени! Люди добрые, подскажите пожалуйста, как макросом можно вставить формулу в графу "СРЕДНЯЯ ПО ВСЕМ ПРОДУКТАМ" (в таком же формате как написано сейчас, с прямыми ссылками на ячейку) при том, что кол-во продуктов может быть разное (от 1 до 10) и цен на эти продукты тоже разное кол-во (где-то тоже от 1 до 10), т.е. итоговые столбцы по продуктам "гуляют" и адрес заранее неизвестен.
Заранее спасибо за уделённое время!
Доброго времени! Люди добрые, подскажите пожалуйста, как макросом можно вставить формулу в графу "СРЕДНЯЯ ПО ВСЕМ ПРОДУКТАМ" (в таком же формате как написано сейчас, с прямыми ссылками на ячейку) при том, что кол-во продуктов может быть разное (от 1 до 10) и цен на эти продукты тоже разное кол-во (где-то тоже от 1 до 10), т.е. итоговые столбцы по продуктам "гуляют" и адрес заранее неизвестен.
По слову "Средняя" в заголовке промежуточных колонок всегда будет понятно, откуда тянутся значения - уж всяко поудобнее, чем внутри формулы список из абсолютных адресов анализировать. P.S.
По слову "Средняя" в заголовке промежуточных колонок всегда будет понятно, откуда тянутся значения - уж всяко поудобнее, чем внутри формулы список из абсолютных адресов анализировать. P.S.
Обладая некоторой привычкой доводить дело до конца (иногда ), даю некое направление в решении исходной задачи средствами VBA. Это именно набросок, не законченное и, тем более, не универсальное решение: [vba]
Код
Sub createFormula_in_R4() Dim a, s a = Application.Evaluate("=IF(ISERR(SEARCH(""Средняя"",B3:Q3)), """", ADDRESS(ROW(B4),COLUMN(B4:Q4),4))") s = Application.Evaluate("=SUBSTITUTE(TRIM(""" & Join(a) & """),"" "","","")") Range("R4").Formula = "=AVERAGE(" & s & ")" End Sub
[/vba] В результате выполнения макроса в ячейку R4 вводится формула:
Код
=СРЗНАЧ(B4;I4;M4)
Обладая некоторой привычкой доводить дело до конца (иногда ), даю некое направление в решении исходной задачи средствами VBA. Это именно набросок, не законченное и, тем более, не универсальное решение: [vba]
Код
Sub createFormula_in_R4() Dim a, s a = Application.Evaluate("=IF(ISERR(SEARCH(""Средняя"",B3:Q3)), """", ADDRESS(ROW(B4),COLUMN(B4:Q4),4))") s = Application.Evaluate("=SUBSTITUTE(TRIM(""" & Join(a) & """),"" "","","")") Range("R4").Formula = "=AVERAGE(" & s & ")" End Sub
[/vba] В результате выполнения макроса в ячейку R4 вводится формула: