Excel - подсчитать вхождение одной пары значений в несколько столбцов - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть матрица:

A   B   C   D   E   F
67  1   43  48  49  49
12          35  50  50
            33      
22  33              33

Я хочу подсчитать количество строк, в которых есть записи, по крайней мере, для одной пары предварительно заданных столбцов.Это просто вопрос, имеет ли ячейка значение или нет (а не конкретное значение).Парными столбцами являются AD, BE и CF.

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

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

=SUM(IF(A1:A4<>"",IF(D1:D4<>"",1,0)))

Однако у меня возникают трудности при расширении этого на несколько столбцов с помощью функции типа OR, которая считает только одну пару записей на строку, даже если эта строка содержит больше пар.

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

Буду признателен за ваши мысли по этому поводу.

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Я снова думаю, что если она не разбивается легко на отдельные суммы, тогда обычная формула массива проще всего с * для AND и + для OR (с функцией Sign, используемой для уплотнения OR (1,1 ...) в1):

=SUMPRODUCT(SIGN((A1:A4<>"")*(D1:D4<>"")+(B1:B4<>"")*(E1:E4<>"")+(C1:C4<>"")*(F1:F4<>"")))
0 голосов
/ 04 декабря 2018

Это не красиво, но, похоже, работает (по крайней мере, для предоставленных образцов данных):

enter image description here = SUM (($ A $ 1: $ A $ 4 <>"") ($ D $ 1: $ D $ 4 <> "")) + SUM (($ B $ 1: $ B $ 4 <> "") ($ E $ 1: $ E $ 4 <> "")) + SUM (($ C $ 1: $ C $ 4 <>" ") ($ F $ 1: $ F $ 4 <>" ")) - СУММА (($ A $ 1: $ A $ 4 <>"") ($ D $ 1: $ D $ 4 <>" ") ($ B $ 1: $ B $ 4 <>" ") ($ E $ 1: $ E $ 4 <>" ")) -SUM (($ A $ 1: $ A $ 4 <> "") ($ D $ 1: $ D $ 4 <> "") ($ C $ 1: $ C $ 4 <> "") ($ F $ 1: $ F $ 4 <> "")) - SUM (($ B $ 1: $ B $ 4 <> "") ($ E $ 1: $ E $ 4 <> "") ($ C $ 1: $ C $ 4 <> "") ($ F $ 1: $ F $ 4 <> "")) + SUM (($ A $ 1: $ A $ 4 <> "") ($ D $ 1: $ D $ 4 <> "") ($ B $ 1: $ B $ 4 <> "") ($ E $ 1: $ E $ 4 <> "") ($C $ 1: $ C $ 4 <> "") * ($ F $ 1: $ F $ 4 <> ""))

Количество строк, где A & D имеют значения + количество строк, где B & E имеет значения + количествострок, в которых значения имеют C & F - количество строк, в которых есть значения A, D, B, E - количество строк, в которых значения A, D, C, F - количество строк, в которых B, E, C, F имеют значения + количествостроки, в которых все 6 имеют значения.

...