В данном случае необходимо посчитать среднее(без учета возможных нулей) уже посчитанных средних значений и вывести этот результат в яч. А1 на первом листе
А как макросом можно? Дайте света
Pelena, предметно рассматриваем файл из поста 19
В данном случае необходимо посчитать среднее(без учета возможных нулей) уже посчитанных средних значений и вывести этот результат в яч. А1 на первом листе
Вопрос еще и такой: "0" в диапазонах на листах они жизненно важны? От них нельзя отказаться? Ведь нет "0" и нет проблемы. Насколько реальны ваши примеры? И, пжлста, потрудитесь все-таки ответить - как льзя и НЕ_льзя решать вашу задачу.
Вопрос еще и такой: "0" в диапазонах на листах они жизненно важны? От них нельзя отказаться? Ведь нет "0" и нет проблемы. Насколько реальны ваши примеры? И, пжлста, потрудитесь все-таки ответить - как льзя и НЕ_льзя решать вашу задачу.TimSha
Вопрос еще и такой: "0" в диапазонах на листах они жизненно важны? От них нельзя отказаться? Ведь нет "0" и нет проблемы. Насколько реальны ваши примеры? И, пжлста, потрудитесь все-таки ответить - как льзя и НЕ_льзя решать вашу задачу.
в этом-то и весь сок, что на некоторых листах 0 может быть, и при этом в ячейке результата, напр. на листе2 (при заполнении столбца нулями), выходит ошибка ДЕЛ/0#. Такие листы с такой ячейкой (А1=ДЕЛ/0#) первый лист при подсчете ячейки А1 учитывать не должен. А так бы, согласен, проблем бы не было, функция =СРЗНАЧ(Лист2:Лист4!A1) норм. работает
Причем важен еще при подсчете именно диапазон листов, т.к. в последствии возможно добавление листов в середину этого диапазона, и ячейка А1 на первом листе тоже должна учитывать эти новые листы в диапазоне
Вопрос еще и такой: "0" в диапазонах на листах они жизненно важны? От них нельзя отказаться? Ведь нет "0" и нет проблемы. Насколько реальны ваши примеры? И, пжлста, потрудитесь все-таки ответить - как льзя и НЕ_льзя решать вашу задачу.
в этом-то и весь сок, что на некоторых листах 0 может быть, и при этом в ячейке результата, напр. на листе2 (при заполнении столбца нулями), выходит ошибка ДЕЛ/0#. Такие листы с такой ячейкой (А1=ДЕЛ/0#) первый лист при подсчете ячейки А1 учитывать не должен. А так бы, согласен, проблем бы не было, функция =СРЗНАЧ(Лист2:Лист4!A1) норм. работает
Причем важен еще при подсчете именно диапазон листов, т.к. в последствии возможно добавление листов в середину этого диапазона, и ячейка А1 на первом листе тоже должна учитывать эти новые листы в диапазонеПавел_22
Сообщение отредактировал Павел_22 - Понедельник, 08.12.2014, 18:27
Так, простите меня, какая может быть промблема, если надо из "уже посчитанных средних значений" вывести среднее??! ТАМ "0" уже НЕТ!! Или еще какие козыри в рукавах?!.
Так, простите меня, какая может быть промблема, если надо из "уже посчитанных средних значений" вывести среднее??! ТАМ "0" уже НЕТ!! Или еще какие козыри в рукавах?!. TimSha
Так, простите меня, какая может быть промблема, если надо из "уже посчитанных средних значений" вывести среднее??! ТАМ "0" уже НЕТ!! Или еще какие козыри в рукавах?!.
нули могут быть)) Если на листах 2..4 заполнить столбец А нулями, то выйдет ошибка ДЕЛ/0#. Это я "исправил", применил функцию =ЕСЛИОШИБКА(СРЗНАЧЕСЛИ(A2:A5;">0";A2:A5);0) И сейчас на листах 2...4 могут быть нули. Прикладываю обновленный файлик-пример
Так, простите меня, какая может быть промблема, если надо из "уже посчитанных средних значений" вывести среднее??! ТАМ "0" уже НЕТ!! Или еще какие козыри в рукавах?!.
нули могут быть)) Если на листах 2..4 заполнить столбец А нулями, то выйдет ошибка ДЕЛ/0#. Это я "исправил", применил функцию =ЕСЛИОШИБКА(СРЗНАЧЕСЛИ(A2:A5;">0";A2:A5);0) И сейчас на листах 2...4 могут быть нули. Прикладываю обновленный файлик-примерПавел_22
Я, конечно, в макросах далеко не специалист, посмотрите такой вариант с UDF Функция находит среднее значение указанного диапазона со всех листов, кроме того, откуда она вызывается. По умолчанию критерий ">0", но можно задать и другой. [vba]
Код
Public Function Average3D(Target As Range, Optional criteria As String = ">0") Dim sh, s As Double, n& On Error Resume Next Application.Volatile For Each sh In Worksheets If sh.Name <> ActiveSheet.Name Then With Application.WorksheetFunction s = s + .SumIf(sh.Range(Target.Address), criteria) n = n + .CountIf(sh.Range(Target.Address), criteria) End With End If Next If n = 0 Then Average3D = "нет подходящих значений" Else Average3D = s / n End Function
[/vba] Небольшой минус - функция автоматически не пересчитывается при изменении исходных данных (надо нажимать F9), поэтому для автоматизации пересчёта в модуль результирующего листа тоже вставлен небольшой макрос
Я, конечно, в макросах далеко не специалист, посмотрите такой вариант с UDF Функция находит среднее значение указанного диапазона со всех листов, кроме того, откуда она вызывается. По умолчанию критерий ">0", но можно задать и другой. [vba]
Код
Public Function Average3D(Target As Range, Optional criteria As String = ">0") Dim sh, s As Double, n& On Error Resume Next Application.Volatile For Each sh In Worksheets If sh.Name <> ActiveSheet.Name Then With Application.WorksheetFunction s = s + .SumIf(sh.Range(Target.Address), criteria) n = n + .CountIf(sh.Range(Target.Address), criteria) End With End If Next If n = 0 Then Average3D = "нет подходящих значений" Else Average3D = s / n End Function
[/vba] Небольшой минус - функция автоматически не пересчитывается при изменении исходных данных (надо нажимать F9), поэтому для автоматизации пересчёта в модуль результирующего листа тоже вставлен небольшой макросPelena
Я, конечно, в макросах далеко не специалист, посмотрите такой вариант с UDF Функция находит среднее значение указанного диапазона со всех листов, кроме того, откуда она вызывается. По умолчанию критерий ">0", но можно задать и другой.
спасибо, о-очень интересно, я бы сказал не познанный пласт. Буду изучать. Спасибо еще раз, не обессудьте если будут вопросы
Я, конечно, в макросах далеко не специалист, посмотрите такой вариант с UDF Функция находит среднее значение указанного диапазона со всех листов, кроме того, откуда она вызывается. По умолчанию критерий ">0", но можно задать и другой.
спасибо, о-очень интересно, я бы сказал не познанный пласт. Буду изучать. Спасибо еще раз, не обессудьте если будут вопросы Павел_22
Причем важен еще при подсчете именно диапазон листов, т.к. в последствии возможно добавление листов в середину этого диапазона, и ячейка А1 на первом листе тоже должна учитывать эти новые листы в диапазоне
Причем важен еще при подсчете именно диапазон листов, т.к. в последствии возможно добавление листов в середину этого диапазона, и ячейка А1 на первом листе тоже должна учитывать эти новые листы в диапазоне
Если кто-то сейчас ищет ответ на то, как в разных ячейках посчитать срзнач в разных листах с (1 по ...) то я нашла самый простой способ расчетов срзнач в ячейке в столбик, в строчку и в диапазоне. Например: у вас идут расчеты статистики по месяцам (лист 1 - "Январь" и тд. до лист 12 - "Декабрь") Значения в столбцах а: сырье прибыло сырье истрачено сырье переработано сырья осталось Значения в столбцах б: а1 - 100 шт а2 - 68 шт а3 - 16 шт а4 - 16 шт
в разные месяца разные значения. создаем 13 лист отчетный лист и в каждую ячейку в которых нам надо посчитать срзнач вводим формулу "=('лист 1'!б1+'лист 2'!б1+'лист 3'!б1+'лист 4'!б1+ остальные листы до 'лист 12')/12 получаем среднее значение для столбца б ячейки б1
Если у вас диапазон из нескольких строк или столбцов делаем иначе: Например: 1 вариант: а1 - 15; а2 - 10; а3 - 22; а4 - 18; а5 - 12; а6 - 25 - в столбик 2 вариант: а1 - 22; б1 - 30; с1 - 41; д1 - 28; е1 - 35; ф1 - 45 - строчку и так вы ввели значения на разных листах в тех же столбиках или в разных все зависит от вас и количества листов которые будем считать. Выделяем ячейку на отчетном листе где вы хотите вывести все значения листов в одну ячейку допустим для 1 варианта а1, для второго варианта а2.
пишем формулу: =(СРЗНАЧ('Лист 1'!C4:C12)+(СРЗНАЧ('Лист 2'!C4:C12)+(СРЗНАЧ('Лист 3'!C4:C12)+(СРЗНАЧ('Лист 4'!C4:C12) + (оставшиеся листы)))))/на количество листов например 12 у вас получится среднее значение суммы со всех листов. !!!!ВАЖНО!!!! в формуле в конце ")" должно быть на 1 ")" больше чем листов если листов 10 то ")" должно быть 11 и тд.
!!!ВАЖНО ЕСЛИ НЕ ПОНЯТНО СКАЧАЙТЕ ФАЙЛ!!! Там все подробно расписано.
Если кто-то сейчас ищет ответ на то, как в разных ячейках посчитать срзнач в разных листах с (1 по ...) то я нашла самый простой способ расчетов срзнач в ячейке в столбик, в строчку и в диапазоне. Например: у вас идут расчеты статистики по месяцам (лист 1 - "Январь" и тд. до лист 12 - "Декабрь") Значения в столбцах а: сырье прибыло сырье истрачено сырье переработано сырья осталось Значения в столбцах б: а1 - 100 шт а2 - 68 шт а3 - 16 шт а4 - 16 шт
в разные месяца разные значения. создаем 13 лист отчетный лист и в каждую ячейку в которых нам надо посчитать срзнач вводим формулу "=('лист 1'!б1+'лист 2'!б1+'лист 3'!б1+'лист 4'!б1+ остальные листы до 'лист 12')/12 получаем среднее значение для столбца б ячейки б1
Если у вас диапазон из нескольких строк или столбцов делаем иначе: Например: 1 вариант: а1 - 15; а2 - 10; а3 - 22; а4 - 18; а5 - 12; а6 - 25 - в столбик 2 вариант: а1 - 22; б1 - 30; с1 - 41; д1 - 28; е1 - 35; ф1 - 45 - строчку и так вы ввели значения на разных листах в тех же столбиках или в разных все зависит от вас и количества листов которые будем считать. Выделяем ячейку на отчетном листе где вы хотите вывести все значения листов в одну ячейку допустим для 1 варианта а1, для второго варианта а2.
пишем формулу: =(СРЗНАЧ('Лист 1'!C4:C12)+(СРЗНАЧ('Лист 2'!C4:C12)+(СРЗНАЧ('Лист 3'!C4:C12)+(СРЗНАЧ('Лист 4'!C4:C12) + (оставшиеся листы)))))/на количество листов например 12 у вас получится среднее значение суммы со всех листов. !!!!ВАЖНО!!!! в формуле в конце ")" должно быть на 1 ")" больше чем листов если листов 10 то ")" должно быть 11 и тд.
!!!ВАЖНО ЕСЛИ НЕ ПОНЯТНО СКАЧАЙТЕ ФАЙЛ!!! Там все подробно расписано.alena4kz
я знаю. Ее я раскрыла специально чтобы показать что можно и так несколько вариантов. На разных листах я пробовала и так и так. В одном листе работает, а в нескольких увы не работает( я 4 часа потратила на то чтобы хоть что-то получилось) а потом вспомнила математическую формулу расчета среднего числа которая гласит - сумма чисел деланная на количество) и у меня получилось.
Serge_007, Про эту
Код
=СРЗНАЧ(C19:C21)
я знаю. Ее я раскрыла специально чтобы показать что можно и так несколько вариантов. На разных листах я пробовала и так и так. В одном листе работает, а в нескольких увы не работает( я 4 часа потратила на то чтобы хоть что-то получилось) а потом вспомнила математическую формулу расчета среднего числа которая гласит - сумма чисел деланная на количество) и у меня получилось.alena4kz
Сообщение отредактировал Serge_007 - Среда, 02.03.2022, 15:06