Добрый день, друзья!
К сожалению, поиском нашел решения, которые мне не помогли, поэтому обращаюсь за помощью напрямую.
Есть задача собрать график учета рабочего времени с организации на 500 человек. Решение изначально строилось, отталкиваясь от внешнего вида диаграммы Ганта, но достаточно статичной. (Я знаю, что для выполнения этой задачи намного эффективнее применить Аксесс или Проджект, но поставлена задача реализовать в экселе).
Теперь суть: создан набор файлов - (1) ИД.хлс, (2) УРВ_ФамилияИО.хлс, (3) Работа отдела.хлс.
Из файла 1 в файл 2 берутся данные по проектам, объектам. Помимо этого файл 2 сореджит данные о фамилии сотрудника, датах его выходов на работу, больничных, отпусках, а так же КОД той работы, которую он выполнял. Вот этот код как раз и собирается в файл 3.
Тут мы подходим к самому интересному - устройству файла Работа отдела (см. фрагмент в виде картинки).
В каждой ячейке забита формула:
=ЕСЛИ(Cводная!HH$5<=СЕГОДНЯ();ЕСЛИОШИБКА(ЕСЛИ(ПРОСМОТР(
ВПР(Cводная!HH$5;'\\<путь к файлу на сервере>\[УРВ_ФамилияИО.xlsm]УРВ'!$A$5:$B$500;2;ЛОЖЬ);{"Больничный";"День за свой счёт";"Отгул";"Отпуск";"Явка"};{"Б";"1д";"ОГ";"ОТ";"Я"})="Я";
ВПР(Cводная!HH$5;'\\<путь к файлу на сервере>\[УРВ_ФамилияИО.xlsm]УРВ'!$A$5:$I$500;9;ЛОЖЬ);ПРОСМОТР(
ВПР(Cводная!HH$5;'\\<путь к файлу на сервере>\[УРВ_ФамилияИО.xlsm]УРВ'!$A$5:$B$500;2;ЛОЖЬ);{"Больничный";"День за свой счёт";"Отгул";"Отпуск";"Явка"};{"Б";"1д";"ОГ";"ОТ";"Я"}));"");ДВССЫЛ("План!" & HH$1 & СТРОКА()))
Суть ее в следующем. Она смотрит в файл сотрудника, забирая из своей колонки дату из строки 5, находит, был ли в этот день сотрудник на работе, и если да, то какой работой он занимался в этот день - вписывает код этой работы; если не был, то по какой причине - вписывает болел, отгул, день за свой счёт или отпуск.
Теперь основная сложность - в каждой ячейке своя фамилия, да еще и трижды (сотрудники приходят и уходят, и приходится неудобно переделывать) и путь к ним различается в части названий папок отделов, НО! В начале каждой строки вписана нужная ФамилияИО и я не понимаю, как ее оттуда засунуть внутрь формулы как-то автоматически.
Простите, что длинно получилось.
К сожалению, поиском нашел решения, которые мне не помогли, поэтому обращаюсь за помощью напрямую.
Есть задача собрать график учета рабочего времени с организации на 500 человек. Решение изначально строилось, отталкиваясь от внешнего вида диаграммы Ганта, но достаточно статичной. (Я знаю, что для выполнения этой задачи намного эффективнее применить Аксесс или Проджект, но поставлена задача реализовать в экселе).
Теперь суть: создан набор файлов - (1) ИД.хлс, (2) УРВ_ФамилияИО.хлс, (3) Работа отдела.хлс.
Из файла 1 в файл 2 берутся данные по проектам, объектам. Помимо этого файл 2 сореджит данные о фамилии сотрудника, датах его выходов на работу, больничных, отпусках, а так же КОД той работы, которую он выполнял. Вот этот код как раз и собирается в файл 3.
Тут мы подходим к самому интересному - устройству файла Работа отдела (см. фрагмент в виде картинки).
В каждой ячейке забита формула:
=ЕСЛИ(Cводная!HH$5<=СЕГОДНЯ();ЕСЛИОШИБКА(ЕСЛИ(ПРОСМОТР(
ВПР(Cводная!HH$5;'\\<путь к файлу на сервере>\[УРВ_ФамилияИО.xlsm]УРВ'!$A$5:$B$500;2;ЛОЖЬ);{"Больничный";"День за свой счёт";"Отгул";"Отпуск";"Явка"};{"Б";"1д";"ОГ";"ОТ";"Я"})="Я";
ВПР(Cводная!HH$5;'\\<путь к файлу на сервере>\[УРВ_ФамилияИО.xlsm]УРВ'!$A$5:$I$500;9;ЛОЖЬ);ПРОСМОТР(
ВПР(Cводная!HH$5;'\\<путь к файлу на сервере>\[УРВ_ФамилияИО.xlsm]УРВ'!$A$5:$B$500;2;ЛОЖЬ);{"Больничный";"День за свой счёт";"Отгул";"Отпуск";"Явка"};{"Б";"1д";"ОГ";"ОТ";"Я"}));"");ДВССЫЛ("План!" & HH$1 & СТРОКА()))
Суть ее в следующем. Она смотрит в файл сотрудника, забирая из своей колонки дату из строки 5, находит, был ли в этот день сотрудник на работе, и если да, то какой работой он занимался в этот день - вписывает код этой работы; если не был, то по какой причине - вписывает болел, отгул, день за свой счёт или отпуск.
Теперь основная сложность - в каждой ячейке своя фамилия, да еще и трижды (сотрудники приходят и уходят, и приходится неудобно переделывать) и путь к ним различается в части названий папок отделов, НО! В начале каждой строки вписана нужная ФамилияИО и я не понимаю, как ее оттуда засунуть внутрь формулы как-то автоматически.
Простите, что длинно получилось.