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

Вход

Регистрация

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

 

= Мир MS Excel/Подсчет работочасов с переменными и по определенному айди - Мир MS Excel

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

Всем привет. Возможно, кто-то подскажет, ищу-ищу подобную тему, а найти не могу, так что не кидайтесь тапками, если что.
Нужно сделать таблицу учёта рабочих часов на предприятии.

Дано по колонкам:
- гггг.мм.дд чч.мм.сс
- ID пользователя
- пришел или ушел.

Нужно, чтобы таблица отбирала по ID определенного человека и подсчитывала разницу между датой.временем, когда он пришел и датой.временем, когда он ушел, отправляла это в колонку "за сутки", а потом подсчитывала "за месяц". Как сделать последние две операции я прекрасно представляю, а вот как сделать шаблон, в который вставляешь эти данные и таблица подсчитывает по определенному ID не пойму никак. Добавлю, что возможны суточные смены, то есть человек пришел в один день, а ушел на следующий. Уже неделю пытаюсь, а все никак не получается. Возможно, вообще не там ищу, вдруг у кого есть готовые решения - буду безгранично благодарна, а может хоть на путь истинный натолкнете. %)

Кидаю очень короткий пример исходящих данных, рабочая таблица будет за месяц и с намного большим количеством работников, но масштабировать не тяжело же, если понять принцип и формулу. Таблицу такого формата деалет система, которая не настраивается иначе. То есть отдельными рядками не буде
К сообщению приложен файл: kniga.xlsx (9.2 Kb)
 
Ответить
СообщениеВсем привет. Возможно, кто-то подскажет, ищу-ищу подобную тему, а найти не могу, так что не кидайтесь тапками, если что.
Нужно сделать таблицу учёта рабочих часов на предприятии.

Дано по колонкам:
- гггг.мм.дд чч.мм.сс
- ID пользователя
- пришел или ушел.

Нужно, чтобы таблица отбирала по ID определенного человека и подсчитывала разницу между датой.временем, когда он пришел и датой.временем, когда он ушел, отправляла это в колонку "за сутки", а потом подсчитывала "за месяц". Как сделать последние две операции я прекрасно представляю, а вот как сделать шаблон, в который вставляешь эти данные и таблица подсчитывает по определенному ID не пойму никак. Добавлю, что возможны суточные смены, то есть человек пришел в один день, а ушел на следующий. Уже неделю пытаюсь, а все никак не получается. Возможно, вообще не там ищу, вдруг у кого есть готовые решения - буду безгранично благодарна, а может хоть на путь истинный натолкнете. %)

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

