Страницы: 1
RSS
Преобразования табеля учёта рабочего времени в плоскую таблицу
 
Всем привет!К
Как возможно решить след. задачу:

есть табель учёта рабочего времени, который выгружается из БД и имеет след. вид (см приложение).
Это стандартный табель учёта рабочего времени формы Т13. Как этот табель с помощью Excel можно превратить в плоскую таблицу (то же вложение вкладка итог)?
Пытался сделать с помощью Power Query, но не смог решить эту проблемы с помощью данного инструмента. Упираюсь в то, что первая половина и вторая половина месяца идёт параллельно друг другу в одних и тех же столбцах.

Таких табелей овер много, так что единоразовое решение- сделать руками, тоже не подходит=(

Прошу совета\помощи, спасибо!

P.S. иных выгрузок из системы нет и не будет.
 
Макросом можно.
 
=INDEX(Дано!$I$1:$AL$1000;MATCH($A2&"*";Дано!$C:$C;)+(B$1>15)*2;MATCH(B$1;IF(B$1<16;Дано!$I$15:$AL$15;Дано!$I$18:$AL$18);))
&"*" - так как у одних есть перевод строки у других нет, а правильнее по табельному все делать, его не просто так придумали.
Ну и то что у вас в итоге - это не плоская таблица.
Изменено: БМВ - 12.11.2018 12:43:59
По вопросам из тем форума, личку не читаю.
 
Все понятно, кроме одного: какую функцию выполняет эта переменная - (B$1>15)*2 ?

=INDEX(Дано!$I$1:$AL$1000;MATCH($A2&"*";Дано!$C:$C;)+(B$1>15)*2;MATCH(B$1;IF(B$1<16;Дано!$I$15:$AL$15;Дано!$I$18:$AL$18);))

И как мне вывести через эту формулу не статус(Я;В;ОТ и т.п.), а колл-во отработанных часов за день. Понимаю, что надо спуститься на одно строку ниже, но не понимаю как.  
 
Цитата
AndreyKabanov написал:
табель учёта рабочего времени, который выгружается из БД ...
стандартный табель учёта рабочего времени формы Т13
странно, форма Т13 - это печатная форма по данным учета, кт. заносятся и хранятся в БД, а у вас наибарот из формы хотите получить данные... хех... ;))

Цитата
Shummm763 написал:
какую функцию выполняет эта переменная - (B$1>15)*2 ?
после 15-го числа берет данные ниже на 2 строки

Цитата
Shummm763 написал:
надо спуститься на одно строку ниже
Цитата
БМВ написал:
=INDEX(Дано!$I$1:$AL$1000;MATCH($A2&"*";Дано!$C:$C;)+1+(B$1>15)*2;MATCH(B$1;IF(B$1<16;Дано!$I$15:$AL$15;Дано!$I$18:$AL$18);))
но учти, там есть цифирь ч\з дробь писанная... ;)
Изменено: BodkhiSatva - 07.02.2025 14:08:59
 
BodkhiSatva, Спасибо тебе, добрый человек.

А на счёт дроби Вы правильно подметили. При использовании функции, к примеру, СУММ, данные будут некорректны.
Скорее всего, надо сначала воспользоваться автозаменой.

Еще раз спасибо и всех Вам благ!
Страницы: 1
Наверх