Страницы: 1
RSS
Расчет аналитики по рабочим дням
 
Добрый день всем!

У меня такой вопрос:

В колонке G создана большая формула с функциями: ЕСЛИ, ЧИСТРАБДНИ, ЕСЛИОШИБКА, И, ЕСЛИМН.
Но вопрос возникает, когда 10 колонок создано, то можно прописать формулу большую для расчета рабочих дней, начиная с L и до конца, но когда еще нужно создать 50-100 колонок, то эта большая формула не годится, т.к. это очень долго и можно запутаться при расчете. Пример:

=ЕСЛИОШИБКА(ЕСЛИ(И(AZ18="";AV18="";AR18="";AN18="";AJ18="";AF18="";AB18="";X18="";T18="";P18="";L18="";I18="");ЧИСТРАБДНИ(BD18;$F$2);ЕСЛИ(И(AV18="";AR18="";AN18="";AJ18="";AF18="";AB18="";X18="";T18="";P18="";L18="";I18="");ЧИСТРАБДНИ(AZ18;$F$2);ЕСЛИ(И(AR18="";AN18="";AJ18="";AF18="";AB18="";X18="";T18="";P18="";L18="";I18="");ЧИСТРАБДНИ(AV18;$F$2);ЕСЛИ(И(AN18="";AJ18="";AF18="";AB18="";X18="";T18="";P18="";L18="";I18="");ЧИСТРАБДНИ(AR18;$F$2);ЕСЛИ(И(AJ18="";AF18="";AB18="";X18="";T18="";P18="";L18="";I18="");ЧИСТРАБДНИ(AN18;$F$2);(ЕСЛИ(И(AF18="";AB18="";X18="";T18="";P18="";L18="";I18="");ЧИСТРАБДНИ(AJ18;$F$2);ЕСЛИ(И(AB18="";X18="";T18="";P18="";L18="";I18="");ЧИСТРАБДНИ(AF18;$F$2);ЕСЛИ(И(X18="";T18="";P18="";L18="";I18="");ЧИСТРАБДНИ(AB18;$F$2);ЕСЛИ(И(T18="";P18="";L18="";I18="");ЧИСТРАБДНИ(X18;$F$2);ЕСЛИ(И(P18="";L18="";I18="");ЧИСТРАБДНИ(T18;$F$2);ЕСЛИ(И(L18="";I18="");ЧИСТРАБДНИ(P18;$F$2);ЕСЛИ(I18="";ЧИСТРАБДНИ(L18;$F$2);ЕСЛИМН(И(AZ18;AV18="";AR18="";AN18="";AJ18="";AF18="";AB18="";X18="";T18="";P18="";L18="");ЧИСТРАБДНИ(BD18;I18);И(AV18="";AR18="";AN18="";AJ18="";AF18="";AB18="";X18="";T18="";P18="";L18="");ЧИСТРАБДНИ(AZ18;I18);И(AR18="";AN18="";AJ18="";AF18="";AB18="";X18="";T18="";P18="";L18="");ЧИСТРАБДНИ(AV18;I18);И(AN18="";AJ18="";AF18="";AB18="";X18="";T18="";P18="";L18="");ЧИСТРАБДНИ(AR18;I18);И(AJ18="";AF18="";AB18="";X18="";T18="";P18="";L18="");ЧИСТРАБДНИ(AN18;I18);И(AF18="";AB18="";X18="";T18="";P18="";L18="");ЧИСТРАБДНИ(AJ18;I18);И(AB18="";X18="";T18="";P18="";L18="");ЧИСТРАБДНИ(AF18;I18);И(X18="";T18="";P18="";L18="");ЧИСТРАБДНИ(AB18;I18);И(T18="";P18="";L18="");ЧИСТРАБДНИ(X18;I18);И(P18="";L18="");ЧИСТРАБДНИ(T18;I18);L18="";ЧИСТРАБДНИ(P18;I18);K18="Завершено";ЧИСТРАБДНИ(L18;I18)))))))))))))));ЕСЛИ(K18="Для информации";1;""))

Можно ли другой способ найти, чтобы не тратить большое количество времени на написание огромной формулы для расчета?
 
Вместо формулы напишите что и как Вы считаете этой формулой. Алгоритм расчета обычными словами
Согласие есть продукт при полном непротивлении сторон
 
romlel, вам что нужна минимальная дата начала "рев."?
пробуйте:
=ЕСЛИОШИБКА(ЧИСТРАБДНИ(1/МИН(I12;МИНЕСЛИ(L12:BG12;L$11:BG$11;"Дата н*"))^-1;F$2);ЕСЛИ(K12="Для информации";1;""))
 
UDF по логике от ПавелW
Ячейка G4
Скрытый текст
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Вместо формулы напишите что и как Вы считаете этой формулой. Алгоритм расчета обычными словами
Мне нужно так:
Для расчета формулы начинается в колонке G с 12 строки.
Если в колонке AZ пустует дата, а в колонке I пустует значение,, то совершается расчет даты в колонке L, например, L12 от текущей даты в ячейке E2 через функцию ЧИСТРАБДНИ, если условие не выполнилось, то переходит на следующую колонку AZ => Если в колонке AV пустует дата, а в колонке I пустует значение, например, 00, то совершается расчет даты в колонке L, например, L12 от текущей даты в ячейке E2 через функцию ЧИСТРАБДНИ и до тех пор формула будет работать, пока не дойдет до колонки L или не появится дата в колонке I при условии, если появится значение 00 в колонке H. Если появится дата в колонке I, то итоговый расчет будет выполняться в зависимости от того, где начинается расчет. Например, если появился в колонке P первоначальная дата (дата начала рассмотрения рев.02), то отсюда нужно сделать расчет, например, ЧИСТРАБДНИ(P12;I12); если появилась первоначальная дата в колонке L, то  ЧИСТРАБДНИ(L12;I12), чтобы зафиксировать и т.д.
Изменено: romlel - 19.08.2026 12:12:33
 
Увидел, попробую применить, благодарю.
Изменено: romlel - 19.08.2026 12:39:15
 
Цитата
первоначальная дата
= минимальная дата)
так немного корректней:
=ЕСЛИОШИБКА(ЧИСТРАБДНИ(ЕСЛИ(I12="";1/МИНЕСЛИ(L12:BG12;L$11:BG$11;"Дата н*")^-1;I12);F$2);ЕСЛИ(K12="Для информации";1;""))
 
Здравствуйте.
Если правильно понял, вот ещё вариант:
Код
=ЧИСТРАБДНИ(ИНДЕКС(H18:BO18;ПОИСКПОЗ(9^9;H18:BO18;1)-2);$F$2)

С К18 толком не понял в каком случае надо проверять, но думаю можно к этой формуле прикрутить.

Изменено: gling - 19.08.2026 12:52:35
 
Благодарю всем за оперативную помощь, разобрался.
Цитата
написал:
=ЧИСТРАБДНИ(ИНДЕКС(H18:BO18;ПОИСКПОЗ(9^9;H18:BO18;1)-2);$F$2)
Это не подходит:(
Изменено: romlel - 19.08.2026 13:15:03
 
Del
 
Цитата
написал:
Можно ли другой способ найти,
у меня ощущение, что вы не туда свернули - у вас все строится из базовых данных "Report для цифр.рев." вот с ней и нужно работать, что-то изначально сделать в PQ, остальное загнать в модель и строить сводную + сделал бы отдельный справочник дат рабочих. Как минимум такое проще поддерживать и обновлять, хотя если это разовая операция то наверное проще по вашему пути.
 
Цитата
написал:
Это не подходит:(
А может быть такая подойдет?

Код
=ЕСЛИОШИБКА(ЕСЛИ(I18="";ЧИСТРАБДНИ(ИНДЕКС(L18:BO18;ПОИСКПОЗ(1;ИНДЕКС(--ЕЧИСЛО(L18:BO18););));$F$2);ЧИСТРАБДНИ(ИНДЕКС(L18:BO18;ПОИСКПОЗ(1;ИНДЕКС(--ЕЧИСЛО(L18:BO18););));$I18));ЕСЛИ(K18="Для информации";1;"")) 

Или тоже самое но формула массива

Код
=ЕСЛИОШИБКА(ЕСЛИ(I18="";ЧИСТРАБДНИ(МИН(ЕСЛИ(L18:CH18>9999;L18:CH18;""));$F$2);ЧИСТРАБДНИ(МИН(ЕСЛИ(L18:CH18>9999;L18:CH18;""));$I18));ЕСЛИ(K18="Для информации";1;""))

Так как в К18, по формуле в ней,  "Завершено" не предусмотрено, по этому условие ЕСЛИ(K18="Завершено";ЧИСТРАБДНИ(L18;I18)) - исключил.

Изменено: gling - 20.08.2026 10:04:26
Страницы: 1
Читают тему
Наверх