Счётз и Фильтр - Функции Excel

Copper Contributor

Здравствуйте! Никак не разберусь:

При оборачивании функцией Счётз функции Фильтр выдается (1) вместо (0): если объединить со знаком (*) три условия во втором аргументе функции Фильтр (включение) , и в случае отсутствия значений по указанным условиям.

Что не так?

 

5 Replies

@Юриван 

Когда вы используете функцию Фильтр с функцией СЧЁТЗ, чтобы подсчитать количество значений, удовлетворяющих определенным условиям, и если не найдено ни одного значения, функция Фильтр возвращает ошибку #ПРОПУСК!, которая интерпретируется как (1) в функции СЧЁТЗ.

Для исправления этой проблемы, вы можете использовать функцию ПОДСЧЁТЕСЛИ для подсчета количества значений, которые удовлетворяют вашим условиям вместо функции СЧЁТЗ. Вот пример того, как это можно сделать:

=ПОДСЧЁТЕСЛИ(ФИЛЬТР(диапазон_данных, условие), "<>0")

=COUNTIF(FILTER(data_range, condition), "<>0") in English

В этой формуле:

  • диапазон_данных - это ваш диапазон данных, в котором вы хотите выполнить фильтрацию.
  • условие - это условие, которому должны соответствовать данные для включения их в результаты.
  • "<>0" - это условие для функции ПОДСЧЁТЕСЛИ, которое подсчитывает все значения, кроме нулевых.

Эта формула вернет количество значений, удовлетворяющих вашему условию, и если ни одного значения не будет найдено, она вернет (0) вместо (1).

Тексты, шаги и функции были созданы с использованием искусственного интеллекта.

 

Мои ответы добровольны и без гарантий!

 

*Текст переведен с помощью программного обеспечения. Могут быть грамматические или фразовые ошибки.

 

Я надеюсь, это поможет вам.

Был ли ответ полезен? Отметить как лучший ответ и поставить лайк!

Это поможет всем участникам форума.

@Юриван 

Счётз подсчитывает количество всех значений в диапазоне. Ошибки это тоже значения и они будут считаться. Так как фильтр возначает только одну величину (и это ошибка), то количество возвращаемых величин равно единице.

Лучше обрабатывать возможные ошибки в формулах. Как вариант 

= LET( f, ФИЛЬТР(диапазон, условия), ЕСЛИ(ЕОШИБКА(f), 0, СЧЁТЗ(f)   ) )
Здравствуйте! Спасибо за ответ!
Функция COUNTIF не отрабатывает, если есть три условия.
Пример: (если дано: _c, _a, _e, _f = каждый свой непересекающийся диапазон, заданный LET-ƒ(х), то не работает:
COUNTIF(ФИЛЬТР(_c;
(_a=A2)*((_e="х")*(_f>0)));
"<>0")

@Юриван 

ФИЛЬТР возвращает множество значений (array), а COUNTIF требует в качечтве аргумента ссылку на диапазон значений внутри листа Excel. Такая комбинация работаь не будет.

Что-нибудь типа

=LET(
    f, FILTER(rangeC,
        (rangeA=A2) *
        (rangeE="x")*
        (rangeF >0 ),
        ""),
    IF( f="", 0, COUNTA(f) )
)

@Юриван 

Но по большому счёту ту ни то ни другое не нужно, достаточно

 

=SUM( (rangeA=A2)*(rangeE="x")*(rangeF>0) )