Skip to content

Обработка и анализ данных - Помощь FineReport | Разработка отчетов | Отчетность | Учебные пособия

Обработка и анализ данных

1. Обзор

Таблицы данных были подключены к BI в Basic Table Processing и просто очищены.

Следующие вопросы, которые необходимо решить, это:

  • Статус присутствия отмечается только у сотрудников, которые находятся в отпуске; сотрудники, которые зашли на работу, не могут изменить свой статус присутствия;
  • Основная информация, такая как имя, возраст и пол сотрудника, отсутствует в информации о приеме на работу, которая содержится в "Форме информации о персонале";
  • Данные представлены только по часам, но отсутствуют данные об отработанных часах и т.д.

Это необходимо решить путем редактирования данных в моем анализе.

2. Различение поведения при пробивании

2.1 Данные с флажками и тактовым поведением

1) Создайте новую тему аналитики и добавьте поля "Punch Card Information Table" в "Public Data".

2022-08-31_11-36-31.gif

и дважды щелкните по имени таблицы, чтобы переименовать ее в таблицу "Данные о посещаемости (без отпусков)".

2022-08-31_11-39-17.png

2) Отфильтруйте данные, которые не находятся в отпуске, т.е. данные, когда поле "Статус" пустое, в этой части данных сотрудники должны приходить на работу нормально, отфильтруйте их, чтобы проанализировать данные о приходе на работу. Как показано на рисунке ниже:

Подробное описание фильтрации см. в разделе:Основные функции фильтрации

2022-08-31_11-41-26.png

3) Добавьте групповую сводку, чтобы узнать самое раннее и самое позднее время, в которое пользователь может заходить каждый день. Как показано на рисунке ниже:

Самое раннее время соответствует времени начала работы сотрудника

Самое позднее время соответствует времени увольнения сотрудника

Подробное описание сводок группировки см:Функциональность базы группировочных сводок

2022-08-31_11-55-57.png

4) Создайте новое поле для суждения о том, опоздали вы или нет. В компании Мингминга Ли опозданием считается прибытие в компанию позже 9:30. Поэтому мы создаем новое поле 9:30 для суждения и вводим формулу:

TODATE(CONCATENATE(LEFT(date,10)," ", "09:30:00")), как показано ниже:

2022-08-31_11-51-58.png

Описание формулы:

формулыинструкции
LEFT(date,10)Получение полей года, месяца и дня даты
CONCATENATE(LEFT(date,10)," ", "09:30:00")Вставьте дату + данные о позднем времени 9:30.Например, если текущая дата - 2022-05-05, то мы получим 2022-05-05 09:30:00
TODATE(CONCATENATE(LEFT(date,10)," ", "09:30:00"))Установите позднее время на тип даты

и используйте разницу во времени, если результат <0, то это поздно, как показано ниже:

Подробное описание нового столбца см. в разделе: Новый столбец - Разница во времени

2022-08-31_11-53-33.png

5) Сравнительная оценка времени посещения.

Отсутствие на работе оценивается, если продолжительность работы составляет менее шести часов;

Если время начала работы превышает 9:30, это считается опозданием, в остальных случаях - "полное присутствие".

После подсчета количества отработанных часов добавляется новый столбец для ввода формулы: ЕСЛИ (отработанные часы <6, "Абсентеизм", ЕСЛИ (опоздания <0, "Опоздания", "Полная посещаемость")), как показано ниже:

Подробное описание новых столбцов см. в разделе:Новые столбцы - Функции формул

2022-08-31_13-46-16.png

(6) Скрыть поля, которые нам не нужны После этого в настройках полей можно снять галочки, как показано на рисунке ниже:

Подробное описание настроек полей см. в разделе: Настройки****полей

2022-08-31_13-52-25.png

7) Сохраните и обновите таблицу.

2.2 Агрегирование данных о посещаемости

На этом этапе необходимо объединить данные пользователей, которые взяли отпуск, и тех, кто его не брал.

1) Добавьте данные в тему анализа: таблица "Punching Information Table" в локальном проекте переименована в таблицу "Attendance Summary".

2) Отфильтруйте все данные об отпусках (обратите внимание, что данные о праздничных днях и переносах не выбираются), как показано ниже:

Примечание: Поскольку учитываются данные только по дням недели, данные по праздничным дням и переносам здесь не выбираются.

1661926736175257.png

3) Добавьте групповую сводку и задайте те же условия, что и для "Данных о посещаемости (без отпусков)", как показано ниже:

Примечание: Это необходимо для подготовки к консолидации данных в разделе 2.1.

2022-08-31_14-17-54.png

4) Объедините данные по отпускам и данные по нормальным часам в разделе 2.1 в одну таблицу. Выполните объединение сверху и снизу, как показано ниже:

Подробное описание слияния вверх/вниз см. в разделе: Основные функции слияния вверх/вниз.

2022-08-31_14-16-24.png

3. консолидация данных по имени, полу и т.д.

Мы закончили организовывать данные о посещаемости, и теперь хотим добавить основную информацию, такую как имя сотрудника, возраст, пол и т. д., которая находится в "Форме информации о персонале" в информации о часах.

Поэтому нам нужно использовать функцию слияния слева и справа, чтобы объединить данные двух таблиц данных через поле "Номер работы". Поскольку мы хотим сохранить все данные таблицы "Информация о перфокартах", мы выбираем слияние слева, как показано на следующем рисунке:

Подробное описание слияния слева и справа см. в разделе: Основы слияния слева исправа

2022-08-31_14-25-13.png

4. Расчет рабочего времени и возраста

Если у вас есть только время работы по часам, но вы хотите знать количество часов, отработанных каждым сотрудником, вам нужно продолжать использовать набор данных для обработки данных.

(1) Используйте функцию DATESUBDATE для расчета разницы во времени между "самым поздним временем" и "самым ранним временем", введите формулу: DATESUBDATE (самое позднее время, самое раннее время, "m")/60, как показано ниже:

Примечание: Поле времени требует выбора поля в таблице данных, вручную ввести текст нельзя.

2022-08-31_14-27-17.png

Если вы используете данные в режиме реального времени, вы можете использовать новый столбец "Разница во времени" для расчета рабочего времени, как показано на следующем рисунке:

2022-08-31_14-28-56.png

(2) После объединения данных мы знаем идентификационный номер сотрудника, мы можем рассчитать и получить возраст сотрудника, используя формулу: YEAR () - TOINTEGER(MID (ID number, 7,4)), как показано ниже:

Примечание: Идентификационный номер должен быть выбран из поля в таблице данных и не может быть введен вручную в виде текста.

2022-08-31_14-30-47.png

На этом обработка наших данных завершена, конечно, вы можете воспользоваться настройками поля, чтобы отменить использование промежуточных полей, которые не нужно использовать