Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > Visual Basic
Перезагрузить страницу Как подсчитать сумму неотрицательных чисел
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
VictorM VictorM вне форума
Member
 
Сообщений: 58
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 08.03.2007
По умолчанию Как подсчитать сумму неотрицательных чисел - 16.02.2011, 11:04

Здравствуйте, Уважаемые!
Считаю суммы отрицательных и положительных значений в столбце формулами
Код:
=СУММЕСЛИ(B12:B65000;"<0")
и
=СУММЕСЛИ(B12:B65000;">0")
все бы хорошо, но они не срабатывают при применении автофильтра, т.е считают, независимо от выбора, весь диапазон.
Можно ли как-то сделать, чтобы можно было считать суммы отфильтрованные автофильтром?
Может здесь нужен другой подход, другие формулы?
А может макрос...
Спасибо.
Вложения
Тип файла: zip СуммЕсли_АФ.zip (5.5 Кб, 7 просмотров)
Ответить с цитированием
  (#2 (permalink)) Старый
VictorM VictorM вне форума
Member
 
Сообщений: 58
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 08.03.2007
По умолчанию 16.02.2011, 13:55

Поскольку решение с макросом меня вполне устраивает (критерии автофильтра задаются кнопками на листе), повесил на кнопки вот такой макрос
Код:
Sub СуммаМинусПлюс()
    iминус = 0
    iплюс = 0
    With ThisWorkbook.Worksheets(1)
        If .AutoFilterMode = True And .FilterMode = True Then
            With .AutoFilter.Range.Columns(2)
                Set iFilterRange = _
                .Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlVisible)
                For Each iCell In iFilterRange
                    iVal = iCell.Value
                    If iVal < 0 Then iминус = iминус + iVal
                    If iVal > 0 Then iплюс = iплюс + iVal
                Next
            End With
        End If
    End With
    [b1] = iминус
    [b2] = iплюс
End Sub
Все отлично работает!
Код перебора отфильтрованных строк взят отсюда
Как перебрать только отфильтрованные строки в автофильтре
Ответить с цитированием
  (#3 (permalink)) Старый
pashulka pashulka вне форума
Member
 
Сообщений: 1,872
Сказал(а) спасибо: 2
Поблагодарили 57 раз(а) в 53 сообщениях
Регистрация: 11.03.2005
По умолчанию 17.02.2011, 08:19

Если необходимо просуммировать все положительные и отрицательные значения в нескрытых(видимых) ячейках, причём эти ячейки не обязательно должны быть получены в результате применения фильтра(автофильтра, расширенного фильтра), то в таком случае, можно использовать что-то вроде :

Код:
Private Sub DiapazonVisibleSumIf()
    Dim iDiapazon As Range, iArea As Range
    Set iDiapazon = [B12:B65000]
    For Each iArea In iDiapazon.SpecialCells(xlCellTypeVisible).Areas
        SumPlus# = SumPlus# + Application.SumIf(iArea, ">0")
        SumMinus# = SumMinus# + Application.SumIf(iArea, "<0")
    Next
End Sub
Ответить с цитированием
  (#4 (permalink)) Старый
VictorM VictorM вне форума
Member
 
Сообщений: 58
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 08.03.2007
По умолчанию 17.02.2011, 10:07

Цитата:
можно использовать что-то вроде :
Уважаемый pashulka, спасибо!
Как всегда, красиво и изящно.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти сумму все отрицательных чисел в файле Dimaza12 Prolog 18 17.04.2012 22:11
Вычислить сумму цифр натуральних чисел 2QWERY Lisp 19 09.05.2011 21:36
Вычеслить сумму первых n чисел Stasmotion Задания за деньги 0 07.04.2011 21:21
Даны два массива, определить сумму отрицательных чисел tolik1 Assembler 1 23.01.2011 11:24
Необходимо посчитать сумму чисел Julijanna Lisp 4 28.05.2010 18:42
Подсчитать количество положительных чисел в списке d4rkness Prolog 2 18.05.2010 20:31
Подсчитать сумму позиций, на которых в списке встречается элемент X elec Lisp 4 04.05.2009 14:09
Подсчитать число и сумму положительных, число и произведение отрицательных элементов Svetik08 Visual Basic 4 19.02.2009 15:12
Как подсчитать сумму контрактов Mop SQL 3 03.09.2007 13:01
Подсчитать количество положительных, отрицательных чисел kitten Вопросы начинающих программистов 6 26.06.2007 09:28
Найти сумму и количество положительных чисел Катерина! Pascal 20 28.12.2005 08:40
Как подсчитать сумму ASCII кодов символов в файле imported_Irinka Prolog 9 24.12.2003 20:55



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов