Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2014, 09:00   #1
FiataliS
Пользователь
 
Регистрация: 11.12.2013
Сообщений: 56
По умолчанию В формуле не работает И "and"

Написал формулу отсчета 3 дней от заданой даты не считая выходных.

В эклеселе она выглядит так
=ЕСЛИ($D44>"";$H44+ДЕНЬ($AE44)-$AF44+ЕСЛИ(ИЛИ(И(ДЕНЬНЕД($AF44;2)=1 ;ДЕНЬНЕД(H44;2)=5);ДЕНЬНЕД($AF44;2) =1;ДЕНЬНЕД(H44;2)=4);ДЕНЬ(2);0);"")

вставляеться в ячеку через VBA.

Код:
.FormulaR1C1 = "=IF(RC4>"""",RC8+ДЕНЬ(RC31)-RC32+if(or(and(weekday(RC32,2)=1,weekday(RC8,2)=5),weekday(RC32,2)=1,weekday(RC8,2)=4),day(2),0),"""")"
Вопросов нет все вставляеться все работает, но почему то при изменение диапазаона на 13 чилсо тоесть сегодня 13 и дата отсчета 13 почемуто все равно прибовляет 2 дня хотя по условию and которое не выполняеться должен прибавить 0.
Знаю как, не знаю что и с чем.
FiataliS вне форума Ответить с цитированием
Старый 13.01.2014, 09:03   #2
FiataliS
Пользователь
 
Регистрация: 11.12.2013
Сообщений: 56
По умолчанию

Этот участок формулы прибовляет либо 0 либо 2 при выполнении условие1 и условие2 или условие3 и условие4

Код:

if(or(and(weekday(RC32,2)=1,weekday(RC8,2)=5),weekday(RC32,2)=1,weekday(RC8,2)=4),day(2),0)
Но он почему то не работает.

Он прибавляет 2 если выполняеться любое одно условие, а мне нужно чтобы только при выполнении условия 1,2 или условия 3,4.
Знаю как, не знаю что и с чем.

Последний раз редактировалось FiataliS; 13.01.2014 в 09:14. Причина: информация
FiataliS вне форума Ответить с цитированием
Старый 13.01.2014, 09:24   #3
FiataliS
Пользователь
 
Регистрация: 11.12.2013
Сообщений: 56
Смех Все разобрался

Нашел решение, после "или"(or) нужно заново открывать "И"(and). Иначе условия 3 и 4 у меня считались как выполение любого из них.

Недоглядел., простите за беспокойство.

в Excel форсула теперь выглядит так
=ЕСЛИ($D44>"";$H44+ДЕНЬ($AE44)-$AF44+ЕСЛИ(ИЛИ(И(ДЕНЬНЕД($AF44;2)=1 ;ДЕНЬНЕД(H44;2)=5);И(ДЕНЬНЕД($AF44; 2)=1;ДЕНЬНЕД(H44;2)=4));ДЕНЬ(2);0); "")

А в VBA
Код:
 .FormulaR1C1 = "=IF(RC4>"""",RC8+day(RC31)-RC32+if(or(and(weekday(RC32,2)=1,weekday(RC8,2)=5),and(weekday(RC32,2)=1,weekday(RC8,2)=4)),day(2),0),"""")"
Знаю как, не знаю что и с чем.

Последний раз редактировалось FiataliS; 13.01.2014 в 10:48. Причина: Ответ.
FiataliS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Постоянно слетает галочка "автоматически" в "Параметры Excel", "Формулы", "Вычисления в книге" Alexsandrr Microsoft Office Excel 4 19.10.2013 14:22
Что в формуле означает выражение ="";"" Робин Microsoft Office Excel 5 05.02.2013 22:54
МасОС не работает ,хоть и Видит,Интернет и "сломалась" "Сеть" =/ ApxuKILLER Операционные системы общие вопросы 2 05.05.2011 08:22
Как работает system("copy \"C:\\1\"")? Alena-b-v Общие вопросы C/C++ 4 01.09.2010 17:27
Почему не работает Case txt Like "текст1", "текст2" Oooleg Microsoft Office Excel 2 15.07.2009 10:08