Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/выделение диапазона дат в календаре согласно данным таблицы - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
выделение диапазона дат в календаре согласно данным таблицы
di99986 Дата: Суббота, 29.10.2022, 13:13 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Здравствуйте,
Помогите пожалуйста, не могу сообразить какую формулу нужно применить.
Необходимо, что бы в календаре, на вкладке "график отгула сотрудников" закрашивались периоды (соответствующие фамилиям) согласно информации на вкладке "Периоды отпусков).
Никак не пойму, что сюда может подойти. Пример прилагаю,

Заранее благодарю.
К сообщению приложен файл: __2023.xlsx (42.4 Kb)


Сообщение отредактировал di99986 - Суббота, 29.10.2022, 13:21
 
Ответить
СообщениеЗдравствуйте,
Помогите пожалуйста, не могу сообразить какую формулу нужно применить.
Необходимо, что бы в календаре, на вкладке "график отгула сотрудников" закрашивались периоды (соответствующие фамилиям) согласно информации на вкладке "Периоды отпусков).
Никак не пойму, что сюда может подойти. Пример прилагаю,

Заранее благодарю.

Автор - di99986
Дата добавления - 29.10.2022 в 13:13
Gustav Дата: Суббота, 29.10.2022, 15:35 | Сообщение № 2
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Если допускать разный порядок следования фамилий сотрудников на листе "Периоды" и "График", то для условного форматирования, начинающегося с ячейки C2 листа "График", получается вот такая зубодробительная, хотя и уныло-рутинная, конструкция:
Код
=ИЛИ(
ЕСЛИОШИБКА(И(
C$2>=ИНДЕКС('Периоды  отпусков 2023'!$E$9:$E$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0));
C$2<=ИНДЕКС('Периоды  отпусков 2023'!$G$9:$G$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0))
);ЛОЖЬ);
ЕСЛИОШИБКА(И(
C$2>=ИНДЕКС('Периоды  отпусков 2023'!$H$9:$H$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0));
C$2<=ИНДЕКС('Периоды  отпусков 2023'!$J$9:$J$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0))
);ЛОЖЬ);
ЕСЛИОШИБКА(И(
C$2>=ИНДЕКС('Периоды  отпусков 2023'!$K$9:$K$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0));
C$2<=ИНДЕКС('Периоды  отпусков 2023'!$M$9:$M$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0))
);ЛОЖЬ);
ЕСЛИОШИБКА(И(
C$2>=ИНДЕКС('Периоды  отпусков 2023'!$N$9:$N$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0));
C$2<=ИНДЕКС('Периоды  отпусков 2023'!$P$9:$P$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0))
);ЛОЖЬ);
ЕСЛИОШИБКА(И(
C$2>=ИНДЕКС('Периоды  отпусков 2023'!$Q$9:$Q$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0));
C$2<=ИНДЕКС('Периоды  отпусков 2023'!$S$9:$S$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0))
);ЛОЖЬ);
ЕСЛИОШИБКА(И(
C$2>=ИНДЕКС('Периоды  отпусков 2023'!$T$9:$T$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0));
C$2<=ИНДЕКС('Периоды  отпусков 2023'!$V$9:$V$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0))
);ЛОЖЬ);
ЕСЛИОШИБКА(И(
C$2>=ИНДЕКС('Периоды  отпусков 2023'!$W$9:$W$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0));
C$2<=ИНДЕКС('Периоды  отпусков 2023'!$Y$9:$Y$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0))
);ЛОЖЬ)
)

Для ясности мысли и прозрачности формулы дублирую её же с другим тэгом:
[vba]
Код
=ИЛИ(
ЕСЛИОШИБКА(И(
C$2>=ИНДЕКС('Периоды  отпусков 2023'!$E$9:$E$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0));
C$2<=ИНДЕКС('Периоды  отпусков 2023'!$G$9:$G$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0))
);ЛОЖЬ);
ЕСЛИОШИБКА(И(
C$2>=ИНДЕКС('Периоды  отпусков 2023'!$H$9:$H$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0));
C$2<=ИНДЕКС('Периоды  отпусков 2023'!$J$9:$J$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0))
);ЛОЖЬ);
ЕСЛИОШИБКА(И(
C$2>=ИНДЕКС('Периоды  отпусков 2023'!$K$9:$K$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0));
C$2<=ИНДЕКС('Периоды  отпусков 2023'!$M$9:$M$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0))
);ЛОЖЬ);
ЕСЛИОШИБКА(И(
C$2>=ИНДЕКС('Периоды  отпусков 2023'!$N$9:$N$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0));
C$2<=ИНДЕКС('Периоды  отпусков 2023'!$P$9:$P$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0))
);ЛОЖЬ);
ЕСЛИОШИБКА(И(
C$2>=ИНДЕКС('Периоды  отпусков 2023'!$Q$9:$Q$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0));
C$2<=ИНДЕКС('Периоды  отпусков 2023'!$S$9:$S$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0))
);ЛОЖЬ);
ЕСЛИОШИБКА(И(
C$2>=ИНДЕКС('Периоды  отпусков 2023'!$T$9:$T$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0));
C$2<=ИНДЕКС('Периоды  отпусков 2023'!$V$9:$V$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0))
);ЛОЖЬ);
ЕСЛИОШИБКА(И(
C$2>=ИНДЕКС('Периоды  отпусков 2023'!$W$9:$W$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0));
C$2<=ИНДЕКС('Периоды  отпусков 2023'!$Y$9:$Y$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0))
);ЛОЖЬ)
)
[/vba]

