2016-10-13 6 views
0

У меня есть таблица с именем «Вход», которая принимает форму ниже, с фактической таблицей, простирающейся до 20 столбцов и более 1000 строк. Столбец «Сайт» слева будет регулярно иметь повторяющиеся данные, но никогда не будет так, что, например, W01 дважды появляется в одной строке, хотя Site01 может иметь W01 дважды, только в разных строках.Использование COUNTIFS в нескольких столбцах

Site | Item1 | Item2 | Item3 
------------------------------------------ 
Site01 | W01   W02  S01 
Site02 | W01   S02 
Site03 | S01   W01 
Site01 | W01 

я тогда еще одна таблица называется «Результаты» со всеми из участков вдоль верхнего ряда, и все элементы вдоль самого левого столбца. Идея заключается в том, чтобы иметь таблицы показывают, сколько раз сайт использовал данный предмет, так что результат из приведенной выше таблицы следует:

 | Site01 | Site02 | Site03 
--------------------------------- 
    W01 | 2  1  1 
    W02 | 1  0  0 
    S01 | 1  0  1 
    S02 | 0  1  0 

кажется относительно легко сделать это через один столбец в таблице ввода используя формулу COUNTIFS, которая принимает вид:

=COUNTIFS('Input'!$C$4:$C$1000,'Results'!C$2,'Input'$D$4:$D$1000,'Results'!$B3) 

, которые затем могут быть скопированы по всей таблице «Результаты».

Я могу использовать этот подход в двух или трех столбцах, объединив несколько кратных вышеуказанных COUNTIFS с плюсами и просто изменив следующие COUNTIFS, чтобы проверить «Input» $ E $ 4: $ E $ 1000 во второй части COUNTIFS - но это быстро становится неосуществимым над листом с длиной до 20 строк, поэтому мне нужна формула или код VBA, который работает точно так же, как этот подход COUNTIFS, но это масштабируется по гораздо большему количеству строк.

ответ

1

Переключить на SUMPRODUCT:

=SUMPRODUCT((Input!$C$4:$C$1000=Results!C$2)*(Input!$D$4:$F$1000=Results!$B3))

Изменить F в части:

Input!$D$4:$F$1000

по желанию.

С уважением