2016-02-09 6 views
1

Мне нужно подсчитать количество ячеек, в которых ячейки в «СПИСОК А» отображаются в наборе значений, содержащихся в столбце D И Ячейки в «СПИСОК B» не отображаются в колонке E.COUNTIF с положительными и отрицательными критериями

Я пытаюсь использовать что-то вроде следующей формуле массива, но до сих пор имели ограниченный успех:

={SUM(COUNTIFS(A2:A21,D2:D5,B2:B21,"<>"&E2:E3))} 

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

Любые предложения?

Example

+1

В подобных ситуациях лучше «показать свою работу», и использовать пару дополнительные столбцы для промежуточных столбцов. Мне не нравятся сложные COUNTIFS с венгенцией. – Bathsheba

+1

countif использует «ИЛИ», что означает: подсчитать каждое значение в B2: B21, которое по крайней мере одно время не является ЛЮБОЙ из E2: E4 (это считается для всех чисел ... но вы можете использовать эту формулу nonarray: '= SUMPRODUCT (COUNTIF (D2: D5, A2: A21) * (COUNTIF (E2: E5, B2: B21) -1)) * - 1' –

+0

Dirk Reichel, эта формула работает хорошо - но я не совсем понимаю почему. Во-вторых, если, например, в столбце C был третий список со значениями «TRUE или FALSE», и ячейка должна была быть «TRUE» - может ли это соответствовать вашему предложению? – Gavin121

ответ

1

только для примера формула, как в мой комментарий будет достаточно

=SUMPRODUCT(COUNTIF(D2:D5,A2:A21)*NOT(COUNTIF(E2:E5,B2:B21))) 

проблема возникает, если у вас есть несколько значений, которые вы хотите исключить. то вам нужно использовать отрицательный счет (ы)

=SUMPRODUCT(1*NOT(COUNTIF(E2:E5,B2:B21))) 

это будет считать все строки, содержащие что-либо из списка исключений. Но NOT внутри sumproduct переключит его на противоположный (1 * необходим cus, он будет содержать только bool, который не может быть подсчитан)

если у вас есть столбец C с bool (true/false или 1/0) вы можете просто добавить, что:

=SUMPRODUCT(COUNTIF(D2:D5,A2:A21)*NOT(COUNTIF(E2:E5,B2:B21))*C2:C21) 

или же (C2:C21>12), если это то, что вам нужно ... но вы также можете включить его в список включают в себя (если а A/B/E/F и с (2/4/6)

=SUMPRODUCT(COUNTIFS(D2:D5,A2:A21,F2:F5,C2:C21)*NOT(COUNTIF(E2:E5,B2:B21))) 

Но каждый исключает нужен свой COUNTIF (B не X/Y и C не 8/9/11)

=SUMPRODUCT(COUNTIFS(D2:D5,A2:A21)*NOT(COUNTIF(E2:E5,B2:B21))*NOT(COUNTIF(F2:F5,C2:C21)) 

Как уже было сказано: Имея формулы, которые возвращают "" может возвращать ложные отсчеты (имейте это в виду)

+0

Помните, что ваша формула может выйти из строя, если выполняются оба следующих условия: 1) один или несколько диапазонов, переданных как параметр диапазона COUNTIF, включают пустые ячейки и 2) пустые ячейки возможны в пределах диапазонов, переданных в качестве параметра критериев, тогда как Этим случаем не влияет на настройку MATCH, которую я опубликовал. 1) представляется истинным, так как OP включает пустые ячейки в диапазоне E2: E4 (E4 - в настоящее время по крайней мере - пустой), поэтому, хотя в данный момент нет свободных ячеек в диапазоне B2: B21 (так что 2) в настоящее время является ложным), если это изменится, ваша формула завершится неудачно. –

+0

Я запустил несколько тестов и не получил никаких ошибок ... Можете ли вы показать мне пример для меня, чтобы получить ошибку? если я включаю пустые ячейки, они не будут считаться, если в столбце A и пустых ячейках в столбце B считать как не исключать ... отсутствующие и не будут считать это ... я действительно не понимаю :( –

+0

Извинения. «Я прояснил, что он терпит неудачу с нулевыми строками, а не« подлинно »пустыми ячейками. Так, например, с E3 и E4 пустым, как в исходном примере OP, сделайте так, чтобы некоторые из ячеек в диапазоне B2: B21 возвращались нулевая строка "". –

1

Лучше переключиться на SUMPRODUCT в таких случаях:

=SUMPRODUCT(0+ISNUMBER(MATCH(A2:A21,D2:D5,0)),1-ISNUMBER(MATCH(B2:B21,E2:E5,0)))

С уважением