Помогите с оптимизацией кода СУММ

Программирование на Visual Basic for Applications
Vladimir13
Новичок
Новичок
 
Сообщения: 39
Зарегистрирован: 19.09.2007 (Ср) 11:55

Помогите с оптимизацией кода СУММ

Сообщение Vladimir13 » 10.10.2007 (Ср) 10:27

[syntax="vb"]
=ЕСЛИ(B26=Лист3!F2;Лист3!E2;0)+ЕСЛИ(B26=Лист3!F3;Лист3!E3;0)+.......
+ЕСЛИ(B26=Лист3!F249;Лист3!E249;0)

Template
Обычный пользователь
Обычный пользователь
 
Сообщения: 73
Зарегистрирован: 09.09.2006 (Сб) 18:03

Сообщение Template » 10.10.2007 (Ср) 11:30

=СУММЕСЛИ(Лист3!F2:F249;B26;Лист3!E2:E249)

Vladimir13
Новичок
Новичок
 
Сообщения: 39
Зарегистрирован: 19.09.2007 (Ср) 11:55

Сообщение Vladimir13 » 10.10.2007 (Ср) 13:59

Template
Подскажите как в эту формулу подставить еще одно условие, т.е. не только равное букве "R" но и равное ячейке F11

=СУММЕСЛИ(Лист3!G4:G251;"R";Лист3!E4:E251)

Template
Обычный пользователь
Обычный пользователь
 
Сообщения: 73
Зарегистрирован: 09.09.2006 (Сб) 18:03

Сообщение Template » 10.10.2007 (Ср) 14:48

Ежели значение ячейки F11 есть константа, то можно вывернуться так :

=СУММ(СУММЕСЛИ(Лист3!G4:G251;{"R";"M"};Лист3!E4:E251))

Ну, а ежели нужно непременно с ссылкой, то можно и так, хотя ... если значение ячейки F11 будет "r" или "R", то произойдёт двойное суммирование, так что можно добавить и ЕСЛИ

=СУММЕСЛИ(Лист3!G4:G251;"R";Лист3!E4:E251)+СУММЕСЛИ(Лист3!G4:G251;F11;Лист3!E4:E251)

Vladimir13
Новичок
Новичок
 
Сообщения: 39
Зарегистрирован: 19.09.2007 (Ср) 11:55

Сообщение Vladimir13 » 10.10.2007 (Ср) 15:12

Template
Наверное я не совсевсем правильно написал, вот даже взять твой пример
=СУММ(СУММЕСЛИ(Лист3!G4:G251;{"R";"M"};Лист3!E4:E251))
у меня эта формула считает Сумму всех значений удолетворяющих условию R или M,
а хотелось бы что бы Сумма считалась только в том случае если правильны оба уловия...

Вот пример:

|2| R| Y|
|4| M| R|
|1| R| M|
Сумма должна быть раная 5

Template
Обычный пользователь
Обычный пользователь
 
Сообщения: 73
Зарегистрирован: 09.09.2006 (Сб) 18:03

Сообщение Template » 10.10.2007 (Ср) 15:29

Vladimir13, Применительно к примеру, так -
=СУММПРОИЗВ((Лист3!G4:G251={"R";"M"})*(Лист3!F4:F251={"M";"R"})*Лист3!E4:E251)

Vladimir13
Новичок
Новичок
 
Сообщения: 39
Зарегистрирован: 19.09.2007 (Ср) 11:55

Сообщение Vladimir13 » 10.10.2007 (Ср) 16:12

Template
Спасибо!


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 61

    TopList