СЧЁТЕСЛИ и И

У меня есть таблица с двумя листами Master и Results. Master содержит «Дата» в столбце A и текстовое поле «Причина» в столбце B. В Results пользователь вводит дату начала и окончания, мне нужно подсчитать количество результатов в Master, которые находятся между датами и имеют определенный текст в столбце "Причина".

Поскольку я использую только Excel 2003, я думаю, что могу добиться этого, только используя СЧЁТЕСЛИ и И вместе, но я не могу написать правильную формулу, любая помощь будет принята с благодарностью.


person AndyScaife    schedule 10.07.2014    source источник


Ответы (2)


Два простых способа сделать это с помощью того, что предлагает вам Excel 2003: формулы массива или вспомогательный столбец.

[Master]
Date       Reason HelperColumn
2014-01-01 A      0
2014-02-01 B      0
2014-03-01 A      1
2014-04-01 A      1
2014-05-01 B      0
2014-06-01 A      0

[Results]
From:      2014-02-01
To:        2014-05-01
Reason:    A
Count:     2

Первый пример: формулы массива

Формула для подсчета будет следующей:

{=SUM(IF(Master!A2:A7>=B1,1,0)*IF(Master!A2:A7<=B2,1,0)*IF(Master!B2:B7=B3,1,0))}

Чтобы использовать формулы массива, введите формулу без фигурных скобок и нажмите [CTRL] + [SHIFT] + [ENTER], чтобы отправить формулу. Дополнительная информация здесь .

Второй пример: вспомогательный столбец

В качестве альтернативы вы можете добавить вспомогательный столбец на мастер-лист. В этом столбце будет отображаться 1, если текущая строка соответствует критериям поиска, и 0 в противном случае. Затем вы можете получить счет, используя обычный SUM в вспомогательном столбце.

Формула для вспомогательного столбца:

=IF(AND(A2>=Results!$B$1;A2<=Results!$B$2;B2=Results!$B$3);1;0)

И для подсчета в листе результатов:

=SUM(Master!C2:C7)
person hsan    schedule 10.07.2014
comment
Третий способ: SUMPRODUCT с синтаксисом, близким к вашему SUM примеру, но без нескольких IF и без формулы массива: =SUMPRODUCT((Master!A2:A7>=B1)*(Master!A2:A7<=B2)*(Master!B2:B7=B3)) - person MP24; 10.07.2014

@hsan, спасибо, что указали на это. Обратите внимание, что мой код ниже предназначен для Excel 2007+.

My Masters tab:

Date    Reason
10/07/2014  a
10/07/2014  b
10/07/2014  a
11/07/2014  d
11/07/2014  a
12/07/2014  b
13/07/2014  c


My Results tab:
s.Date  10/07/2014
e.Date  11/07/2014

Search  a

Count   3

S.Date и e.Date - это мои начало и конец, а Search - текстовый поиск причины (очень простое совпадение с 1 символом).

Формулы для поля Count:

=COUNTIFS(Master!$A$2:$A$8,">="&B1,Master!$A$2:$A$8,"<="&B2,Master!$B$2:$B$8,Result!B4)

Обратите внимание, как я использую countIFS (не if) и создаю синтаксис между датами в условиях 1 и 2, а затем фильтрую поиск в условии 3.

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

person KevHun    schedule 10.07.2014
comment
К сожалению, Excel 2003 не знает COUNTIFS. - person hsan; 10.07.2014