Есть ли способ объединить СЧЕТЧИК и ФИЛЬТР?

#excel #excel-formula

Вопрос:

У меня есть некоторые данные, которые выглядят примерно так:

Алиса Боб Карла Дейв
Роль Роль 1 Роль 1 Роль 2 *Роль 2(
Янв. Деятельность 1 Деятельность 2 Деятельность 3 Деятельность 1
Февраль Деятельность 2 Деятельность 1 Деятельность 1 Деятельность 3
Мар Деятельность 1 Деятельность 3 Деятельность 2 Деятельность 2

Я хочу подсчитать, сколько раз кто-то Role1 делает Activity1

Я могу использовать Filter , чтобы получить соответствующий массив, и я могу использовать COUNTIF фильтр для значения в диапазоне, но, похоже, COUNTIF поддерживает только диапазоны, а не массивы

Я также знаю, что вы могли бы сделать что-то подобное =COUNT(IF(FILTER($B:$Z, $B2:$Z2="Role1")="Activity1", 1, "")) , но это дает мне ошибки «в Excel закончились ресурсы» даже для небольших диапазонов

Есть ли эквивалент COUNTIF , который работает с массивами, или какой-то другой способ их объединения?

Я подозреваю, что меня заставят использовать макрос, но это кажется излишним

Комментарии:

1. Вы рассматривали графы()

2. Да, к сожалению, я тоже не могу приступить countifs к работе. Я подозреваю, что есть способ использовать его с index или match , но я не могу заставить это работать

3. Не за компьютером, но SUMPRODUCT() , вероятно, будет работать.

Ответ №1:

Я думаю, что вам не нужен VBA. Sumproduct должен работать на вас. Я пишу со своего мобильного телефона. Попробуйте приведенную ниже формулу в соответствии со снимком экрана.

 =SUMPRODUCT((B1:E1="Role1")*(B2:E4="Activity1"))
 

введите описание изображения здесь

Комментарии:

1. Ладно, твой намного короче!

2. Смотрите мое «решение» (скорее «упс»), не уверенное в этикете. Я действительно начал sumproduct работать (используя только один filter ), но я не пробовал этот еще более простой подход

Ответ №2:

Попробуйте это: =SUMPRODUCT(--(FILTER(FILTER(A:Z,A$2:Z$2="Role1"),(A:A<>"")*(A:A<>"Role"))="Activity1")) он фильтрует данные, чтобы показывать только столбцы с Role1 , а затем фильтрует их, чтобы потерять пустые данные и заголовок (даже если это не было бы необходимо для результата). Затем Sumproduct проверяет количество вхождений « Activity1 в оставшихся.

Комментарии:

1. Смотрите мое «решение» (скорее «упс»), не уверенное в этикете. Я действительно начал sumproduct работать, но мне удалось сделать это только с одним filter )

2. Я объяснил, что второй фильтр не нужен, но я думаю, что, хотя вы сами разобрались со своей проблемой, Гарун заслуживает похвалы за свой ответ.

Ответ №3:

Пара человек предложили SUMPRODUCT , что может сработать. Оказывается, мой первоначальный вопрос также предлагает решение, которое может сработать: замена countif(filter(...)) на count(if(filter(...)))

Я попробовал оба из них, прежде чем опубликовать этот вопрос, но ни один из них не сработал для меня.

Почему?

Оказывается, я задал неправильный вопрос. Ошибка «У Excel закончились ресурсы», которую я получал, заключалась в том, что я сделал предположение, что Excel был умнее, чем он есть. Используя диапазон, подобный $B:$ZZ тому, который я предполагал, что Excel автоматически усечет фактически используемые ячейки. Похоже, это не так. Когда я изменил свой диапазон на $B3:$Z30 «затем», ошибки в памяти исчезли, и оба решения начали работать

Я не уверен, что здесь соблюдается этикет. Отмечаю ли я это как решение, отмечаю ли ответ P. b. или Harun24HR как решение или каким-то образом отмечаю вопрос как недействительный?