Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
95
Добавлен:
20.04.2015
Размер:
1.13 Mб
Скачать

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 дней.

Соседние файлы в папке EXCEL (Попов)