Табель формулы Excel - оператор IF - PullRequest
0 голосов
/ 09 мая 2018

Я создаю табель рабочего времени в Excel (см. Изображение для заголовков) Табель рабочего времени Excel

В столбце с заголовком Время + / - Я пытаюсь написать формулу для расчета того, что если отработанное время (рассчитанное по столбцу Время отработано AB) выше или ниже, округляет время до ближайшую минуту и ​​заберите 8 часов, так как это стандартный рабочий день.

Я придумал это

=IF(AA2>TIME(8,0,0),(ROUND($AA2*1440,0)/1440),IF(AA2<TIME(8,0,0),(ROUND($AA2*1440,0)/1440)))-TIME(8,0,0)

Формула делает то, что я хочу, но она не кажется правильной, есть предложения, как ее улучшить?

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Вы используете (ROUND ($ AA2 * 1440,0) / 1440) несколько раз в своей формуле. Вы можете рассчитать это один раз в отдельном столбце и просто обратиться к столбцу несколько раз в вашей формуле. Столбец может быть даже скрыт, поэтому он не добавляет шума в вашу таблицу. Можно также сделать это в макрофункции и просто вызвать макрофункцию из вашей формулы. Пример того, как это сделать, можно найти здесь: Как вызвать функцию VBA из ячеек Excel (2010)?

0 голосов
/ 09 мая 2018

Если используется система дат 1904, то должно работать следующее:

=-1/3+ROUND(AA2*1440,0)/1440

Это принимает разницу между ROUND(AA2*1440,0)/1440 (уже знакомым ОП) и 8 часами. Поскольку мы имеем дело с индексами даты / времени (где день равен 1), 8 часов можно выразить как 1/3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...