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

Это расширение этого вопроса , на который ответил XOR LX .

В исходном вопросе я хотел посчитать количество строк вматрица, включающая значения, которые удовлетворяли хотя бы одному критерию, специфичному для столбца.Упомянутые столбцы были последовательными (например, A1: D4), но ситуация требует индексирования столбцов, которые не являются последовательными.

Взять матрицу данных:

A B C D E F G H
4 2 2 2 1 4 2 4
  5 2 1 3 4   1
3 2 1     4 5 1
1 2 3 5 3 2 2 2
2 2 2 2 2 2 2 2

С критериями, специфичными для столбца:

  • Критерии столбца A:> 2
  • Столбец Bкритерии:> 2
  • критерии столбца C: <2 </li>
  • критерии столбца D:> 4
  • критерии столбца E:> 2
  • критерии столбца F:> 3
  • Критерий столбца G:> 2
  • Критерий столбца H:> 3

Чтобы подсчитать количество строк, имеющих значения для всех столбцов,кроме того, чтобы соответствовать хотя бы критерию, специфичному для столбцов, мы могли бы использовать код *1035* XOR LX *: 1036 *

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

..., что может иметь некоторые проблемы с обработкой пробелов, поэтому альтернатива:

=ROWS(A1:D4)-COUNTIFS(A1:A5,"<=2",B1:B5,"<=2",C1:C5,">=2",D1:D5,"<=4",E1:E5,">=2",F1:F5,">=3",G1:G5,">=2",H1:H5,">=3")-COUNT(1/N(MMULT(N(A1:H5=""),TRANSPOSE(COLUMN(A1:H5)^0))>0))

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

Но что если подсчитать только строки с данными для наверняка , игнорируя другие столбцы.Кроме того, что, если только определенные столбцы должны оцениваться по их критериям?

Давайте рассмотрим пример выше.Наша цель - подсчитать количество строк с i) полными данными в определенных столбцах и ii) записями в определенных столбцах, которые соответствуют хотя бы одному критерию, специфичному для столбца.

Соответствующими столбцами, которые должны содержать полные данные, являются A: C и F: H.Столбцы, которые должны оцениваться по их критериям, являются только A: C.Решение 2, поскольку:

  • Всего 5 строк, но только строки 1, 3, 4 и 5 соответствуют требованиям, так как они имеют полные данные в столбцах A: C и F: H.В строке 2 отсутствуют данные в столбце A, а также в G, и любой из них должен исключать его включение.Обратите внимание, что, хотя в строке 3 отсутствуют данные в столбцах D и E, они все еще включены, поскольку эти столбцы не важны.
  • Строки 1 и 3 соответствуют заданным критериям, поскольку i) они содержат полные данные в столбцахA: C и F: H, и ii) хотя бы одна запись соответствует одному из критериев для столбцов A, B и C;в частности, значение в строке 1, столбце A (4> 2) и в строке 3, столбце A (3> 2) и столбце C (1 <2).Обратите внимание, что это по-прежнему считается только одной строкой, отвечающей критериям, даже если критерии для 2 столбцов соблюдены. </li>

Ваши мысли будут приветствоваться.Пожалуйста, также проявите некоторую любовь к XOR LX в оригинальном сообщении - я уверен, что вы найдете его решение полезным.

1 Ответ

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

@ PyjamaNinja побудил меня попытаться развить мою «лемму» до их более раннего вопроса.

Метод:

A Count rows with entries in all specified columns (A-C and F-H)

B Count rows with entries in all specified columns that do _not_ meet any of the criteria in the columns being evaluated (A-C).

Subtract B from A.

=COUNTIFS(A1:A5,"<>",B1:B5,"<>",C1:C5,"<>",F1:F5,"<>",G1:G5,"<>",H1:H5,"<>")-COUNTIFS(A1:A5,"<=2",B1:B5,"<=2",C1:C5,">=2",F1:F5,"<>",G1:G5,"<>",H1:H5,"<>")

Большое спасибо @XOR LX.

enter image description here

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