трюки • приёмы • решения
Расчет возраста человека — не самая простая задача, потому что возраст зависит не только от текущего года, но и от текущего дня. И еще вы должны учитывать дополнительные сложности, связанные с високосными годами.
В этой статье я представляю три метода для расчета возраста человека. Эти формулы предполагают, что ячейка В1 содержит дату рождения (например, 2/16/1952), а ячейка В2 хранит текущую дату (вычисленную с помощью функции СЕГОДНЯ).
Метод 1
Следующая формула вычитает дату рождения из текущей даты и делит на 365,25. Функция ЦЕЛОЕ затем устраняет десятичную часть результата: =ЦЕЛОЕ((B2-B1)/365,25) . Эта формула не на 100 % точная, поскольку деление в ней выполняется на среднее количество дней в году. Рассмотрим такой пример — ребенку ровно один год. Эта формула возвращает значение 0, а не 1. Подробнее вам расскажут на http://saint-petersburg.mir-repetitorov.ru.
Метод 2
Более точный способ расчета возраста использует функцию ДОЛЯГОДА: =ЦЕЛОЕ(ДОЛЯГОДА(B2;B1)) . Функция ДОЛЯГОДА обычно применяется в финансовых расчетах, но прекрасно работает и для подсчета возраста. Эта функция вычисляет долю года, представленную количеством полных дней между двумя датами. Использование функции ЦЕЛОЕ позволяет избавиться от дробной части и получить целое число.
Метод 3
Третий метод для расчета возраста задействует функцию РАЗНДАТ. Эта недокументированная функция не описана в справочной системе Excel: =РАЗНДАТ(B1;B2;"Y") .
Если вы любите точность, то используйте другую версию: =РАЗНДАТ(B1;B2;"y")&" года, "&РАЗНДАТ(B1;B2;"ym"&" месяца, "&РАЗНДАТ(B1;B2;"md")&" день") . Эта функция возвращает текстовую строку, например: 24 года, 2 месяца, 21 день.
Дата и время в Excel – это числа сформатированные специальным образом. Датой является целая часть числа, а время (часы и минуты) – это дробная часть.
По умолчанию число 1 соответствует дате 01 января 1900 года. То есть каждая дата – это количество дней прошедших от 01.01.1900. На данном уроке детально рассмотрим даты, а на следующих уроках – время.
Как в Excel посчитать дни между датами?
Так как дата является числом, значит можно проводить с ним математические вычислительные и расчетные операции. Посчитать количество дней между двумя датами Excel не составляет особых проблем. Для наглядного примера сначала выполним сложение, а потом вычитание дат. Для этого:
- На чистом листе в ячейку А1 введите текущею дату нажав CTRL+;.
- В ячейке A2 введите промежуточный период в днях, например 127.
- В ячейку A3 введите формулу:=A1+A2.
Обратите внимание, формат «Дата» автоматически присвоился для ячейки A3. Не сложно догадаться, чтобы посчитать разницу в датах в Excel нужно от новейшей даты отнять старшую дату. В ячейке B1 введите формулу:=A3-A1. Соответственно мы получаем количество дней между этими двумя датами.
Вычисление возраста по дате рождения в Excel
Теперь мы научимся вычислять возраст по дате рождения:
- На новый лист в ячейки A1:A3 введите даты: 18.04.1985; 17.08.1977; 08.12.1992
- В ячейки B1:B3 проставьте текущею дату.
- Теперь нужно воспользоваться функцией по преобразованию количества дней в количество лет. Для этого вручную введите в диапазон C1:C3 следующее значение: =РАЗНДАТ(A1;B1;"y").
Таким образом, применение функции позволило нам точно вычислить возраст по дате рождения в Excel.
Внимание! Чтобы перевести дни в года не достаточно формулы: =(B1-A1)/365. Более того даже если мы знаем что 1 сутки = 0,0027397260273973 года, то формула:=(B1-A1)*0,0027397260273973 так же не даст точного результата.
Дни в года наиболее точно преобразует функция:=РАЗНДАТ(). Английская версия =DATEDIF(). Вы не найдете ее в списке мастера функций (SHIFT+F3). Но если просто введете ее в строку формул, то она сработает.
Функция РАЗНДАТ поддерживает несколько параметров:
Параметр | Описание |
"d" | Количество полных дней |
"m" | Количество полных месяцев |
"y" | Количество полных лет |
"ym" | Количество полных месяцев без учета лет |
"md" | Количество дней без учета месяцев и лет |
"yd" | Количество дней без учета лет |
Проиллюстрируем пример использования нескольких параметров:
Внимание! Чтобы функция:=РАЗНДАТ() работала без ошибок, следите за тем, чтобы начальная дата была старше конечной даты.
Ввод даты в ячейку Excel
Целью данного урока является пример математических операций с датами. Так же, мы убедимся, что для Excel тип данных дата является числом.
Заполните таблицу датами, так как показано на рисунке:
Разные способы ввода дат. В столбце А – способ ввода, а в столбце B – результат отображения.
Обратите внимание, что в формате ячеек по умолчанию «Общий», даты также как и число выравниваются по правой стороне, а текст по левой. Значение в ячейке B4 распознается программой как текст.
В ячейке B7 Excel сам присвоил текущий год (сейчас 2015-ый) по умолчанию. Это видно при отображении содержимого ячеек в строке формул. Обратите внимание, как изначально вводилось значение в A7.
Вычисление даты Excel
На чистом листе в ячейки А1:B1 введите 01.01.1900, а в ячейках A2:B2 вводим 01.01.1901. Теперь меняем формат ячеек на «числовой» в выделенном диапазоне B1:B2. Для этого можно нажать комбинацию клавиш CTRL+SHIFT+1.
B1 теперь содержит число 1, а B2 – 367. То есть прошел один високосный год (366 дней) и 1 день.
Способ отображения даты можно задать с помощью диалогового окна «Формат ячеек». Для его вызова нажмите: CTRL+1. На закладке «Число» выберите в списке «Числовые форматы» — «Дата». В разделе «Тип» отображаются самые популярные форматы для отображения дат.
На следующем уроке мы на готовых примерах будем работать со временем и периодами суток.
Вычислить возраст человека непросто, так как результат зависит не только от текущего года, но и дня. Кроме того, необходимо учесть осложнения, возникающие из-за високосных годов. Мы рассмотрим три метода вычисления возраста человека (рис. 1). [1]
Рис. 1. Вычисление возраста человека
Скачать заметку в формате Word или pdf, примеры в формате Excel
Метод 1. Следующая формула вычитает дату рождения из текущей даты и делит результат на 365,25. Функция ЦЕЛОЕ отсекает дробную часть результата: =ЦЕЛОЕ((B2-B1)/365,25). Эта формула не точна на 100%, так как делителем является среднее количество дней в году. Допустим, есть ребенок, которому ровно 1 год. Для него эта формула вернет 0 в обычный год, и 1 – в високосный (рис. 2).
Рис. 2. Разность дат, деленная на 365,25 иногда дает осечку
Метод 2. Более точный метод подсчета возраста связан с использованием функции ДОЛЯГОДА: =ЦЕЛОЕ(ДОЛЯГОДА(B1;B2)). Как правило, функция ДОЛЯГОДА используется в финансовых расчетах, но подходит и для вычисления возраста. Эта функция рассчитывает долю года, соответствующую целому количеству дней между двумя датами. Функция ЦЕЛОЕ удаляет дробную часть результата и возвращает целое число, соответствующее количеству полных лет.
Метод 3. Данный метод вычисления возраста связан с использованием функции РАЗНДАТ: =РАЗНДАТ(В1:В2; " y " ). Это недокументированная функция, которой нет в списке функций, и она не появляется в подсказке, если начать набирать формулу =раз… Правда, ее описание есть в справке Excel.
Эта функция сохранена в Excel для обеспечения совместимости с Lotus 1-2-3. Функция рассчитывает разницу между двумя датами и выражает результат в месяцах, днях или годах. Синтаксис функции РАЗНДАТ(нач_дата;кон_дата;единица). Нач_дата и кон_дата — это стандартные даты (здесь также может стоять ссылка на ячейку, в которой содержится дата). Нач_дата должна быть меньше или равна кон_дата. Третий аргумент – единица – представляет собой текстовую строку, указывающую единицы времени, в которых будет выражен возвращаемый результат. Основные коды интервалов: m — количество полных месяцев, d — количество дней, у — количество полных лет. Аргумент единица может принимать и несколько других значений (подробнее см. справку).
Можно выразить возраст с точностью до дня: =РАЗНДАТ(B1;B2; " y " )& " лет " &РАЗНДАТ(B1;B2; " ym " )& " месяцев " &РАЗНДАТ(B1;B2; " md " )& " дней " . Правда, в связи с особенностями русского языка, иногда это будет выглядеть коряво.
[1] По материалам книги Джон Уокенбах. Excel 2013. Трюки и советы. – СПб.: Питер, 2014. – С. 126, 127.