Если же списки сотрудников на листах "Периоды" и "График" гарантированно полностью совпадают по порядку, то можно ослабить ужас предыдущей формулы за счет исключения ИНДЕКСов и ПОИСКПОЗов и придать ей более компактный вид:
Код
=ИЛИ(
ЕСЛИОШИБКА(И( C$2>='Периоды  отпусков 2023'!$E9; C$2<='Периоды  отпусков 2023'!$G9); ЛОЖЬ);
ЕСЛИОШИБКА(И( C$2>='Периоды  отпусков 2023'!$H9; C$2<='Периоды  отпусков 2023'!$J9); ЛОЖЬ);
ЕСЛИОШИБКА(И( C$2>='Периоды  отпусков 2023'!$K9; C$2<='Периоды  отпусков 2023'!$M9); ЛОЖЬ);
ЕСЛИОШИБКА(И( C$2>='Периоды  отпусков 2023'!$N9; C$2<='Периоды  отпусков 2023'!$P9); ЛОЖЬ);
ЕСЛИОШИБКА(И( C$2>='Периоды  отпусков 2023'!$Q9; C$2<='Периоды  отпусков 2023'!$S9); ЛОЖЬ);
ЕСЛИОШИБКА(И( C$2>='Периоды  отпусков 2023'!$T9; C$2<='Периоды  отпусков 2023'!$V9); ЛОЖЬ);
ЕСЛИОШИБКА(И( C$2>='Периоды  отпусков 2023'!$W9; C$2<='Периоды  отпусков 2023'!$Y9); ЛОЖЬ)
)

И, соответственно, с другим тэгом:
[vba]
Код
=ИЛИ(
ЕСЛИОШИБКА(И( C$2>='Периоды  отпусков 2023'!$E9; C$2<='Периоды  отпусков 2023'!$G9); ЛОЖЬ);
ЕСЛИОШИБКА(И( C$2>='Периоды  отпусков 2023'!$H9; C$2<='Периоды  отпусков 2023'!$J9); ЛОЖЬ);
ЕСЛИОШИБКА(И( C$2>='Периоды  отпусков 2023'!$K9; C$2<='Периоды  отпусков 2023'!$M9); ЛОЖЬ);
ЕСЛИОШИБКА(И( C$2>='Периоды  отпусков 2023'!$N9; C$2<='Периоды  отпусков 2023'!$P9); ЛОЖЬ);
ЕСЛИОШИБКА(И( C$2>='Периоды  отпусков 2023'!$Q9; C$2<='Периоды  отпусков 2023'!$S9); ЛОЖЬ);
ЕСЛИОШИБКА(И( C$2>='Периоды  отпусков 2023'!$T9; C$2<='Периоды  отпусков 2023'!$V9); ЛОЖЬ);
ЕСЛИОШИБКА(И( C$2>='Периоды  отпусков 2023'!$W9; C$2<='Периоды  отпусков 2023'!$Y9); ЛОЖЬ)
)
[/vba]
УФ сами сможете оформить или пример подогнать?


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Суббота, 29.10.2022, 15:45
 
