Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2013, 01:40   #1
Trimbl
Форумчанин
 
Регистрация: 11.08.2009
Сообщений: 135
По умолчанию Вычислеие средневзвешенного значения

Форумчане, здравствуйте!
Необходимо вычислить средневзвешенное значение (см. вложение "G18"), число слагаемых может колебаться от 2 до 10. Возможно - ли для этого использовать некий симбиоз функции СУММПРОИЗВ(с шагом по столбцу -3 и по строке – 5) с другими функциями, или цикл?
Вложения
Тип файла: rar Книга 6.rar (12.0 Кб, 18 просмотров)
Trimbl вне форума Ответить с цитированием
Старый 04.03.2013, 02:57   #2
tsap
Пользователь
 
Аватар для tsap
 
Регистрация: 17.05.2008
Сообщений: 33
По умолчанию

Я бы над таблицей сделал дополнительную строку со значениями на подобие (1,0,0,1,0,0,1 и т.д.) и в формулу суммпроизв добавил ее как аргумент при перемножении массивов.
tsap вне форума Ответить с цитированием
Старый 04.03.2013, 05:01   #3
Trimbl
Форумчанин
 
Регистрация: 11.08.2009
Сообщений: 135
По умолчанию

Тогда проще было-бы перемножить соответствующие ячейки массивов в ячейки доп. строки и сложить по аналогии:
=СУММ(ЕСЛИ(ОСТАТ(СТОЛБЕЦ(J10:V10);3 )=1;J10:V10;0))
Trimbl вне форума Ответить с цитированием
Старый 04.03.2013, 12:26   #4
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

Цитата:
Сообщение от Trimbl Посмотреть сообщение
Тогда проще было-бы перемножить соответствующие ячейки массивов в ячейки доп. строки и сложить по аналогии:
=СУММ(ЕСЛИ(ОСТАТ(СТОЛБЕЦ(J10:V10);3 )=1;J10:V10;0))
не совсем пойму:
Код:
=СУММПРОИЗВ(ОСТАТ(СТОЛБЕЦ(A1);3)*J18:V18)
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 05.03.2013, 00:58   #5
Trimbl
Форумчанин
 
Регистрация: 11.08.2009
Сообщений: 135
По умолчанию

Цитата:
Сообщение от staniiislav Посмотреть сообщение
не совсем пойму:
Код:
=СУММПРОИЗВ(ОСТАТ(СТОЛБЕЦ(A1);3)*J18:V18)
Теперь уже я ничего не пойму. То-ли мой вопрос не понятен или мой ответ tsap.
В моем вложении(Книга 6) функция СУММПРОИЗВ должна возвращать - 90 т.е. сумму последовательного перемножения J18xJ13 +M13xM18 + и т.д. с шагом=3.
Trimbl вне форума Ответить с цитированием
Старый 08.03.2013, 22:57   #6
tsap
Пользователь
 
Аватар для tsap
 
Регистрация: 17.05.2008
Сообщений: 33
По умолчанию

Trimbl, не пойму Вас - Вам надо получить сумму произведений кол-ва на цену (или другое какое-то значение) или что? Что характеризует число 90? Это же не средневзвешенное значение. Если правильно я понял, то у Вас в приложенном файле указано именно то, что надо получить - значение 4,5.
Я прикрепил файл с 2 решениями (строки 9,10). Вар1 - как предложил я изначально, Вар2 - как я понимаю то, что хотели получить Вы.
Вложения
Тип файла: rar Книга 6.rar (6.7 Кб, 11 просмотров)
tsap вне форума Ответить с цитированием
Старый 09.03.2013, 10:17   #7
MCH
Форумчанин
 
Регистрация: 21.11.2010
Сообщений: 326
По умолчанию

Решение "в лоб" без вспомогательных ячеек, формула массива:
Код:
=СУММ(ЕСЛИ(ОСТАТ(СТОЛБЕЦ(J13:V13);3)=1;J13:V13*J18:V18))/СУММ(ЕСЛИ(ОСТАТ(СТОЛБЕЦ(J13:V13);3)=1;J13:V13))
она же в немассивном варианте:
Код:
=СУММПРОИЗВ((ОСТАТ(СТОЛБЕЦ(J13:V13);3)=1)*J13:V13*J18:V18)/СУММПРОИЗВ((ОСТАТ(СТОЛБЕЦ(J13:V13);3)=1)*J13:V13)
Если бы показали реальную структуру данных с заголовками таблицы, то возможно, для расчета суммы можно было бы применить СУММЕСЛИ
MCH вне форума Ответить с цитированием
Старый 10.03.2013, 14:58   #8
Trimbl
Форумчанин
 
Регистрация: 11.08.2009
Сообщений: 135
По умолчанию

tsp, MCH спасибо за помощь, не смог отписаться заблаговременно(непогода накрыла ИНЕТ), тем самым отнял Ваше, наверное, драгоценное время. Ответ нашел на форуме в теме "Суммирование ячеек через заданный интервал"(не знаю как сослаться на ссылку типа см. здесь)
Повторюсь,тем не менее - я Вам признателен.Но возникла еще проблема:
Пишу: =ЕСЛИ(ИЛИ(ЕПУСТО(ОСТАТ(СТОЛБЕЦ(J18: V18);3)=1));"";СУММПРОИЗВ(J13:V13*Е СЛИ(ОСТАТ(СТОЛБЕЦ(J18:V18);3)=1;J18 :V18;0))) и условие выполняется если хотябы одна из ячеек диапазона J18:V18 пуста, а необходимо что бы ЕСЛИ(ЕПУСТО .... было актуально только для ячеек диапазона с шагом - 3. Т.е ЕСЛИ(ИЛИ(ЕПУСТО(J18,M18,P18,S18,V18 );"";СУММПРОИЗВ(J13:V13*ЕСЛИ(ОСТАТ( СТОЛБЕЦ(J18:V18);3)=1;J18:V18;0))). Как прописать условие?
Trimbl вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение значения при вводе определенного значения armanmal Microsoft Office Excel 6 21.11.2011 17:30
Определение табличного значения имея изначально 2 исходных значения? Михаил К. Общие вопросы Delphi 2 18.06.2011 21:32
Как найти все N-значения и заменить их на значения из 2-х ячеек? Smile2007 Microsoft Office Excel 10 09.12.2010 09:34
В зависимости от значения в ComboBox1 выводить значения в ComboBox2 LeX2009 БД в Delphi 14 21.05.2010 16:49
Функция средневзвешенного значения Иванов_ДМ Microsoft Office Excel 6 18.08.2009 16:19