Сумма строк, удовлетворяющих автофильтру

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

kuznetsovSergey
Сообщения: 163
Зарегистрирован: 05 мар 2009, 11:27

Добрый день, прошу навести меня на мысль, и подсказать как можно реализовать данную задачу:"Есть огромное количество данных, которые я сортирую автофильтром. На другой странице, пишу в нужные ячейки, сумму строк. удовлетворяющих нескольким критериям автофильтра.Но есть не большое НО. Дело с том, что там должно быть ещё сверка со временем, и датой. Попробую привести пример, что бы было более понятно."

Пример:

существует 3 листа: Количество студентов, база с студентами, условия
макрос должен афтофильтрок отсеивать по критериям, и считать количество найденных строк, по заданному критерию. НО !! должен сравнивать ещё до суммирования найденные ячейки с временем, и с датой. Потому что дата может быть меньше сегодняшней, тогда автоматически он успел. Спасибо заранее !!

файл

Изображение
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

Посмотрите HELP по функции =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(...)
Андрей Энтелис,
aentelis.livejournal.com
kuznetsovSergey
Сообщения: 163
Зарегистрирован: 05 мар 2009, 11:27

дело в том, что я не против использовать функции, если они помогут моему делу. Но не вижу решения моей проблемы, через =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(...)
Может я не очень понял как пользоваться этой функцией, просто он выдает список всех значений в этом столбце. а мне нужна сумма строк, если эта строка удовлетворяет несколько параметров автофильтра
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

Меня смутили ваши слова про автофильтр. Автофильтр здесь не причём
Выложите тестовый файл - покажу как сделать то что вам нужно функциями листа.
Набирать тест самому нет времени.
Андрей Энтелис,
aentelis.livejournal.com
kuznetsovSergey
Сообщения: 163
Зарегистрирован: 05 мар 2009, 11:27

Так я же его выложил, перед скрином, ссылка: называется "Файл"
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

Извините. Не заметил.
Андрей Энтелис,
aentelis.livejournal.com
Kokain
Сообщения: 23
Зарегистрирован: 09 авг 2006, 11:03
Откуда: Moscow
Контактная информация:

Не совсем понял что нужно.
Но мне кажется Pivot Tables в Excel помогут. Там тоже есть автофильтры, подсчет количества значений, суммы, среднего по полям. Очень удобный инструмент - быстро получите то что нужно. К тому же Pivot Tables можно строить из макросов
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

А 9:00 на первом листе это то же фильтр ?
Если да то как идёт выборка?
Если это просто информационное поле, то решение в прицепленном файле.
Обратите внимание, что массивные формулы вводятся без фигурных скобок с помощью одновременного нажатия Ctrl+Shift+Enter
Вложения
dev.zip
(6.67 КБ) 29 скачиваний
Андрей Энтелис,
aentelis.livejournal.com
kuznetsovSergey
Сообщения: 163
Зарегистрирован: 05 мар 2009, 11:27

Aent писал(а):А 9:00 на первом листе это то же фильтр ?
Если да то как идёт выборка?
Если это просто информационное поле, то решение в прицепленном файле.
Обратите внимание, что массивные формулы вводятся без фигурных скобок с помощью одновременного нажатия Ctrl+Shift+Enter
Огромное спасибо за помощь !! Практически всё что было нужно. Но есть не большое НО! Ну собственно оно всегда появляется, как задать, что бы время прихода студента, сравнивалось со временем установленным в ячейке на первом листе. Потому что установленное время может меняться. хотелось бы что бы оно сравнивалось. Уверен что этот вопрос не составить для вас проблем =)

Ещё вопрос возник, как сделать массивную формулу, я делал раньше. Спасибо за иноформацию. Вот только не понятно. как в формуле работает такой текст:
{=СУММПРОИЗВ(ЕСЛИ(ПОЛ="М";1;0);ЕСЛИ(ВОЗРАСТ=17;1;0))} - Где ссылки на странички? как он понимает с каким столбцом работать и на каком листе?
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

1) Если считать что студент пришёл вовремя если время его прихода меньше
времени на первом листе (ВРЕМЯ) при условии что для этого студента не задано специальное время на третьем, то формула в столбце J:J на втором листе будет вида:

Код: Выделить всё

=ЕСЛИ(I2<A2;1;ЕСЛИ(ЕНД(ЕСЛИ(ВПР($B2;УСЛ;2;ЛОЖЬ)>$H2;1;0));[B]ЕСЛИ(ВРЕМЯ>$H2;1;0)[/B];ЕСЛИ(ВПР($B2;УСЛ;2;ЛОЖЬ)>$H2;1;0)))
2) ПОЛ,ВОЗРАСТ и т.д. это определённые в книге имена
см. Вставка->Имя->Присвоить
Например: ВОЗРАСТ это =СМЕЩ('База со студентами'!$G$2;0;0;Всего_записей;1)
см. HELP по функции листа СМЕЩ.
Андрей Энтелис,
aentelis.livejournal.com
Ответить