Я пытаюсь написать логику, которая будет рассчитывать начисление отпуска, которое начинается после одного года службы. В 1 год сотрудники имеют право на 5 дней, в 2 года 10 дней, пока сотрудник не достигнет 7 лет, когда сотрудник имеет право на 15 дней плюс один дополнительный день в каждом годовом году, до тех пор, пока сотрудник не ограничится 12 годами 20 дней. Моя формула продолжает указывать слишком много аргументов.
1 ответ
Вы можете использовать VLOOKUP
.
В приведенной ниже формуле константа массива является эквивалентом таблицы с годами службы в столбце 1 и днями отпуска в столбце 2. Я также предположил, что у лет 2-6 также был 10-дневный отпуск, но если нет, вы можете увидеть, где изменить достаточно легко:
=VLOOKUP(YrsOfSvc,{1,5;2,10;3,10;4,10;5,10;6,10;7,15;8,16;9,17;10,18;11,19;12,20},2)
и YrsOfSvc
- это любая ячейка, в которой находится эта информация, или число.
Если на самом деле ваши накопленные дни не увеличиваются в течение 3-6 лет, вы можете немного сократить массив:
=VLOOKUP(YrsOfSvc,{1,5;2,10;7,15;8,16;9,17;10,18;11,19;12,20},2)
Если вы хотите сделать это путем расчета, вы можете использовать формулу ниже. Но если требуются изменения, это будет немного сложнее поддерживать: (A2 = YrsOfSvc
)
=MIN(20,IF(A2>=7,15+A2-7,IF(A2>=2,10,IF(A2=1,5,0))))