Ответить
СообщениеЕсли допускать разный порядок следования фамилий сотрудников на листе "Периоды" и "График", то для условного форматирования, начинающегося с ячейки C2 листа "График", получается вот такая зубодробительная, хотя и уныло-рутинная, конструкция:
Код
=ИЛИ(
ЕСЛИОШИБКА(И(
C$2>=ИНДЕКС('Периоды  отпусков 2023'!$E$9:$E$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0));
C$2<=ИНДЕКС('Периоды  отпусков 2023'!$G$9:$G$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0))
);ЛОЖЬ);
ЕСЛИОШИБКА(И(
C$2>=ИНДЕКС('Периоды  отпусков 2023'!$H$9:$H$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0));
C$2<=ИНДЕКС('Периоды  отпусков 2023'!$J$9:$J$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0))
);ЛОЖЬ);
ЕСЛИОШИБКА(И(
C$2>=ИНДЕКС('Периоды  отпусков 2023'!$K$9:$K$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0));
C$2<=ИНДЕКС('Периоды  отпусков 2023'!$M$9:$M$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0))
);ЛОЖЬ);
ЕСЛИОШИБКА(И(
C$2>=ИНДЕКС('Периоды  отпусков 2023'!$N$9:$N$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0));
C$2<=ИНДЕКС('Периоды  отпусков 2023'!$P$9:$P$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0))
);ЛОЖЬ);
ЕСЛИОШИБКА(И(
C$2>=ИНДЕКС('Периоды  отпусков 2023'!$Q$9:$Q$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0));
C$2<=ИНДЕКС('Периоды  отпусков 2023'!$S$9:$S$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0))
);ЛОЖЬ);
ЕСЛИОШИБКА(И(
C$2>=ИНДЕКС('Периоды  отпусков 2023'!$T$9:$T$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0));
C$2<=ИНДЕКС('Периоды  отпусков 2023'!$V$9:$V$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0))
);ЛОЖЬ);
ЕСЛИОШИБКА(И(
C$2>=ИНДЕКС('Периоды  отпусков 2023'!$W$9:$W$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0));
C$2<=ИНДЕКС('Периоды  отпусков 2023'!$Y$9:$Y$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0))
);ЛОЖЬ)
)

Для ясности мысли и прозрачности формулы дублирую её же с другим тэгом:
[vba]
Код
=ИЛИ(
ЕСЛИОШИБКА(И(
C$2>=ИНДЕКС('Периоды  отпусков 2023'!$E$9:$E$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0));
C$2<=ИНДЕКС('Периоды  отпусков 2023'!$G$9:$G$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0))
);ЛОЖЬ);
ЕСЛИОШИБКА(И(
C$2>=ИНДЕКС('Периоды  отпусков 2023'!$H$9:$H$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0));
C$2<=ИНДЕКС('Периоды  отпусков 2023'!$J$9:$J$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0))
);ЛОЖЬ);
ЕСЛИОШИБКА(И(
C$2>=ИНДЕКС('Периоды  отпусков 2023'!$K$9:$K$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0));
C$2<=ИНДЕКС('Периоды  отпусков 2023'!$M$9:$M$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0))
);ЛОЖЬ);
ЕСЛИОШИБКА(И(
C$2>=ИНДЕКС('Периоды  отпусков 2023'!$N$9:$N$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0));
C$2<=ИНДЕКС('Периоды  отпусков 2023'!$P$9:$P$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0))
);ЛОЖЬ);
ЕСЛИОШИБКА(И(
C$2>=ИНДЕКС('Периоды  отпусков 2023'!$Q$9:$Q$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0));
C$2<=ИНДЕКС('Периоды  отпусков 2023'!$S$9:$S$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0))
);ЛОЖЬ);
ЕСЛИОШИБКА(И(
C$2>=ИНДЕКС('Периоды  отпусков 2023'!$T$9:$T$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0));
C$2<=ИНДЕКС('Периоды  отпусков 2023'!$V$9:$V$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0))
);ЛОЖЬ);
ЕСЛИОШИБКА(И(
C$2>=ИНДЕКС('Периоды  отпусков 2023'!$W$9:$W$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0));
C$2<=ИНДЕКС('Периоды  отпусков 2023'!$Y$9:$Y$100; ПОИСКПОЗ($A3;'Периоды  отпусков 2023'!$B$9:$B$100;0))
);ЛОЖЬ)
)
[/vba]

