Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Расчет среднего значения видимых ячеек без учета нулей - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Расчет среднего значения видимых ячеек без учета нулей
VitaliyPegushin Дата: Среда, 13.04.2022, 07:16 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Форумчане, помогите доработать макрос функции, сейчас он считает среднее значение всех видимых ячеек в диапазоне.
Как сделать так чтобы нулевые значения ячеек в расчет не учитывались.

Функция работает следующим образом в ячейку вставляется формула : = AverVisible (ДИАПАЗОН)

[vba]
Код
Function AverVisible(Rg As Range) 'Функция средненего значения диапазона

Dim xCell As Range
Dim xCount As Integer
Dim xTtl As Double
Application.Volatile
Set Rg = Intersect(Rg.Parent.UsedRange, Rg)
For Each xCell In Rg
If xCell.ColumnWidth > 0 _
And xCell.RowHeight > 0 _
And Not IsEmpty(xCell) _
And IsNumeric(xCell.Value) Then
xTtl = xTtl + xCell.Value
xCount = xCount + 1
End If
Next
If xCount > 0 Then
AverVisible = xTtl / xCount
Else
AverVisible = 0

End If
End Function[vba][code]
[/vba]


Сообщение отредактировал VitaliyPegushin - Среда, 13.04.2022, 07:55
 
Ответить
СообщениеФорумчане, помогите доработать макрос функции, сейчас он считает среднее значение всех видимых ячеек в диапазоне.
Как сделать так чтобы нулевые значения ячеек в расчет не учитывались.

Функция работает следующим образом в ячейку вставляется формула : = AverVisible (ДИАПАЗОН)

[vba]
Код
Function AverVisible(Rg As Range) 'Функция средненего значения диапазона

Dim xCell As Range
Dim xCount As Integer
Dim xTtl As Double
Application.Volatile
Set Rg = Intersect(Rg.Parent.UsedRange, Rg)
For Each xCell In Rg
If xCell.ColumnWidth > 0 _
And xCell.RowHeight > 0 _
And Not IsEmpty(xCell) _
And IsNumeric(xCell.Value) Then
xTtl = xTtl + xCell.Value
xCount = xCount + 1
End If
Next
If xCount > 0 Then
AverVisible = xTtl / xCount
Else
AverVisible = 0

End If
End Function[vba][code]
[/vba]

Автор - VitaliyPegushin
Дата добавления - 13.04.2022 в 07:16
китин Дата: Среда, 13.04.2022, 07:34 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 7029
Репутация: 1078 ±
Замечаний: 0% ±

Excel 2007;2010;2016
VitaliyPegushin, - Прочитайте Правила форума
- Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь)
Помогающим просьба воздержаться от ответов в этой теме до исправления замечания


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеVitaliyPegushin, - Прочитайте Правила форума
- Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь)
Помогающим просьба воздержаться от ответов в этой теме до исправления замечания

Автор - китин
Дата добавления - 13.04.2022 в 07:34
VitaliyPegushin Дата: Среда, 13.04.2022, 07:57 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Исправился! Оформил тему как положено правилами.
 
Ответить
СообщениеИсправился! Оформил тему как положено правилами.

Автор - VitaliyPegushin
Дата добавления - 13.04.2022 в 07:57
nilem Дата: Среда, 13.04.2022, 08:37 | Сообщение № 4
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
VitaliyPegushin, привет
может так? (добавим xCell.value>0):
[vba]
Код
...And IsNumeric(xCell.Value) And xCell.value>0 Then
[/vba]


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеVitaliyPegushin, привет
может так? (добавим xCell.value>0):
[vba]
Код
...And IsNumeric(xCell.Value) And xCell.value>0 Then
[/vba]

Автор - nilem
Дата добавления - 13.04.2022 в 08:37
VitaliyPegushin Дата: Среда, 13.04.2022, 08:58 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Круто.! Заработало.
 
Ответить
СообщениеКруто.! Заработало.

Автор - VitaliyPegushin
Дата добавления - 13.04.2022 в 08:58
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!