Как включить ИЛИ в формулу массива, где ТОЛЬКО НЕКОТОРЫЕ критерии должны быть ИСТИННЫМИ - Excel - PullRequest
0 голосов
/ 25 ноября 2018

Я пытаюсь подсчитать количество строк, которые: 1) имеют записи для всех столбцов, и ii) имеют хотя бы одно значение, которое соответствует критерию для столбца.

Вот пример:

A B C D
4 4 3 5
2 2 2 2
3 1 2 5
1   3 2
  • Порог столбца A:> 2
  • Порог столбца B:> 2
  • Порог столбца C:<2 </li>
  • Порог столбца D:> 4

Ответ для этого примера - 2, потому что 2/4 строки содержат как минимум 1 значение, соответствующее порогу столбца.В частности, строка 1 имеет 3 значения, которые соответствуют пороговым значениям столбца, а строка 3 имеет 2 значения.Строка 2 не имеет значений, которые соответствуют пороговому значению столбца, в то время как строка 4 не должна учитываться, поскольку она не содержит записей для всех столбцов, например:

A B C D
T T F T
F F F F
T F F T
F F F F

Поэтому я не хочу подсчитывать, сколькораз в каждом ряду был достигнут определенный порог столбца, но был ли достигнут хотя бы 1 в каждом ряду.

У меня есть догадка, что SUMPRODUCT может быть полезен для этой проблемы, но я не знаю, как это сделать.добавьте критерий ИЛИ только для некоторых критериев (например, описанный здесь пример использования «+» в SUMPRODUCTS в качестве функции ИЛИ учитывает оба критерия).

Ваши мысли будутДобро пожаловать.

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Могу ли я предложить в качестве своего рода леммы блестящий ответ @XOR LX, что вы могли бы сделать это:

=COUNTIFS(A1:A4,"<>",B1:B4,"<>",C1:C4,"<>",D1:D4,"<>")-COUNTIFS(A1:A4,"<=2",B1:B4,"<=2",C1:C4,">=2",D1:D4,"<=4")

т.е. число строк, не содержащих пробел, минус число из них, которыене выполняйте ни одно из условий.

0 голосов
/ 26 ноября 2018

Очень интересный вопрос.

Формула массива **:

=SUM(N(MMULT(IF(MMULT(N(A1:D4=""),TRANSPOSE(COLUMN(A1:D4)^0))=0,COUNTIF(OFFSET(A1,ROW(A1:D4)-MIN(ROW(A1:D4)),COLUMN(A1:D4)-MIN(COLUMN(A1:D4))),{">2",">2","<2",">4"}),0),TRANSPOSE(COLUMN(A1:D4)^0))>0))

Редактировать :Без присутствия пробелов в пределах диапазона это можно было бы значительно упростить до:

=ROWS(A1:D4)-COUNTIFS(A1:A4,"<=2",B1:B4,"<=2",C1:C4,">=2",D1:D4,"<=4")

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

Фактически, оно можетТакже можно адаптировать эту настройку для учета пробелов.Посмотрим на это.

Обновление: Действительно, я считаю, что это будет работать:

=ROWS(A1:D4)-COUNTIFS(A1:A4,"<=2",B1:B4,"<=2",C1:C4,">=2",D1:D4,"<=4")-COUNT(1/N(MMULT(N(A1:D4=""),TRANSPOSE(COLUMN(A1:D4)^0))>0))

С уважением

** Формулы массива вводятся не так, как «стандартные» формулы.Вместо того, чтобы просто нажимать ENTER, вы сначала удерживаете клавиши CTRL и SHIFT, и только затем нажимаете ENTER.Если вы сделали это правильно, вы заметите, что Excel заключает в формулу фигурные скобки {} (хотя не пытайтесь вставить их вручную).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...