Если же списки сотрудников на листах "Периоды" и "График" гарантированно полностью совпадают по порядку, то можно ослабить ужас предыдущей формулы за счет исключения ИНДЕКСов и ПОИСКПОЗов и придать ей более компактный вид:
Код
=ИЛИ(
ЕСЛИОШИБКА(И( C$2>='Периоды  отпусков 2023'!$E9; C$2<='Периоды  отпусков 2023'!$G9); ЛОЖЬ);
ЕСЛИОШИБКА(И( C$2>='Периоды  отпусков 2023'!$H9; C$2<='Периоды  отпусков 2023'!$J9); ЛОЖЬ);
ЕСЛИОШИБКА(И( C$2>='Периоды  отпусков 2023'!$K9; C$2<='Периоды  отпусков 2023'!$M9); ЛОЖЬ);
ЕСЛИОШИБКА(И( C$2>='Периоды  отпусков 2023'!$N9; C$2<='Периоды  отпусков 2023'!$P9); ЛОЖЬ);
ЕСЛИОШИБКА(И( C$2>='Периоды  отпусков 2023'!$Q9; C$2<='Периоды  отпусков 2023'!$S9); ЛОЖЬ);
ЕСЛИОШИБКА(И( C$2>='Периоды  отпусков 2023'!$T9; C$2<='Периоды  отпусков 2023'!$V9); ЛОЖЬ);
ЕСЛИОШИБКА(И( C$2>='Периоды  отпусков 2023'!$W9; C$2<='Периоды  отпусков 2023'!$Y9); ЛОЖЬ)
)

И, соответственно, с другим тэгом:
[vba]
Код
=ИЛИ(
ЕСЛИОШИБКА(И( C$2>='Периоды  отпусков 2023'!$E9; C$2<='Периоды  отпусков 2023'!$G9); ЛОЖЬ);
ЕСЛИОШИБКА(И( C$2>='Периоды  отпусков 2023'!$H9; C$2<='Периоды  отпусков 2023'!$J9); ЛОЖЬ);
ЕСЛИОШИБКА(И( C$2>='Периоды  отпусков 2023'!$K9; C$2<='Периоды  отпусков 2023'!$M9); ЛОЖЬ);
ЕСЛИОШИБКА(И( C$2>='Периоды  отпусков 2023'!$N9; C$2<='Периоды  отпусков 2023'!$P9); ЛОЖЬ);
ЕСЛИОШИБКА(И( C$2>='Периоды  отпусков 2023'!$Q9; C$2<='Периоды  отпусков 2023'!$S9); ЛОЖЬ);
ЕСЛИОШИБКА(И( C$2>='Периоды  отпусков 2023'!$T9; C$2<='Периоды  отпусков 2023'!$V9); ЛОЖЬ);
ЕСЛИОШИБКА(И( C$2>='Периоды  отпусков 2023'!$W9; C$2<='Периоды  отпусков 2023'!$Y9); ЛОЖЬ)
)
[/vba]
УФ сами сможете оформить или пример подогнать?

Автор - Gustav
Дата добавления - 29.10.2022 в 15:35
di99986 Дата: Суббота, 29.10.2022, 15:52 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Gustav, Божечки!!! А я пытала впихнуть в формулу И.
Спасибо большое, сейчас буду оформлять.
А то я уже новую таблицу придумывать начала... %) .
 
Ответить
СообщениеGustav, Божечки!!! А я пытала впихнуть в формулу И.
Спасибо большое, сейчас буду оформлять.
А то я уже новую таблицу придумывать начала... %) .

Автор - di99986
Дата добавления - 29.10.2022 в 15:52
Gustav Дата: Суббота, 29.10.2022, 15:58 | Сообщение № 4
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
сейчас буду оформлять

Я тоже уже оформил.
К сообщению приложен файл: CF_DR.xlsx (85.3 Kb)


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
сейчас буду оформлять

Я тоже уже оформил.

Автор - Gustav
Дата добавления - 29.10.2022 в 15:58
di99986 Дата: Суббота, 29.10.2022, 16:01 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Gustav, Да, списки я связала на двух вкладках, а на второй поставлю защиту :-) hands
 
Ответить
СообщениеGustav, Да, списки я связала на двух вкладках, а на второй поставлю защиту :-) hands

Автор - di99986
Дата добавления - 29.10.2022 в 16:01
di99986 Дата: Суббота, 29.10.2022, 16:02 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Gustav, :heart: :heart: :heart: :heart: :heart: :heart: :heart: :heart: :heart: :heart: :heart:
 
Ответить
СообщениеGustav, :heart: :heart: :heart: :heart: :heart: :heart: :heart: :heart: :heart: :heart: :heart:

Автор - di99986
Дата добавления - 29.10.2022 в 16:02
di99986 Дата: Суббота, 29.10.2022, 16:03 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Gustav, Спасибо огромное!!!!! :heart: hands
 
Ответить
СообщениеGustav, Спасибо огромное!!!!! :heart: hands

Автор - di99986
Дата добавления - 29.10.2022 в 16:03
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!