У меня есть формула массива, которая работает не так, как я хочу.
Формула, которую я имею, не возвращает правильное значение (возвращает FALSE), когда даты отпуска находятся в одном и том же месяце, а месяц = текущий месяц
Формула должна проверять следующие условия:
- Col. E = ежегодный отпуск
- Col. J = Завершено
и возвращает количество дней отпуска, занятых работником за каждый месяц, согласно следующим условиям:
(допустим, текущий месяц = февраль-2019)
a) IF Col.O = Да И Текущий месяц = Дата окончания отпуска (означает, что даты начала и окончания находятся в одном и том же месяце = текущий месяц)
ТО возвращаемое количество дней отпуска
b) ЕСЛИ полковник Р = Да (даты отпуска начинаются через один месяц и заканчиваются в другом месяце)
(i) IF Текущий месяц = Дата начала отпуска. ТОГДА возвращаемое количество дней между датой начала отпуска и датой окончания месяца.
(ii) IF Текущий месяц = Дата окончания отпуска, ТО общее количество возвращенных дней (Кол. Ч) минус количество дней между датой начала отпуска и датой окончания месяца месяца
=ArrayFormula(iferror(if(($J$2:$J<>"Complete")*($E$2:$E<>"Annual Leave"),"",if($P$2:$P="yes",if(month($F$2:$F)=month(R$1),NETWORKDAYS.INTL($F$2:$F,EOMONTH($F$2:$F,0),1,Holidays!$B$2:$B),if(month($G$2:$G)=month(R$1),$H$2:$H-NETWORKDAYS.INTL($F$2:$F,EOMONTH($F$2:$F,0),1,Holidays!$B$2:$B),if(month($G$2:$G)=month(R$1),if($O$2:$O="Yes",$H$2:$H,0)))))),"x"))
Формула, которая у меня есть, не возвращает правильное значение (возвращает FALSE), когда даты отпуска находятся в одном и том же месяце, а месяц = текущий месяц
Все остальные условия в порядке (т. Е. Если True, все остальные условия выполнены правильно, и отображается правильное значение, кроме указанного выше условия)
Ссылка на Google лист
![screenshot of datasheet with the array formula](https://i.stack.imgur.com/ZnVmT.png)