Автор - elvsh119
Дата добавления - 17.02.2023 в 17:01
elvsh119 Дата: Понедельник, 20.02.2023, 17:27 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Никто не поможет?( :(
Перебирала варианты как могла, но не выходит( Никто не стыкался с такой ситуацией?


Сообщение отредактировал elvsh119 - Понедельник, 20.02.2023, 17:47
 
Ответить
СообщениеНикто не поможет?( :(
Перебирала варианты как могла, но не выходит( Никто не стыкался с такой ситуацией?

Автор - elvsh119
Дата добавления - 20.02.2023 в 17:27
прохожий2019 Дата: Понедельник, 20.02.2023, 20:17 | Сообщение № 3
Группа: Проверенные
Ранг: Старожил
Сообщений: 1298
Репутация: 327 ±
Замечаний: 0% ±

365 Beta Channel
например, PQ:
[vba]
Код
let
    from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    typ = Table.TransformColumnTypes(from,{"Время", type datetime}),
    add = Table.AddColumn(typ, "Дата", each DateTime.Date([Время]), type date),
    to = Table.Group(add, {"ID пользователя", "Дата"},
    {"время", (t)=>[a=t[Время],b=List.Max(a)-List.Min(a),c=Duration.TotalHours(b)][c]})
in
    to
[/vba]
К сообщению приложен файл: 8238617.xlsx (18.8 Kb)
 
Ответить
Сообщениенапример, PQ:
[vba]
Код
let
    from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    typ = Table.TransformColumnTypes(from,{"Время", type datetime}),
    add = Table.AddColumn(typ, "Дата", each DateTime.Date([Время]), type date),
    to = Table.Group(add, {"ID пользователя", "Дата"},
    {"время", (t)=>[a=t[Время],b=List.Max(a)-List.Min(a),c=Duration.TotalHours(b)][c]})
in
    to
[/vba]

Автор - прохожий2019
Дата добавления - 20.02.2023 в 20:17
elvsh119 Дата: Вторник, 21.02.2023, 11:40 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

прохожий2019, огромное спасибо! hands :heart: Пытаюсь разобраться с Вашей формулой (не кидайтесь тапками, я в экселе новенькая). Если человек пришел и ушел в один день, все работает хорошо, а вот если это рабочий, у которого смена сутки (условно пришел в 9 часов пятницы, а ушел в 9 субботы), то она слетает, к сожалению
 
Ответить
Сообщениепрохожий2019, огромное спасибо! hands :heart: Пытаюсь разобраться с Вашей формулой (не кидайтесь тапками, я в экселе новенькая). Если человек пришел и ушел в один день, все работает хорошо, а вот если это рабочий, у которого смена сутки (условно пришел в 9 часов пятницы, а ушел в 9 субботы), то она слетает, к сожалению

Автор - elvsh119
Дата добавления - 21.02.2023 в 11:40
прохожий2019 Дата: Вторник, 21.02.2023, 21:25 | Сообщение № 5
Группа: Проверенные
Ранг: Старожил
Сообщений: 1298
Репутация: 327 ±
Замечаний: 0% ±

365 Beta Channel
а вот если это рабочий
то где эти "если" в примере?

по текущей структуре видимо так:
[vba]
Код
let
    from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    typ = Table.TransformColumnTypes(from,{"Время", type datetime}),
    to = Table.Group(typ, "ID пользователя",
            {{"дата",(t)=>Date.From(List.Min(t[Время]))},
            {"время", (t)=>[a=t[Время],b=Duration.TotalHours(List.Max(a)-List.Min(a))][b]}},
            GroupKind.Local)
in
    to
[/vba] допил под всякие "если" - самостоятельно
К сообщению приложен файл: 5230889.xlsx (22.0 Kb)


Сообщение отредактировал прохожий2019 - Вторник, 21.02.2023, 21:33
 
Ответить
Сообщение
а вот если это рабочий
то где эти "если" в примере?

по текущей структуре видимо так:
[vba]
Код
let
    from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    typ = Table.TransformColumnTypes(from,{"Время", type datetime}),
    to = Table.Group(typ, "ID пользователя",
            {{"дата",(t)=>Date.From(List.Min(t[Время]))},
            {"время", (t)=>[a=t[Время],b=Duration.TotalHours(List.Max(a)-List.Min(a))][b]}},
            GroupKind.Local)
in
    to
[/vba] допил под всякие "если" - самостоятельно

Автор - прохожий2019
Дата добавления - 21.02.2023 в 21:25
elvsh119 Дата: Среда, 22.02.2023, 15:57 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Цитата прохожий2019, 21.02.2023 в 21:25, в сообщении № 5 ()
то где эти "если" в примере?

согласна. :( Надо было их добавить и туда, а не просто в описании.
Цитата прохожий2019, 21.02.2023 в 21:25, в сообщении № 5 ()
по текущей структуре видимо так:

Спасибо огромное! Вы такой молодец! Допиливать буду стараться сама, конечно, только вот не могу понять в каком формате нужно выставлять столбец "время", ведь как может 8,66 часов, например, это 9 часов и 6 минут или 8 часов и 0,66 от еще одного часа? Перевожу в временной формат - вообще ужас какой-то получается.(( %) https://snipboard.io/PT8tG4.jpg
 
Ответить
Сообщение
Цитата прохожий2019, 21.02.2023 в 21:25, в сообщении № 5 ()
то где эти "если" в примере?

согласна. :( Надо было их добавить и туда, а не просто в описании.
Цитата прохожий2019, 21.02.2023 в 21:25, в сообщении № 5 ()
по текущей структуре видимо так:

Спасибо огромное! Вы такой молодец! Допиливать буду стараться сама, конечно, только вот не могу понять в каком формате нужно выставлять столбец "время", ведь как может 8,66 часов, например, это 9 часов и 6 минут или 8 часов и 0,66 от еще одного часа? Перевожу в временной формат - вообще ужас какой-то получается.(( %) https://snipboard.io/PT8tG4.jpg

Автор - elvsh119
Дата добавления - 22.02.2023 в 15:57
прохожий2019 Дата: Среда, 22.02.2023, 18:23 | Сообщение № 7
Группа: Проверенные
Ранг: Старожил
Сообщений: 1298
Репутация: 327 ±
Замечаний: 0% ±

365 Beta Channel
или 8 часов и 0,66
именно так
 
Ответить
Сообщение
или 8 часов и 0,66
именно так

Автор - прохожий2019
Дата добавления - 22.02.2023 в 18:23
  • Страница 1 из 1
  • 1
Поиск:

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