Определение стажа работы с учетом полных лет и месяцев является важной задачей для кадровых служб и бухгалтерии.
Функция РАЗНДАТ позволяет вычислить разницу между двумя датами с точностью до дней, месяцев или лет.
Но, зачастую, помимо численного значения требуется отобразить текстовую строку содержащую полное количества лет (месяцев) между датами, например 2 года и 5 месяцев.
⏩ Как реализовать логику расчета стажа работы с учетом полных лет и месяцев между датами и отобразить результат в виде текстовой строки подробно рассмотрено в обзоре 😉.
📢 Файл с примером размещен в конце статьи 🔽
▶️ Чтобы определить число лет (месяцев) между датами в Excel, используют функцию РАЗНДАТ
Благодаря своей гибкости, РАЗНДАТ широко применяется в бухгалтерии, планировании и управлении проектами, анализе временных интервалов в различных проектах или при ведении статистики.
РАЗНДАТ принимает три аргумента: начальную дату, конечную дату и единицу измерения (например, "Y" для лет, "M" для месяцев, "D" для дней).
🔔 Автоматизировать процесс расчета с учетом верных окончаний можно используя логику ЕСЛИ, но гораздо проще воспользоваться пользовательской функцией.
▶️ Лет между датами
Корректное использование DateDiff и логика проверки текущего года позволяют точно определять количество полных лет, прошедших между двумя датами.
Коррекция количества лет:
- проверка, достигнута ли дата начала в текущем году окончания выполняется с помощью DateSerial, которая создает дату на основе года окончания, месяца и дня начала.
Если дата окончания меньше созданной даты, значит, полное количество лет еще не прошло, и результат уменьшается на 1:
▶️ Число месяцев
Применив аналогичный подход определим число месяцев:
Функция принимает две даты в качестве входных параметров и возвращает строку, содержащую количество полных месяцев, прошедших между этими датами:
▶️ Учет окончания
Для того чтобы учесть разницу в окончаниях можем воспользоваться следующей таблицей для определения логики:
📝 Примечание автора: * Аналогичный подход применим для окончаний месяц(а,-ев)
Теперь, понимая логину формирования окончаний составим пользовательскую функцию, которая будет добавлять нужный префикс.
▶️ Формирование окончаний для полных лет
Функция принимает число в качестве входного параметра и возвращает строку, содержащую одно из трех окончаний: "год", "года" или "лет".
number (As Long): число, для которого необходимо определить правильное окончание.
➡️ Проверка условий ЕСЛИ:
- number=1 или оканчивается на 1 (кроме 11), используется окончание "год".
- number от 2 до 4 или оканчивается на 2, 3 или 4 (кроме 12, 13, 14), используется окончание "года".
- во всех остальных случаях используется окончание "лет".
Для формирования строки, содержащей количество полных лет между двумя датами с правильным окончанием будем использовать ранее определенные функции КоличествоЛет и ГодОкончание:
➡️ Формирование строки с правильным окончанием
- если переменная years равна 0, возвращается пустая строка;
- иначе, формируется строка, содержащая количество лет и правильное окончание:
▶️ Формирование окончаний для полных месяцев
Аналогично рассмотренному выше подходу создадим функцию для выбора правильного окончания месяца в зависимости от числа:
➡️ Проверка условий ЕСЛИ:
- number=1 или оканчивается на 1 (кроме 11), используется окончание "месяц";
- number от 2 до 4 или оканчивается на 2, 3 или 4 (кроме 12, 13, 14), используется окончание "месяца";
- во всех остальных случаях используется окончание "месяцев":
Для формирования строки, содержащей количество полных месяцев между двумя датами с правильным окончанием будем использовать ранее определенные функции Месяцев и МесяцОкончание:
➡️ Формирование строки с правильным окончанием
- если переменная months равна 0, возвращается пустая строка;
- иначе, формируется строка, содержащая количество месяцев и правильное окончание:
▶️ Стаж работы с учетом полных лет и месяцев
Объединив вычисления в одну пользовательскую функцию получим результат в виде текстовой строки:
Обе строки объединяются с помощью функции Trim для удаления лишних пробелов:
Таким образом, результат возвращает строку, содержащую количество полных лет и месяцев между двумя датами с правильными окончаниями.
🔶 Узнать больше о пользовательских функциях и функциях работы с датами вы можете в наших предыдущих обзорах:
🙌 Оставайся с нами на связи и не забывайте проявлять активность, так вы благодарите автора за предоставленный материал:
✅ СКАЧАТЬ ПРИМЕР 🔽