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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2010, 17:27   #1
Евгений К.
Пользователь
 
Регистрация: 03.06.2010
Сообщений: 11
По умолчанию Функция СУММЕСЛИ

Добрый вечер.
Мне необходимо переделать формулу в VBA.

На данный момент код выглядит так:


Dim li As Long, lFirstRow As Long
lFirstRow = 3
Application.ScreenUpdating = False
For li = 3 To Cells(Rows.Count, 10).End(xlUp).Row + 1
If Cells(li, 10) = "" Then
Cells(li, 20).FormulaR1C1 = "=SUMIF(R" & lFirstRow & "C8:R[-1]C8,""продажа"",R" & lFirstRow & "C20:R[-1]C20)"
Cells(li, 25).FormulaR1C1 = "=RC27/(RC19+RC20)"
lFirstRow = li
End If
Next li
Application.ScreenUpdating = True

Мне необходимо из "=SUMIF(R" & lFirstRow & "C8:R[-1]C8,""продажа"",R" & lFirstRow & "C20:R[-1]C20)" сделать, чтобы, помимо критерия "продажа" в столбце "H", учитывался второй критерий "не равно 0" в столбце "X".
Расчет ведется в столбце "Т".


Т.о. необоходимо добавить новый диапазон и для него новый критерий.

Буду очень блгодарен за готовый код или очень доходчевое объяснение
Евгений К. вне форума Ответить с цитированием
Старый 07.07.2010, 12:23   #2
Евгений К.
Пользователь
 
Регистрация: 03.06.2010
Сообщений: 11
По умолчанию

переписал немного по-другому

Вместо: Cells(li, 20).FormulaR1C1 = "=SUMIF(R" & lFirstRow & "C8:R[-1]C8,""продажа"",R" & lFirstRow & "C20:R[-1]C20)"

Сделал: Cells(li, 20).FormulaR1C1 = "=SUMPRODUCT(R" & lFirstRow & "C8:R[-1]C8=""Продажа"")*(R" & lFirstRow & "C24:R[-1]C24<>0)*(R" & lFirstRow & "C20:R[-1]C20))"

Но не фурычит подскажите где моя ошибка... всю строку в целом выделяет желтым цветом
Евгений К. вне форума Ответить с цитированием
Старый 07.07.2010, 12:44   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Надо: Cells(li, 20).FormulaR1C1 = "=SUMPRODUCT((R" & lFirstRow & "C8:R[-1]C8=""Продажа"")*(R" & lFirstRow & "C24:R[-1]C24<>0)*(R" & lFirstRow & "C20:R[-1]C20))"
Как сказано у классиков: "Тщательнее надо..."
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 07.07.2010 в 12:46.
IgorGO вне форума Ответить с цитированием
Старый 07.07.2010, 13:04   #4
Евгений К.
Пользователь
 
Регистрация: 03.06.2010
Сообщений: 11
По умолчанию

Благодарствую работает
Евгений К. вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не срабатывает формула суммесли Andrey00188 Microsoft Office Excel 3 24.06.2010 15:00
СУММЕСЛИ из закрытой книги Sha Microsoft Office Excel 1 16.12.2009 17:09
Помогите по СУММЕСЛИ komar73 Microsoft Office Excel 2 24.01.2009 11:30
СУММЕСЛИ по нескольким условиям 2 Levchik Microsoft Office Excel 8 27.05.2008 09:15
Суммесли tsap Microsoft Office Excel 2 17.05.2008 20:22