Страницы: 1
RSS
Функция АГРЕГАТ: посчитать количество строк, удовлетворяющих условию в отфильтрованном диапазоне
 
Добрый день!
задача посчитать количество строк, удовлетворяющих условию в отфильтрованном диапазоне. Хотелось избежать применения сборки СУММПРОИЗВ, ПРОМЕЖУТОЧНЫЕ.ИТОГИ и СМЕЩ.
Применение АГРЕГАТ взял здесь: http://baguzin.ru/wp/?p=7215
но не работает
из пошагового вычисления не ясна причина ошибки.
Подскажите пжлста.
С уважением.
Изменено: dude - 20.02.2015 22:57:35 (терминология)
 
Главное в теме: работа АГРЕГАТ с массивом, а не ссылкой, переименования не понял
 
Цитата
dude пишет: из пошагового вычисления не ясна причина ошибки.
наверное потому что "Функции с 1-й по 13-ю не могут обработать массивы; функции с 14-й по 19-ю – могут."...
из вашего же источника.
 
Цитата
с 14-й по 19-ю – могут.
А толку? Все равно функция и скрытые считает. Попробуйте формулу
Код
=АГРЕГАТ(15;3;1/(A1=A3:A23)*СТРОКА(A3:A23);1) 
Результат =6, а строка 6 скрыта. Почему так?
 
Цитата
gling написал: А толку? Все равно функция и скрытые считает
это я не к тому,что надо использовать функции с 14-й по 19-ю, а к тому что
Цитата
dude написал: из пошагового вычисления не ясна причина ошибки.
:)
 
Да, с 14-ой по 19-ую заметил не сразу. спасибо!
зачем было ее делать без возможности суммы? Вопрос риторический
 
Цитата
dude написал: зачем было ее делать без возможности суммы? Вопрос риторический
Суммирует она ваш столбец B:B, в котором стоят числа... и на скрытые реагирует в ситуации вашего файла... не ругайтесь на неё...
мои выводы:
создана она для работы с диапазонами - т.е. ячейками (значениями в них)...
с виртуальными массивами (как в случае, когда вы накладываете условие, чтобы получить НОВЫЙ массив, для его дальнейшей обработки) - НЕ работает (если криво)... только, как сказал Dima S
Цитата
Dima S написал: "Функции с 1-й по 13-ю не могут обработать массивы; функции с 14-й по 19-ю – могут."
т.е. опять же ОПИРАЯСЬ на ячейки, ака не теряя с ними логическую связь (следуя принципу преемственности закладываемой в основу операции логики - ух, как высказалась  :oops: )...
когда же gling наложил условие -->получился "виртуальный" массив - в котором нигде не сказано, что из скрытых ячеек, а что из других... --> произошёл disconnect в "нашем понимании и понимании экселя"... чего например не происходит, если мы в массиве (!!) получаем Н/Д# и обрабатываем его проверкой на Н/Д#...
Вот так:
думаю, дело как раз в этом (создавалась она для работы с имеющимися агрегатами с заложенными в неё возможностями фильтрации [ошибки, скрытые и т.д], а не сама цель заставить её ещё и фильтровать, как нам хочется, - эта возможность, видимо, вторична при адекватной [hand-made с помощью СТРОКА] обработке получившегося массива соответствующими значениями параметра  14-19 функции)... фильтр, наложенный функцией, и фильтр, налагаемый нами (пытающимися), не всегда призваны увидеть друг друга в этой функции...
и ещё в том, что разработчики этой функции не задавались целью продублировать возможности ПРОМЕЖУТОЧНЫХ ИТОГОВ... и то, что УЖЕ можно сделать с помощью последней, зачем создавать ещё раз?... поэтому у АГРЕГАТ свои границы применимости и, кажущиеся нам, ограничения... (когда мы пытаемся использовать инструмент не по назначению)... имхо... программисты не любят вставлять в свои продукты однотипные возможности, скорее расширять их линейку для внедрения НОВЫХ удобств
p.s.
хотя соединить то, что есть, с тем, чем вам хочется, - тоже никому не помешает (я бы тоже была благодарна программистам Microsoft Office)... но и так жить, наверно, можно  
Изменено: JeyCi - 02.11.2015 23:57:09
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Страницы: 1
Наверх