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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2015, 11:40   #1
Zhenya Yakubov
Пользователь
 
Регистрация: 19.03.2013
Сообщений: 14
По умолчанию SumIfs

Добрый день многоуважаемые форумчане. В очередной раз сталкиваюсь с элементарной проблемой, а понять в чём ошибка не могу. ПОМОГИТЕ пожалуйста. Есть строчка в коде VBA, суть её СУММЕСЛИМН, но при просчёте везде выдаёт 0.

Предположение: возможно синтаксис.

sr_pr = Application.SumIfs(Range(Cells(i, lastcolumn - c + 1), Cells(i, lastcolumn)), Range(Cells(i, lastcolumn - c + 1), Cells(i, lastcolumn)), " <> " & PIK, Range(Cells(i, lastcolumn - c + 1), Cells(i, lastcolumn)), "<>0")


Range(Cells(i, lastcolumn - c + 1), Cells(i, lastcolumn) это дипазон
PIK это максимальное значение в строчке

т.е. СУММЕСЛИМН <> PIK и <>0
Zhenya Yakubov вне форума Ответить с цитированием
Старый 09.01.2015, 12:26   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

а зачем второе условие? зачем проверять на <>0 ?
те, которые =0 можно смело собирать в общую сумму

проверте чтобы
с было < lastcolumn + 1
а i > 0
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 09.01.2015, 16:53   #3
Zhenya Yakubov
Пользователь
 
Регистрация: 19.03.2013
Сообщений: 14
По умолчанию

к сожалению не получается, может глянете файл
Вложения
Тип файла: rar SumIfs.rar (16.6 Кб, 9 просмотров)
Zhenya Yakubov вне форума Ответить с цитированием
Старый 09.01.2015, 17:27   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

исправте
, " <> " & PIK,
на
, "<>" & PIK,

а лучше вместо этих двух строк:
Код:
sr_pr = Application.SumIfs(Range(Cells(i, lastcolumn - c + 1), Cells(i, lastcolumn)), Range(Cells(i, lastcolumn - c + 1), Cells(i, lastcolumn)), "<>" & PIK, Range(Cells(i, lastcolumn - c + 1), Cells(i, lastcolumn)), "<>0")
Cells(i, lastcolumn + 2) = sr_pr
напишите такие:
Код:
Dim rg as Range
Set rg = Range(Cells(i, (lastcolumn + 1 - c)), Cells(i, lastcolumn))
Cells(i, lastcolumn + 2) = Application.SumIfs(rg, rg, "<>" & PIK, rg, ">0")
и... второе условие там лишнее, но это Вам виднее
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 09.01.2015, 18:05   #5
Zhenya Yakubov
Пользователь
 
Регистрация: 19.03.2013
Сообщений: 14
По умолчанию

Спасибо за исправления.

P.S. второе условие нужно если значения отрицательные, они не интересуют
Zhenya Yakubov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
функция _xlfn.SUMIFS Keshunya Microsoft Office Excel 2 27.05.2011 12:11
sumifs для массива? sn00p Microsoft Office Excel 3 01.10.2010 16:09