- Подробности
-
Категория: 9. Функции в LibreOffice.Calc
-
Опубликовано 27.08.2011 12:30
-
Автор: Шитов В.Н.
-
Просмотров: 19756
Введение
По датам необходимо сделать несколько замечаний. По умолчанию даты отсчитываются с 30.12.1899 года. Это общепризнанный отсчет дат практически во всех аналогичных программах и изменять отсчет дат крайне не желательно. Если год указывается не в виде 4-значного года, а виде 2-значного, как это делают большинство людей, то программа автоматически добавляет к указанному году две цифры следующим образом: если года указываются от 30 до 99 (от 1930 до 1999 гг.), то к году добавляется 19. Если первые 2 цифры начинаются от 0 (или от 00) до 29, то к году добавляется 20 (от 2000 до 2029 гг.). Если это не так, и Вы хотите изменить эти значения присваивания двух первых цифр к 2-значному году, то выполните команду Сервис → Параметры. В открывшемся после этого окне откройте раздел LibreOffice.org → Общие. В счетчике Интерпретировать как года между измените существующие значения по умолчанию.
Если дата имеет целое значение, то речь идет именно о дате и ни о чем другом. Например, дата 18.06.2008 года имеет значение 39 617.
Если дата имеет дробную часть, то речь идет не только о дате, но и о времени. Например, значение 39 617,4 означает дату 18.06.2008 и время 09:36:00 в этой дате. Если Вы не понимаете, почему число вдруг превратилось в дату, то нажмите на кнопку Числовой формат (стандарт) на инструментальной панели Форматирование (). Если вместо даты выводится какое-то число, то выполните команду Формат → Ячейки, в открывшемся диалоговом окне Формат ячеек перейдите на вкладку Числа и выберите категорию Дата. Выберите нужный формат даты. Нажмите на кнопку ОК.
В качестве разделителя внутри даты желательно использовать точку (01.01.2011, 01.11, 01.2011), а не другие символы (01-01-2011, 01/01/2011), так как другие символы могут ошибочно трактоваться программой как символы математических операций.
В качестве разделителя времени используется двоеточие (20:15:49 или 20:15). Если секунды не указываются, то программа считает их нулями.
Если Вы не хотите трактовать дату или время как числовые значения, то есть не собираетесь использовать их в формулах, то можете заключить их в кавычки («01.01.2011», «20:41:16»).
DATE
Данная функция возвращает дату в числовом формате для заданной даты. Ее синтаксис следующий:
=DATE (год; месяц; день)
Где год — это число от 1583 до 9956 или от 0 до 99; месяц — это число, представляющее номер месяца в году. Если месяц больше 12, то это число прибавляется к первому месяцу указанного года; день — это число, представляющее номер дня в месяце. Если день больше числа дней в указанном месяце, то это число прибавляется к первому дню указанного месяца.
Отформатируйте ячейки в виде числового формата. Рассчитаем номер дня для 25 июня 2009 года:
=DATE (2009; 6; 25)
Ответ 39989.
Если месяц или день указаны в виде 0, то берется предыдущий месяц или число. Например, если задать аргументы в формуле:
=DATE (2009; 0; 25)
то ответ будет 25 декабря 2008 года (предыдущим месяцем является последний месяц прошлого года).
Если задать формулу с нулями месяца и дня:
=DATE (2009; 0; 0)
то ответ на первый взгляд будет странным: 30 ноября 2008 года. Хотя если проанализировать правила выдачи даты, то понимаешь, что LibreOffice.org Calc считает совершенно точно.
В Microsoft Excel аналог этой функции называется ДАТА.
DATEVALUE
Функция DATEVALUE возвращает числовой формат даты, представленной в виде текста. Функция DATEVALUE используется для преобразования даты из текстового представления в числовой формат. Синтаксис этой функции следующий:
=DATEVALUE (дата_как_текст)
Где дата_как_текст — любая дата между 1583 до 9956 или от 0 до 99 годами в любом разрешенном формате, указываемая в кавычках. Информация о дате в аргументе время_как_текст игнорируется.
Если в аргументе дата_как_текст опущен год, то DATEVALUE использует текущий год из встроенных часов компьютера. Информация о времени в аргументе дата_как_текст игнорируется.
Например:
=DATEVALUE ("01.07.2009")
будет возвращено 39995.
В Microsoft Excel аналог этой функции называется ДАТАЗНАЧ.
DAYS
Данная функция рассчитывает разность между двумя значениями дат. Результатом является число дней между двумя датами. Функция имеет следующий синтаксис:
=DAYS(дата_2; дата_1)
Где дата_1 — начальная дата, дата_2 — конечная дата. Если дата_2 более ранняя, чем дата_1, то результатом будет отрицательное число.
Примеры:
=DAYS("25.08.2009"; NOW())
возвращает 432 число дней с текущей даты по 25 августа 2009 г.
=DAYS("01.01.2001";"01.01.2000")
возвращает 366.
В Microsoft Excel аналога этой функции нет.
DAYS360
Функция DAYS360 возвращает количество дней между двумя датами на основе 360-дневного искусственного года (двенадцать 30-дневных месяцев). Синтаксис этой функции следующий:
=DAYS360 (нач_дата; кон_дата; метод)
Где нач_дата и кон_дата — это две даты, для которых требуется узнать количество дней между ними. Аргументы могут быть либо текстовыми строками, использующими числа для задания месяца, дня и года (например, "31.12.04" или "1-1-04"), либо датами в числовом формате. При составлении формулы следует помнить, что если нач_дата превосходит кон_дата, то DAYS360 возвращает отрицательное число; метод — это логическое значение, которое определяет, какой метод, Европейский или Американский, должен использоваться при вычислениях:
Метод
|
Определение
|
FALSE или опущено (или 0)
|
Американский метод (NASD). Если начальная дата является 31-м числом месяца, то она полагается равной 30-ому числу того же месяца. Если конечная дата является 31-м числом месяца и начальная дата меньше, чем 30-ое число, то конечная дата полагается равной 1-ому числу следующего месяца, в противном случае конечная дата полагается равной 30-ому числу того же месяца.
|
TRUE или 1
|
Европейский метод. Начальная и конечная даты, которые приходятся на 31-ое число месяца, полагаются равными 30-ому числу того же месяца.
|
Укажите в ячейке A1 дату 30.07.09. В ячейке A2 укажите дату 01.08.09. Тип будет 1, то есть Европейский.
Например, вычислим разницу между двумя датами:
=DAYS360 (A1;A2;1)
Несмотря на то, что фактически в июле 31 день, функция возвратит значение 1 день.
В Microsoft Excel аналог этой функции называется ДНЕЙ360.
EASTERSUNDAY
Возвращает дату католической пасхи для указанного года. Год представляет собой целое число в диапазоне от 1583 до 9956 или от 0 до 99. Другие праздничные даты можно вычислить, просто прибавив нужное число дней к этой дате. Функция не имеет аргументов:
=EASTERSUNDAY(Год)
Где Год — год, для которого выполняется расчет
Понедельник после Пасхи = EASTERSUNDAY(Год) + 1
Страстная пятница = EASTERSUNDAY(Год) – 2
Троицын день = EASTERSUNDAY(Год) + 49
Понедельник после Троицы = EASTERSUNDAY(Год) +50
Примеры
=EASTERSUNDAY(2008)
возвращает дату 23.03.08.
=EASTERSUNDAY(2009)+49
возвращает число 39964. При использовании формата дат ДД.ММ.ГГ результат представлен в виде 31.05.09.
В Microsoft Excel аналога этой функции нет.
EDATE
Функция EDATE возвращает дату в числовом формате, отстоящую на заданное количество месяцев вперед или назад от нач_дата. Эта функция имеет следующий синтаксис:
=EDATE (нач_дата; число_месяцев)
Где нач_дата — это дата в числовом формате, соответствующая начальной дате; число_месяцев — это количество месяцев до или после даты нач_дата. Положительное значение аргумента число_месяцев означает будущие даты; отрицательное значение означает прошедшие даты.
Например, составим формулы:
=EDATE ("01.07.04"; 4)
=EDATE ("01.07.04"; -4)
Ответом будут значения 38292 (01.11.2004) и 38047 (01.03.2004) соответственно.
В Microsoft Excel аналог этой функции называется ДАТАМЕС.
EOMONTH
Функция EOMONTH возвращает числовой формат последнего дня месяца, отстоящего на указанное количество месяцев от даты нач_дата. Эти функции имеют следующий синтаксис:
=EOMONTH (нач_дата; число_месяцев)
Где нач_дата — это дата в числовом формате, соответствующая начальной дате; число_месяцев — это количество месяцев до или после даты нач_дата. Положительное значение аргумента число_месяцев означает будущие даты; отрицательное значение означает прошедшие даты.
Например, составим формулы:
=EOMONTH ("01.07.04"; 4)
=EOMONTH ("01.07.04"; -4)
Ответом будут значения 38321 и 38077 соответственно.
В Microsoft Excel аналог этой функции называется КОНМЕСЯЦА.
HOUR, MINUTE, SECOND
Функции HOUR, MINUTE, SECOND возвращают час, минуты и секунды соответствующие заданной дате в числовом формате. Час определяется как целое в интервале от 0 (12:00 AM) до 23 (11:00 PM).
Синтаксис этих функций следующий:
=HOUR (дата_в_числовом_формате)
=MINUTE (дата_в_числовом_формате)
=SECOND (дата_в_числовом_формате)
Где дата_в_числовом_формате — это код дата-время, используемый в LibreOffice.org Calc для вычислений с датами и периодами времени. Можно задать аргумент дата_в_числовом_формате как текст, например "16:48:00" или "4:48:00 PM", а не как число. Текст автоматически преобразуется в дату в числовом формате.
При задании ошибочного имени MINUTE или SECOND выдается сообщение об ошибке. Для числового значения времени 0,608159722222 функции HOUR, MINUTE, SECOND:
=HOUR (0,608159722222)
=MINUTE (0,608159722222)
=SECOND (0,608159722222)
вернут 14 часов 35 минут 45 секунд
Для номера дня 38163,35678 функции HOUR, MINUTE, СЕКУНДЫ:
=HOUR (38163,35678)
=MINUTE (38163,35678)
=SECOND (38163,35678)
вернут 8 часов 33 минуты 46 секунд.
То есть все равно, в каком виде задается аргумент — как номер дня или числовое значение времени — функции все равно считают часы, минуты и секунды.
В Microsoft Excel аналоги этих функций называются ЧАС, МИНУТЫ, СЕКУНДЫ.
NETWORKDAYS
Функция NETWORKDAYS возвращает количество рабочих дней между нач_дата и кон_дата. Рабочими днями считаются дни за исключением выходных и праздничных дней. Функция NETWORKDAYS для вычисления оплаты работника на основе количества дней, отработанных в указанный период. Эти функции имеют следующий синтаксис:
=NETWORKDAYS (нач_дата; кон_дата; праздники)
Где нач_дата — это начальная дата в числовом формате; кон_дата — это дата в числовом формате, которая представляет конечную дату; количество_дней — это количество не выходных и не праздничных дней до или после нач_дата, положительное значение аргумента количество_дней означает будущую дату, а отрицательное значение — означает прошедшую дату; праздники — это необязательный массив из одной или нескольких дат в числовом формате, которые требуется исключить из рабочего календаря, например государственные праздники. В ячейке A1 укажите 01.01.09. В ячейке A2 укажите 31.12.09. Для составления праздников заполним ячейки, где в столбце А (ячейки с А3 по А19) будут наименования праздников, а в столбце В (ячейки с В3 по В19) даты праздников:
Новый год
|
01.01.09
|
Продолжение Нового года
|
02.01.09
|
Продолжение Нового года
|
03.01.09
|
Продолжение Нового года
|
04.01.09
|
Новый год продолжается
|
05.01.09
|
Продолжаем встречать Новый год
|
06.01.09
|
Рождество Христово
|
07.01.09
|
Продолжение Нового года
|
08.01.09
|
Продолжение Нового года
|
09.01.09
|
Продолжение Нового года
|
10.01.09
|
День Защитника Родины
|
23.02.09
|
Международный Женский день
|
08.03.09
|
Международный день солидарности
|
01.05.09
|
Продолжение Дня солидарности
|
02.05.09
|
День Великой Победы
|
09.05.09
|
День России
|
12.06.09
|
День освобождения Кремля
|
04.11.09
|
Например, составим формулу:
=NETWORKDAYS (A1;A2; B3:B19)
возвратит число рабочих дней: 250.
В Microsoft Excel аналог этой функции называется ЧИСТРАБДНИ.
NOW
Функция NOW возвращает текущую дату и время в числовом формате. Ее синтаксис следующий:
=NOW ()
Функция NOW аргументов не имеет, так как берет аргументы из системной даты.
В Microsoft Excel аналог этой функции называется ТДАТА.
TIME
Функция TIME возвращает дату в числовом формате для заданного времени. Дата в числовом формате, возвращаемая функцией TIME — это десятичная дробь в интервале от 0 до 0,99999999, представляющая время от 0:00:00 (12:00:00 ночи) до 23:59:59 (11:59:59 вечера). Синтаксис этой функции следующий:
=TIME (часы; минуты; секунды)
Где часы — это целое число от 0 до 23, представляющее час; минуты — это целое число от 0 до 59, представляющее минуту; секунды — это целое число от 0 до 59, представляющее секунду.
Например:
=TIME (16; 35; 00)
Если ввод секунд не предусмотрен, то их можно не указывать, но в этом случае точка с запятой после минут обязательна:
=TIME (16; 35;)
В Microsoft Excel аналог этой функции называется ВРЕМЯ.
TIMEVALUE
Функция TIMEVALUE возвращает числовой формат для времени, представленного аргументом время_как_текст. Время в числовом формате — это десятичная дробь в интервале от 0 до 0,99999999, представляющая время от 0:00:00 (12:00:00 ночи) до 23:59:59 (11:59:59 вечера). Функция TIMEVALUE используется для преобразования времени, представленного в виде текста, в числовой формат времени. Синтаксис этой функции следующий:
=TIMEVALUE (время_как_текст)
Где время_как_текст — это текстовая строка, содержащая время в любом допустимом формате.
Например:
=TIMEVALUE ("15:45")
будет возвращено 0,65625.
В Microsoft Excel аналог этой функции называется ВРЕМЗНАЧ.
TODAY
Возвращает текущую дату в числовом формате. Числовой формат даты — это код дата-время, используемый в LibreOffice.org Calc для вычислений с датами и периодами времени. Синтаксис этой функции имеет вид:
=TODAY ()
Аргументов функция не имеет. Аргументы для определения текущей даты функция берет из системной даты. В Microsoft Excel аналог этой функции называется СЕГОДНЯ().
WEEKDAY
Данная функция возвращает день недели для данного значения даты. Значение возвращается в виде целого числа от 1 (воскресенье) до 7 (суббота), если тип не указан или определен тип = 1. Если определен тип =2, отсчет начинается с понедельника=1; а если тип =3, отсчет начинается с понедельника=0).
Данная функция имеет следующий синтаксис:
=WEEKDAY(число; тип)
Аргумент число в качестве значения даты является десятичным представлением, для которого должен быть возвращен номер дня недели. Аргумент тип определяет тип вычислений. Если тип =1, отсчет дней недели начинается с воскресенья (этот отсчет используется по умолчанию, даже если аргумент "тип" опущен). Если тип =2, отсчет дней недели начинается с понедельника и 1 (понедельник = 1); а если тип =3, отсчет начинается с понедельника и с 0 (понедельник = 0). Эти значения применяются только к стандартному формату даты, который выбирается на странице Сервис → Параметры → LibreOffice.org Calc → Вычисления.
Примеры:
Команда WEEKDAY("14.6.2000") возвращает 4 (аргумент "тип" опущен, поэтому используется стандартный отсчет. Стандартный отсчет начинается с воскресенья — это день номер 1. 14 июня 2000 года была среда, то есть день номер 4).
Команда WEEKDAY("24.7.1996";2) возвращает 3 (аргумент тип = 2, следовательно, день номер 1 — понедельник. 24 июля 1996 была среда, то есть день номер 3).
Команда WEEKDAY("24.7.1996";1) возвращает 4 (аргумент тип = 1, следовательно, день номер 1 — воскресенье. 24 июля 1996 была среда, то есть день номер 4).
Команда WEEKDAY(NOW()) возвращает номер дня недели для текущей даты.
Чтобы получить функцию, которая определяет, является ли день в ячейке A1 рабочим днем, используйте функции IF и WEEKDAY следующим образом: IF(WEEKDAY(A1;2)<6;"Рабочий день";"Выходной").
В Microsoft Excel аналог этой функции называется ДЕНЬНЕД.
WEEKNUM
Функция WEEKNUM определяет номер недели в году для системного значения даты. По международному стандарту ISO 8601 первым днем недели считается понедельник. Неделя, часть которой приходится на один год, а часть — на другой, считается принадлежащей тому году, на который приходится больше дней этой недели. Это означает, что первой неделей любого года является неделя, в которую входит 4-е января. Синтаксис этой функции имеет вид:
WEEKNUM(число; режим)
Где число — берется из системной даты; режим — определяет начало недели и тип вычислений:
воскресенье = 1
понедельник = 2
Примеры:
Функция WEEKNUM("11.01.09";2) возвращает номер 2.
Функция WEEKNUM("29.11.07";2) возвращает номер 48.
В Microsoft Excel аналог этой функции называется НОМНЕДЕЛИ.
WORKDAY
Функция WORKDAY возвращает дату в числовом формате, отстоящую на заданное количество рабочих дней вперед или назад от даты нач_дата. Рабочими днями не считаются выходные дни и дни, перечисленные в аргументе праздники. Эта функция имеет следующий синтаксис:
=WORKDAY (нач_дата; количество_дней; праздники)
Где нач_дата — это начальная дата в числовом формате. Если начальная дата попадает на рабочий день, этот день также будет учтен.; кон_дата — это дата в числовом формате, которая представляет конечную дату; количество_дней — это количество не выходных и не праздничных дней до или после нач_дата, положительное значение аргумента количество_дней означает будущую дату, а отрицательное значение — означает прошедшую дату; праздники — это необязательный массив из одной или нескольких дат в числовом формате, которые требуется исключить из рабочего календаря, например государственные праздники. В ячейке A1 укажите 01.01.09. Для составления праздников заполним ячейки, где в столбце А (ячейки с А3 по А19) будут наименования праздников, а в столбце В (ячейки с В3 по В19) даты праздников:
Новый год
|
01.01.11
|
Продолжение Нового года
|
02.01.11
|
Продолжение Нового года
|
03.01.11
|
Продолжение Нового года
|
04.01.11
|
Продолжение Нового года
|
05.01.11
|
Продолжение Нового года
|
06.01.11
|
Рождество Христово
|
07.01.11
|
Продолжение Нового года
|
08.01.11
|
Продолжение Нового года
|
09.01.11
|
Продолжение Нового года
|
10.01.11
|
День Защитника Отечества
|
23.02.11
|
Международный Женский день
|
08.03.11
|
Международный день солидарности
|
01.05.11
|
Продолжение Дня солидарности
|
02.05.11
|
День Великой Победы
|
09.05.11
|
День России
|
12.06.11
|
День освобождения Кремля
|
04.11.11
|
Например, составим формулу:
=WORKDAY (A1; 31; B3:B19)
возвратит дату 24 февраля 2011 года. Если дата выведена в виде числа, то выберите формат даты.
В Microsoft Excel аналог этой функции называется РАБДЕНЬ.
YEAR, MONTH, DAY
Функции YEAR, MONTH, DAY возвращают год, месяц и день, соответствующий аргументу дата_в_числовом_формате. При этом год определяется как целое в интервале 1583 до 9956 или от 0 до 99. Месяц определяется как целое в интервале от 1 (Январь) до 12 (Декабрь). Возвращает номер дня в месяце для даты в числовом формате. День возвращается как целое число диапазоне от 1 до 31. Синтаксис этих функций следующий:
=YEAR (дата_в_числовом_формате)
=MONTH (дата_в_числовом_формате)
=DAY (дата_в_числовом_формате)
Где дата_в_числовом_формате — это код дата-время, используемый в Microsoft Excel для вычислений с датами и периодами времени. Можно задать аргумент дата_в_числовом_формате как текст, например, как "25 Авг 2000" или "08.03.04", а не как число;
Текст автоматически преобразуется в дату в числовом формате.
Для номера дня 38163 функции YEAR, MONTH и DAY:
=YEAR (38163)
=MONTH (38163)
=DAY (38163)
вернут дату: 25 июня 2004 года.
В Microsoft Excel аналоги этих функций называются ГОД, МЕСЯЦ, ДЕНЬ.
YEARFRAC
Функция YEARFRAC возвращает долю года, которую составляет количество дней между начальной и конечной датами. Синтаксис этой функции следующий:
=YEARFRAC (нач_дата; кон_дата; базис)
Где нач_дата — это дата в числовом формате, которая соответствует начальной дате; кон_дата — это дата в числовом формате, которая соответствует конечной дате; базис — это тип используемого способа вычисления дня.
При составлении формулы следует помнить, что если любой из аргументов не число, то функция YEARFRAC возвращает ошибку; если нач_дата или кон_дата не являются допустимой датой в числовом формате, то функция YEARFRAC возвращает ошибку; если базис < 0 или если базис > 4, то функция YEARFRAC возвращает ошибку.
Базис
|
Способ вычисления дня
|
0 или опущен
|
US (NASD) 30/360
|
1
|
Фактический/фактический
|
2
|
Фактический/360
|
3
|
Фактический/365
|
4
|
Европейский 30/360
|
Например, составим следующую формулу:
=YEARFRAC ("01.01.04";"01.07.04")
Ответом будет 0,5 года.
Если изменить второй аргумент всего на один день:
=YEARFRAC ("01.01.04";"30.06.04")
то ответ будет уже другой: 0,497222222.
В Microsoft Excel аналог этой функции называется ДОЛЯГОДА.