2017-02-15 4 views
0

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

Как долго работник работает: менее чем за год = 0 часов, 1-3 лет = 40 часов, 3-х лет 80 часов

Затем на еженедельной оплаты график на основе сегодняшнего дня по сравнению с текущей неделей дата показывает колонок 1 - сколько часов работник начислила колонка 2 - сколько принята на этой неделе колонка 3 - сколько часов остаются

И кикер, когда Я открываю excel, я не хочу, чтобы он повторял какие-либо номера предыдущих недель.

Вот текущий код, который у меня есть. J3 - это дата найма, A9 начало недели, C9 конец недели, E8 Исходный отпуск. В I8 используются часы, M8 - окончательный баланс.

=IF(TODAY()<C9,E9,IF(AND(DATE(,MONTH($A9),DAY($A9))<=DATE(,MONTH($J$3),DAY($J$3)),DATE(,MONTH($C9),DAY($C9))>=DATE(,MONTH($J$3),DAY($J$3))),IF(TODAY()>DATE(YEAR($J$3)+3,MONTH($J$3),DAY($J$3)),80,IF(TODAY()>DATE(YEAR($J$3)+1,MONTH($J$3),DAY($J$3)),40,0)),E8)) 

Можно делать все, что мне нужно, не с поддержкой макросов

+0

показать наглядный пример записей и результатов. Также объясните свой «кикер» больше. – MacroMarc

+0

Чтобы ответить на ваш вопрос: Да, это возможно. Если вам нужна помощь, я предлагаю предоставить примеры ввода данных, желаемого результата и проблемы с вашим формульным подходом. Может оказаться полезной тема справки [Как создать минимальный, завершенный и проверяемый пример] (http://stackoverflow.com/help/mcve). –

+0

Есть ли способ приложить книгу или она должна быть внешней ссылкой? Кикер: в большинстве формул используется функция Today(), поэтому каждый раз, когда книги открывают, он переваривает данные.Мне нужно, чтобы он не стирал предыдущие начисления и балансы и не исправлял их, а делал только текущую неделю. – Hareborn

ответ

0

Я не вижу никаких причин, вам нужно функцию TODAY для расчета начисленного время отпуска. Если я вас правильно понял, в конце 1 года

  • : Начислено = 0 часов
  • конец 2 года: Начисленные = 40 часов
  • конец 3 года: Начисленные = 80 часов
  • конец 4 года: Накопленные = 160 часов
  • конец 5 года: Накопленные = 240 часов

т.д.

Мое предложение:

Настройте таблицу, как показано ниже; NAME если Vacation_Table Обратите внимание на формулу в B5 в случае, если вы должны изменить столбец 1 точек разрыва, или любой из других параметров: (я ставлю это на другом листе, но вы можете поместить его в любом месте

enter image description here

. Затем использовать эту формулу для расчета отпуска часов начислена от hire date до start of the week date на (Change A9 С9, если вы хотите часы начислена в конце недели).

=VLOOKUP(DATEDIF($J$3,A9,"y"),Vacation_Table,2)+ (DATEDIF($J$3,A9,"y")-VLOOKUP(DATEDIF($J$3,A9,"y"),Vacation_Table,1))*VLOOKUP(DATEDIF($J$3,A9,"y"),Vacation_Table,3) 

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

+0

. Я так застрял в попытке использовать Today() что я не видел работу вокруг, спасибо, что указал мне в другом направлении. – Hareborn