2016-06-05 4 views
1

Я должен определить по каждой специальности общий процент операций, которые начинались вне обычного рабочего дня или в выходные дни.EXCEL-Count выходные дни в течение нескольких дней в пределах Countifs с перекрытием

Это то, что я до сих пор:

=COUNTIFS(Table1[Start surgery];">17:00")+COUNTIFS(Table1[Start surgery];"<09:00")+COUNTIFS(Table1[Surgery date];"MOD(WEEKDAY(cell), 7) <2") 

Первые 2 COUNTIFS работать, но я не в состоянии рассчитывать на выходные дни. И, во-вторых, его можно преуспеть, чтобы считать несколько операций дважды, потому что операция может быть после 17:00 и в выходные, но это должно считаться одним.

Кто может мне помочь :)?

Example

ответ

0

Поскольку первая часть формулы будет работать на время я просто изменял последнюю часть вашей формулы ...

=COUNTIFS(Table1[Start surgery];">17:00")+COUNTIFS(Table1[Start surgery];"<09:00")+SUMPRODUCT((WEEKDAY(Table1[Surgery date])=1)+(WEEKDAY(Table1[Surgery date])=7) 

Где 1 и 7 эквивалентны субботу и воскресенье.

Текущая проблема с приведенной выше формулой заключается в том, что время операции после 1700 года и до 09:00 в выходные дни считается дважды!

Чтобы исправить это все условия могут быть перемещены внутри SUMPRODUCT в качестве одного из возможных решений, и вы бы ветер с:

=SUMPRODUCT((WEEKDAY(Table1[Surgery Date])=1)+(WEEKDAY(Table1[Surgery Date])=7)+(WEEKDAY(Table1[Surgery Date])=MEDIAN(WEEKDAY(Table1[Surgery Date]),2,6))*(Table1[Start surgery]<"09:00")+(WEEKDAY(Table1[Surgery Date])=MEDIAN(WEEKDAY(Table1[Surgery Date]),2,6))*(Table1[Start surgery]>"17:00")) 

Теперь граф кронштейн может быть выключен там, как я не использую первенствовать на время. Другая потенциальная проблема, которую мы можем иметь, - со временем. ваше время n текст столбца времени или число, отформатированное для отображения в качестве времени? Это может быть связано с изменением времени сравнения с другим форматом, но сама формула должна оставаться неизменной.

Основные мысли здесь мы помещаем каждое условие внутри sumproduct. Условие будет оцениваться как TRUE, так и FALSE. Если условие претерпевает математическую операцию, оно будет преобразовано в 1 для TRUE и 0 для FALSE. + действуют как операторы OR и * действуют как инструкция AND.

+0

Вам нужно добавить проверку времени, чтобы они не получали двойные счета по выходным дням: '= SUMPRODUCT (((Таблица 1 [Начало операции]> время (17,0,0)) * (WEEKDAY (Таблица 1 [ Дата операции], 2) <= 5)) + ((Таблица 1 [Начало операции] <ВРЕМЯ (9,0,0)) * (НЕДЕЛЯ (таблица 1 [Дата операции], 2) <= 5)) + (НЕДЕЛЯ (Таблица 1 [Дата операции], 2)> = 6)) ' –

+0

Вы можете использовать второй критерий в будний день, чтобы сделать понедельник = 1, а затем выходные дни больше 5. Таким образом, вам нужна только одна проверка. –

+0

@ScottCraner Я думаю, вы избили меня до финиша. Вопрос: была ли его оригинальная фрама с «> 17:00» на самом деле, или ему понадобилось «>» и время (17,0.0). Мне было интересно, было ли его время строкой или действительно отличным временем. –

Смежные вопросы