Вычислить среднее значение VBA из динамической таблицы

#vba #excel #macros

#vba #excel #макросы

Вопрос:

У меня есть таблица в Excel с номером недели и весом (в кг.)

Кто-то может вводить свой вес каждый день в течение недели или только один раз, или не вводить вообще. Я не могу с этим справиться. Тогда моя таблица может буквально измениться. от нуля до 7 и даже больше строк в неделю (как на желтой стороне изображения).

Что я хочу сделать, так это рассчитать средний вес за неделю. и тогда у меня будет по одной строке за каждую неделю, когда я получу хотя бы один вес (иногда у меня не будет ни одной строки). У нас может быть неделя без какого-либо веса, поэтому тогда мне вообще не нужна эта строка. Мы также можем легко получить вес для недели 2, но между неделями 5 и 6 в желтой таблице. Это произойдет, если кто-то вставит свой вес после других.

Как я могу сказать, что эти две недели похожи, поэтому мы вычисляем среднее значение для этих двух весов?

введите описание изображения здесь

Я надеюсь, что это достаточно понятно с этой картинкой

Комментарии:

1. Создать сводную таблицу с неделями слева и средним значением веса в области данных?

2. Функция worksheet AverageIf() кажется, что она может решить проблему даже без VBA. Ваше описание того, что вы хотите сделать, слишком расплывчато, чтобы сказать наверняка, но, возможно, вы могли бы начать с прочтения справочной страницы по этому вопросу.

Ответ №1:

Используйте приведенную ниже формулу в столбце C для вычисления среднего значения (предположим, неделя в столбце A и вес в столбце B)

 =AVERAGEIF(A:A,A2,B:B)
  

Копирование среднего столбца-> Вставить только специальное значение,
затем удалите дублирующуюся базу по неделе и новый столбец Average