Найти в Дзене

📌 Как сделать в Excel: определение стажа работы с учетом полных лет и месяцев (Пример решения)

Оглавление

Определение стажа работы с учетом полных лет и месяцев является важной задачей для кадровых служб и бухгалтерии.

Функция РАЗНДАТ позволяет вычислить разницу между двумя датами с точностью до дней, месяцев или лет.

Но, зачастую, помимо численного значения требуется отобразить текстовую строку содержащую полное количества лет (месяцев) между датами, например 2 года и 5 месяцев.

⏩ Как реализовать логику расчета стажа работы с учетом полных лет и месяцев между датами и отобразить результат в виде текстовой строки подробно рассмотрено в обзоре 😉.

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

📢 Файл с примером размещен в конце статьи 🔽

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

▶️ Чтобы определить число лет (месяцев) между датами в Excel, используют функцию РАЗНДАТ

Благодаря своей гибкости, РАЗНДАТ широко применяется в бухгалтерии, планировании и управлении проектами, анализе временных интервалов в различных проектах или при ведении статистики.

РАЗНДАТ принимает три аргумента: начальную дату, конечную дату и единицу измерения (например, "Y" для лет, "M" для месяцев, "D" для дней).

🔔 Автоматизировать процесс расчета с учетом верных окончаний можно используя логику ЕСЛИ, но гораздо проще воспользоваться пользовательской функцией.

▶️ Лет между датами

Корректное использование DateDiff и логика проверки текущего года позволяют точно определять количество полных лет, прошедших между двумя датами.

Функция возвращает целое число, представляющее количество полных лет, прошедших между двумя датами.
- As Date: дата начала периода, с которого начинается расчет. 
- As Date: дата окончания периода, на которую выполняется расчет.
- DateDiff определяет разницу в годах между двумя датами.
Функция возвращает целое число, представляющее количество полных лет, прошедших между двумя датами. - As Date: дата начала периода, с которого начинается расчет. - As Date: дата окончания периода, на которую выполняется расчет. - DateDiff определяет разницу в годах между двумя датами.

Коррекция количества лет:

  • проверка, достигнута ли дата начала в текущем году окончания выполняется с помощью DateSerial, которая создает дату на основе года окончания, месяца и дня начала.
Если дата окончания меньше созданной даты, значит, полное количество лет еще не прошло, и результат уменьшается на 1:
Определение количества лет между датами
Пример: если Дата Окончания - "10.02.2025", а Дата Начала - "01.01.2022", то т.к. дата окончания не наступила, количество лет уменьшается на 1, давая правильный результат = 3:
Определение количества лет между датами Пример: если Дата Окончания - "10.02.2025", а Дата Начала - "01.01.2022", то т.к. дата окончания не наступила, количество лет уменьшается на 1, давая правильный результат = 3:

▶️ Число месяцев

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

Функция принимает две даты в качестве входных параметров и возвращает строку, содержащую количество полных месяцев, прошедших между этими датами:

Определение количества полных месяцев
Определение количества полных месяцев

▶️ Учет окончания

Для того чтобы учесть разницу в окончаниях можем воспользоваться следующей таблицей для определения логики:
Определение логики окончаний лет-год-года
Определение логики окончаний лет-год-года

📝 Примечание автора: * Аналогичный подход применим для окончаний месяц(а,-ев)

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

▶️ Формирование окончаний для полных лет

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

number (As Long): число, для которого необходимо определить правильное окончание.

➡️ Проверка условий ЕСЛИ:

  • number=1 или оканчивается на 1 (кроме 11), используется окончание "год".
  • number от 2 до 4 или оканчивается на 2, 3 или 4 (кроме 12, 13, 14), используется окончание "года".
  • во всех остальных случаях используется окончание "лет".
Формирование окончания для полных лет
Формирование окончания для полных лет

Для формирования строки, содержащей количество полных лет между двумя датами с правильным окончанием будем использовать ранее определенные функции КоличествоЛет и ГодОкончание:

Формирование строки содержащей количество полных лет между двумя датами с правильным окончанием слова "год".
* years - количество лет
Формирование строки содержащей количество полных лет между двумя датами с правильным окончанием слова "год". * years - количество лет

➡️ Формирование строки с правильным окончанием

  • если переменная years равна 0, возвращается пустая строка;
  • иначе, формируется строка, содержащая количество лет и правильное окончание:
Формирование строки с правильным окончанием "год-года-лет"
Формирование строки с правильным окончанием "год-года-лет"

▶️ Формирование окончаний для полных месяцев

Аналогично рассмотренному выше подходу создадим функцию для выбора правильного окончания месяца в зависимости от числа:

Функция принимает число в качестве входного параметра и возвращает строку, содержащую одно из трех окончаний: "месяц", "месяца" или "месяцев".
Функция принимает число в качестве входного параметра и возвращает строку, содержащую одно из трех окончаний: "месяц", "месяца" или "месяцев".

➡️ Проверка условий ЕСЛИ:

  • number=1 или оканчивается на 1 (кроме 11), используется окончание "месяц";
  • number от 2 до 4 или оканчивается на 2, 3 или 4 (кроме 12, 13, 14), используется окончание "месяца";
  • во всех остальных случаях используется окончание "месяцев":
Пример формирование окончания для полных месяцев
Пример формирование окончания для полных месяцев

Для формирования строки, содержащей количество полных месяцев между двумя датами с правильным окончанием будем использовать ранее определенные функции Месяцев и МесяцОкончание:

Функция возвращает строку, содержащую количество полных месяцев между двумя датами с правильным окончанием слова "месяц". 
* months - количество месяцев
Функция возвращает строку, содержащую количество полных месяцев между двумя датами с правильным окончанием слова "месяц". * months - количество месяцев

➡️ Формирование строки с правильным окончанием

  • если переменная months равна 0, возвращается пустая строка;
  • иначе, формируется строка, содержащая количество месяцев и правильное окончание:
Формирование строки с правильным окончанием "месяц-месяца-месяцев"
Формирование строки с правильным окончанием "месяц-месяца-месяцев"

▶️ Стаж работы с учетом полных лет и месяцев

Объединив вычисления в одну пользовательскую функцию получим результат в виде текстовой строки:

Пользовательская функция для определения стажа работы с учетом полных лет и месяцев
Вычисление строк с количеством лет и месяцев: 
- функция РазницаЛет используется для вычисления строки с количеством полных лет и правильным окончанием слова "год".
- функция ЧислоМесяцев используется для вычисления строки с количеством месяцев и правильным окончанием слова "месяц".
Пользовательская функция для определения стажа работы с учетом полных лет и месяцев Вычисление строк с количеством лет и месяцев: - функция РазницаЛет используется для вычисления строки с количеством полных лет и правильным окончанием слова "год". - функция ЧислоМесяцев используется для вычисления строки с количеством месяцев и правильным окончанием слова "месяц".

Обе строки объединяются с помощью функции Trim для удаления лишних пробелов:

Стаж работы с учетом полных лет и месяцев
Стаж работы с учетом полных лет и месяцев

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

Подписывайтесь на канал, чтобы не пропустить новые уроки и полезные фишки Excel
Подписывайтесь на канал, чтобы не пропустить новые уроки и полезные фишки Excel

🔶 Узнать больше о пользовательских функциях и функциях работы с датами вы можете в наших предыдущих обзорах:

Excel для начинающих: Управление датами. Полное руководство
Пользовательские функции VBA Excel | Excel на ИЗИ: ✅ Приемы эффективной работы в Microsoft Excel | Дзен

🙌 Оставайся с нами на связи и не забывайте проявлять активность, так вы благодарите автора за предоставленный материал:

Excel на ИЗИ — полная коллекция видео на RUTUBE
It's Moskovskaya_Excel на ИЗИ
-20
Excel на ИЗИ

СКАЧАТЬ ПРИМЕР 🔽

Если вы нашли предоставленный материал полезным, будем благодарны за вашу поддержку
Если вы нашли предоставленный материал полезным, будем благодарны за вашу поддержку
Стаж работы (количество лет между датами).xlsm