Я использую Excel и у меня возникли некоторые проблемы с Countif и я не понимаю, как это работает в отличие от SubTotal . Я использовал графический интерфейс для подведения итогов, и все промежуточные итоги верны. Затем я попытался использовать Countif чтобы увидеть, сколько требований прошло. Это работало только для первого промежуточного итога. Легко понять почему. Когда я смотрю на коробку для промежуточного итога, он говорит:

=SUBTOTAL(3,C286:C292)

Когда я смотрю на мою формулу для пройденных требований, я имею:

=IF(ISTEXT(A285),COUNTIF(C286:C338,"=Passed"),"")

Обратите внимание, что последний столбец неверен. Как промежуточному итогу удалось сохранить это правильно? Я набрал формулу для пройденных требований и перетащил ее вниз по странице. Все вело себя как ожидалось (даже бит об ISTEXT послушно выяснил, какой ряд был каким), но последний ряд ошибся.

Есть идеи?

SRS Maintenance Count   7   44  
SRS Maintenance Passed              
SRS Maintenance Passed              
SRS Maintenance Passed              
SRS Maintenance Passed              
SRS Maintenance Passed              
SRS Maintenance Passed              
SRS Maintenance Passed              
SRS Reports Count   12  43  
SRS Reports Passed              
SRS Reports Passed              
SRS Reports Passed              
SRS Reports Passed              
SRS Reports Failed              
SRS Reports Passed              
SRS Reports Passed              
SRS Reports Failed              
SRS Reports Passed              
SRS Reports Passed              
SRS Reports Failed              

1 ответ1

0

Эта SubTotal() самом деле просто использует CountA() (указанную через "3", которую вы передали в нее) для подсчета указанного диапазона. Эта функция будет считать любую ячейку, которая не является пустой (независимо от того, что она содержит). Единственная причина, по которой он получает полное право, заключается в том, что все эти записи оказались "Пропущенными". Попробуйте изменить одно из значений на "Сбой обслуживания SRS", и вы увидите, что общее количество не меняется.

Возникла проблема с оператором If() . На самом деле вам не нужно использовать If() вместе с CountIf() . Логика CountIf() такова: « Если ячейка соответствует указанному мной значению, подсчитайте его ». Таким образом, следующее утверждение будет работать вместо.

=CountIf(C286:C292, "SRS Maintenance Passed")

Проблема с CountIf() заключается в том, что вы можете указать только один термин для сопоставления. Таким образом, вам понадобятся два отдельных «промежуточных итога», чтобы получить значение как пройденных отчетов, так и прошедшего техобслуживания.

=(CountIf(C286:C292, "SRS Maintenance Passed") + (CountIf(C286:C292, "SRS Reports Passed"))

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .