
- •4. Функции рабочего листа
- •4.1. Функция суммирования
- •4.2. Арифметические функции
- •4.3. Функции округления
- •4.4. Степенные функции
- •4.5. Тригонометрические функции
- •4.6. Текстовые функции
- •4.7. Логические функции
- •4.8. Функции выбора и поиска
- •Условие 1
- •4.9. Сводные функции
- •4.10. Функции обработки дат
- •4.11. Финансовые функции
- •4.12. Информационные функции
- •4.13. Ошибочные значения
- •4.14. Функции анализа ошибок
- •4.15. Работа с массивами
- •4.16. Матричные функции
- •То можно обеспечить правильное сложение данных и при вставках новых строк в любом месте диапазона суммирования. Или конкретно для нашего случая
- •4.17. Функция преобразования мер
- •4.18. Примеры “из жизни”
- •4.19. Задачи для
4.10. Функции обработки дат
ДАТА(<год>;<месяц>;<день>) – возвращает дату из отдельных ее компонент, полученных, возможно, в результате вычислений.
Пример: ДАТА(98;10;03)=03.10.98
СЕГОДНЯ() – возвращает текущую системную дату компьютера.
ДЕНЬНЕД(<дата>;<начало отсчета дней в неделе>) – возвращает номер дня недели из <даты>. Параметр <начало отсчета> задает номер первого дня в неделе и может принимать значения:
1 - нумерация дней от 1 (Воскресение) до 7 (Суббота),
2 - нумерация от 1 (Понедельник) до 7 (Воскресение),
3 - нумерация от 0 (Понедельник) до 6 (Воскресение).
Для нас, конечно, удобно значение 2.
Пример: ДЕНЬНЕД(B8;2),
ДЕНЬНЕД("8.5.2001";2) =2 (вторник).
ГОД(<дата>) – возвращает год <даты> в форме числа.
Пример: ГОД("10.01.99") =1999.
МЕСЯЦ(<дата>) – возвращает номер месяца <даты> в форме числа.
Пример: МЕСЯЦ("10.01.99") =1.
НОМНЕДЕЛИ(<дата>;1) – возвращает номер недели с начала года, на которую приходится заданная <дата>.
Пример: НОМНЕДЕЛИ("13.8.99";1) =33-я неделя.
ДЕНЬ(<дата>) – возвращает день <даты> в форме числа.
Примеры: ДЕНЬ("10.01.99") =10.
Найти число первого дня месяца в дате, содержащейся в клетке А1 (для 25.01.99 будет получено)
А1-ДЕНЬ(A1)+1 =1.01.99.
ДАТАЗНАЧ(<текст>) – преобразует текстовую форму даты в числовую.
Пример: ДАТАЗНАЧ("24.12.97")=336518 или 24.12.97
– одна и та же дата может быть отображена в числовом формате и в формате даты.
РАБДЕНЬ(<начальная дата>;<число дней>[;<праздники>])
– возвращает дату, которая отстоит на заданное число <рабочих дней> от <начальной даты>. Если в определяемый период могут попасть праздники, их можно перечислить как аргументы функции.
Пример: РАБДЕНЬ("01.Сен.98"; 80; "07.Ноя.98")
– функция вычисляет дату, отстоящую на 80 рабочих дней от 1 сентября 1998г. с учетом праздника 7 ноября.
В число рабочих дней функция включает и день начальной даты, так РАБДЕНЬ("01.Сен.99";1) = 01.Сен.99".
ЧИСТРАБДНИ(<начальная дата>;<конечная дата>[;<праздники>])
– используется для вычисления количества рабочих дней в диапазоне от <начальной> до <конечной даты>.
Пример: ЧИСТРАБДНИ("01.03.98";"12.06.98";"01.05.98")
– функция выдает число рабочих дней от 1 марта 1998г. до 12 июня 1998г.с учетом праздника 1 мая.
Функция возвращает число рабочих дней, включая начальную и конечную даты. Если это одна и та же дата, результат – единица.
ЧИСТРАБДНИ("01.09.99";"01.09.99") =1.
Пример: Найти число рабочих дней в месяце. Пусть, для определенности, это май 1998г. Начальная дата любого месяца очевидна. Конечную удобно найти с помощью функции ДАТАМЕС(). С учетом двух праздничных дней (1 и 2 мая) можем записать
=ЧИСТРАБДНИ("1.5.98";ДАТАМЕС("1.5.98";1);{"1.5.98";"2.5.98"})
Праздничная дата может быть прямо задана в кавычках или указана ссылкой на клетку. Если таких дат несколько, они берутся в фигурные скобки, как показано выше.
Замечание. Если организация не придерживается типичного графика с выходными в субботу и воскресение, то формула для расчета числа рабочих дней будет достаточно громоздкой – в раздел <праздники> придется включить слишком много дат. В виду этого может оказаться удобнее создать справочную таблицу с перечислением всех рабочих (либо, наоборот, нерабочих) дней предприятия, откуда будут черпаться сведения о числе рабочих дней между интересующими датами. Такой пример будет рассмотрен позже.
КОНМЕСЯЦА(<начальная дата>;<число месяцев>)
– возвращает дату последнего дня месяца, отстоящего на указанное <число месяцев> от <начальной даты>. Функция используется для вычисления даты вступления в силу договора или даты платежа, которая приходится на конец месяца. Параметр <число месяцев> может быть отрицательным. В этом случае отсчет ведется назад.
Примеры: КОНМЕСЯЦА("18.09.97";5)=28.02.98,
КОНМЕСЯЦА("18.09.97";-5)=30.04.97.
ДАТАМЕС(<начальная дата>;<число месяцев>) – возвращает в числовом виде дату, отстоящую на указанное <число месяцев> от <начальной даты>. Функция используется для вычисления даты вступления в силу договора или даты платежа, которая приходится на конец месяца. Параметр <число месяцев> может быть отрицательным. В этом случае отсчет ведется назад.
Примеры: ДАТАМЕС("18.09.97";-5) = 35538,
Чтобы представить дату в привычном виде используйте формат Дата
ДАТАМЕС("18.09.97";-5) = 18.04.97,
ДАТАМЕС("18.09.97";5) = 18.02.98.
Если дня с таким числом в новом месяце нет, возвращается последний день этого месяца
ДАТАМЕС("30.01.97";1) = 28.02.97.
Здесь, в виду того, что в феврале нет 30-го числа, функция возвращает последний существующий день февраля.
Дата, отстоящая от сегодняшней на 8 месяцев
ДАТАМЕС(СЕГОДНЯ();8).
ТДАТА() – возвращает текущую системную дату и время.
Пример. ТДАТА() =2.12.99 15:06.
ДОЛЯГОДА(<начальная дата>;<конечная дата>;1) – вычисляет число лет, прошедших между <конечной> и <начальной> датами. Дробная часть <дат> отбрасывается, т.е. время при дате (если есть) в вычислениях не участвует.
Пример: Положим А1=01.06.56 и А2=01.12.98, тогда
ДОЛЯГОДА(А1;А2;1) равняется 42,5 года.
Функцию можно использовать, например, для определения числа полных лет рабочего стажа (если отбросить дробную часть результата). Если требуется вычислить точное число месяцев стажа, нужно прибегнуть к более сложной технологии.
Пример. Показать сотрудников организации, чей день рождения сегодня (сегодняшняя дата находится в клетке В1, дата рождения – в Е4). Для выявления этого фактора следует, игнорируя год, выделить из обеих дат месяц и день и сравнить их между собой. Если эти параметры совпадают, выдается сообщение Сегодня день рождения, если нет – никакого сообщения (формируется пустая строка состоящая только из двойных ограничивающих кавычек).
=ЕСЛИ(ТЕКСТ(B1;"ДД.ММ")=ТЕКСТ(Е4;"ДД.ММ");
"Сегодня день рождения";"").
Здесь используется функция преобразования даты в текстовую форму с включением только дня и месяца (ТЕКСТ(…; "ДД.ММ")). Положим, В1=10.16.80, а Е4=10.16.99. Тогда наша функция проделает следующие вычисления
=ЕСЛИ(ТЕКСТ("10.16.1980";"ДД.ММ")=
ТЕКСТ("10.16.1999";"ДД.ММ");"Сегодня день рождения";"")
или =ЕСЛИ("10.16"="10.16;"Сегодня день рождения";"").
Здесь результатом явится выражение "Сегодня день рождения".
Пример. Установить количество дней, прошедших с начала года. Здесь следует от текущей даты (клетка В1) отнять последнюю дату (т.е. 31 декабря) предыдущего года. Для этого из текущей даты выделяется текущий год, из которого отнимается 1 год (ГОД(В1)-1). Далее результат превращается в текст в формате “0000” (например, “1998”) и присоединяется к последнему дню года “31.12”. Полученный текст снова превращается в формат даты (31.12.1998) и вычитается из текущей даты.
=B1-ДАТАЗНАЧ("31.12."&ТЕКСТ(ГОД(B1)-1;"0000")).
Положим, В1=25.6.1999.
Тогда (выполним последовательные преобразования данных)
=25.6.1999-ДАТАЗНАЧ("31.12."&ТЕКСТ(ГОД(25.6.1999)-1;"0000")),
=25.6.1999-ДАТАЗНАЧ("31.12."&ТЕКСТ(1998;"0000")),
=25.6.1999-ДАТАЗНАЧ("31.12.1998"),
=25.6.1999-31.12.1998=176 дней.