Excel если дата меньше сегодня
1 января — это первый день года, а 31 декабря — последний. А как насчет остальных дней, идущих между ними? Следующая формула возвращает день года для даты, хранящемся в ячейке A1: =A1-ДАТА(ГОД(A1);1;0) . Например, если ячейка A1 содержит дату 16 февраля 2010 года, формула возвращает 47, потому что эта дата является 47-м днем в году.
Следующая формула возвращает количество дней, оставшихся в году с момента определенной даты (предполагается, что она содержится в ячейке A1): =ДАТА(ГОД(A1);12;31) .
Определение дня недели
Если вам необходимо определить день недели для даты, функция ДЕНЬНЕД справится с этой задачей. Функция принимает в качестве аргумента дату и возвращает целое число от 1 до 7, соответствующее дню недели. Следующая формула, например, возвращает 6, потому что первый день 2010 года приходится на пятницу: =ДЕНЬНЕД(ДАТА(2010;1;1)) .
Вы можете также определить день недели для ячейки, содержащей дату, применяя пользовательский числовой формат. Ячейка, использующая следующий формат, выводит день недели: ДДДД. Имейте в виду, что ячейка действительно содержит полную дату, а не только номер дня.
Определение даты последнего воскресенья
Формула в этом разделе возвращает последний указанный день. Вы можете использовать следующую формулу для получения даты прошлого воскресенья. Если текущий день — воскресенье, то формула возвращает текущую дату. Результатом будет серийный номер даты (вам нужно отформатировать ячейку для отображения читабельной даты): =СЕГОДНЯ()-ОСТАТ(СЕГОДНЯ()-1;7) .
Чтобы изменить эту формулу для нахождения даты другого дня, а не воскресенья, поменяйте 1 на другое число в диапазоне от 2 (понедельник) до 7 (суббота).
Определение дня недели после даты
Следующая формула возвращает указанный день недели, который наступает после определенной даты. Например, вы можете применять эту формулу для определения даты первой пятницы после 4 июля 2010 года. Формула предполагает, что ячейка А1 содержит дату, а ячейка А2 — число от 1 до 7 (1 соответствует воскресенью, 2 — понедельнику и т. д.): =A1+A2-ДЕНЬНЕД(A1)+(А2 .
Если ячейка А1 содержит 4 июля. 2010, а ячейка А2 содержит б (что обозначает пятницу), то формула возвращает 9 июля, 2010. Это первая пятница после 4 июля 2010 года (дня, который приходится на воскресенье).
Нахождение n-го определенного дня недели в месяце
Вам может понадобиться формула для нахождения даты определенного по счету дня недели. Предположим, что день выплаты зарплаты в вашей компании приходится на вторую пятницу каждого месяца и вам нужно определить эти
дни выплат для каждого месяца года. Следующая формула выполнит требуемый расчет:
=ДАТА(А1;А2;1)+А3-ДЕНЬНЕД(ДАТА(А1;А2;1))+(А4-(А3>=ДЕНЬНЕД(ДАТА(А1;А2;1))))*7
Эта формула предполагает, что:
- ячейка А1 содержит год;
- ячейка А2 содержит месяц;
- ячейка A3 содержит номер дня (1 — воскресенье, 2 — понедельник и т. д.);
- ячейка А4 содержит число — например 2, указывающее второе появление дня недели, заданного в ячейке A3.
При использовании этой формулы для определения даты второй пятницы в июне 2010 года результатом будет 11 июня, 2010.
Определение последнего дня месяца
Чтобы определить дату, которой соответствует последний день месяца, вы можете использовать функцию ДАТА. Однако вам нужно увеличивать месяц на 1 и указывать в качестве значения дня 0. Другими словами, «0-й» день следующего месяца — это последний день текущего месяца.
Следующая формула предполагает, что дата хранится в ячейке А1. Формула возвращает дату, которой соответствует последний день месяца: =ДАТА(ГОД(А1);МЕСЯЦ(А1)+1;0) .
Вы можете модифицировать эту формулу, чтобы определить, сколько дней включает в себя указанный месяц. Следующая формула возвращает целое число, которое соответствует количеству дней в месяце для даты из ячейки А1 (убедитесь, что вы отформатировали ячейку как число, а не как дату): =ДЕНЬ(ДАТА(ГОД(А1);МЕСЯЦ(А1)+1;0))
Определение квартала даты
Для финансовых отчетов может оказаться полезным представление информации по кварталам. Следующая формула возвращает целое число от 1 до 4, которое соответствует календарному кварталу для даты в ячейке А1: =ОКРУГЛ ВВЕРХ(МЕСЯЦ(A1)/3;0) . Эта формула делит номер месяца на 3, а затем округляет результат.
Для работы с датами в Excel в разделе с функциями определена категория «Дата и время». Рассмотрим наиболее распространенные функции в этой категории.
Как Excel обрабатывает время
Программа Excel «воспринимает» дату и время как обычное число. Электронная таблица преобразует подобные данные, приравнивая сутки к единице. В результате значение времени представляет собой долю от единицы. К примеру, 12.00 – это 0,5.
Значение даты электронная таблица преобразует в число, равное количеству дней от 1 января 1900 года (так решили разработчики) до заданной даты. Например, при преобразовании даты 13.04.1987 получается число 31880. То есть от 1.01.1900 прошло 31 880 дней.
Этот принцип лежит в основе расчетов временных данных. Чтобы найти количество дней между двумя датами, достаточно от более позднего временного периода отнять более ранний.
Пример функции ДАТА
Построение значение даты, составляя его из отдельных элементов-чисел.
Синтаксис: год; месяц, день.
Все аргументы обязательные. Их можно задать числами или ссылками на ячейки с соответствующими числовыми данными: для года – от 1900 до 9999; для месяца – от 1 до 12; для дня – от 1 до 31.
Если для аргумента «День» задать большее число (чем количество дней в указанном месяце), то лишние дни перейдут на следующий месяц. Например, указав для декабря 32 дня, получим в результате 1 января.
Пример использования функции:
Зададим большее количество дней для июня:
Примеры использования в качестве аргументов ссылок на ячейки:
Функция РАЗНДАТ в Excel
Возвращает разницу между двумя датами.
- начальная дата;
- конечная дата;
- код, обозначающий единицы подсчета (дни, месяцы, годы и др.).
Способы измерения интервалов между заданными датами:
- для отображения результата в днях – «d»;
- в месяцах – «m»;
- в годах – «y»;
- в месяцах без учета лет – «ym»;
- в днях без учета месяцев и лет – «md»;
- в днях без учета лет – «yd».
В некоторых версиях Excel при использовании последних двух аргументов («md», «yd») функция может выдать ошибочное значение. Лучше применять альтернативные формулы.
Примеры действия функции РАЗНДАТ:
В версии Excel 2007 данной функции нет в справочнике, но она работает. Хотя результаты лучше проверять, т.к. возможны огрехи.
Функция ГОД в Excel
Возвращает год как целое число (от 1900 до 9999), который соответствует заданной дате. В структуре функции только один аргумент – дата в числовом формате. Аргумент должен быть введен посредством функции ДАТА или представлять результат вычисления других формул.
Пример использования функции ГОД:
Функция МЕСЯЦ в Excel: пример
Возвращает месяц как целое число (от 1 до 12) для заданной в числовом формате даты. Аргумент – дата месяца, который необходимо отобразить, в числовом формате. Даты в текстовом формате функция обрабатывает неправильно.
Примеры использования функции МЕСЯЦ:
Примеры функций ДЕНЬ, ДЕНЬНЕД и НОМНЕДЕЛИ в Excel
Возвращает день как целое число (от 1 до 31) для заданной в числовом формате даты. Аргумент – дата дня, который нужно найти, в числовом формате.
Чтобы вернуть порядковый номер дня недели для указанной даты, можно применить функцию ДЕНЬНЕД:
По умолчанию функция считает воскресенье первым днем недели.
Для отображения порядкового номера недели для указанной даты применяется функция НОМНЕДЕЛИ:
Дата 24.05.2015 приходится на 22 неделю в году. Неделя начинается с воскресенья (по умолчанию).
В качестве второго аргумента указана цифра 2. Поэтому формула считает, что неделя начинается с понедельника (второй день недели).
Для указания текущей даты используется функция СЕГОДНЯ (не имеет аргументов). Чтобы отобразить текущее время и дату, применяется функция ТДАТА ().
В данной статье рассмотрим функцию MS Excel, которая называется ЕСЛИ. Данная функция позволяет проверить, соответствует ли содержащиеся в указанной ячейки данные заданному критерию или нет. В зависимости от результата проверки функция выводит заданное значение. Чтобы понять суть и возможности функции ЕСЛИ, рассмотрим примеры с ее использованием.
Функция ЕСЛИ в MS Excel с одним условием.
Функцией ЕСЛИ в Excel, первый пример.
Рассмотрим простой пример применения функции ЕСЛИ в MS Excel. У нас есть столбец №1, в котором содержаться числа от 1 до 10.
Необходимо проверить, соответствует ли числа находящиеся в столбце №1 нашему критерию. Критерий: является ли числа находящиеся в столбце №1 числами, значения которых больше числа 4.
Взываем функцию ЕСЛИ в ячейку С3.
В диалоговом окне Аргументы функции видим три поля для заполнения:
Нажимаем ОК в диалоговом окне Аргументы функции.
Как видим, число содержащиеся в ячейки В3 не является числом, которое больше числа 4. Функция ЕСЛИ вернула значение_если_ложь (неправда). Протянем функцию ЕСЛИ вниз по столбцу, чтобы проверить значения находящиеся в остальных ячейках столбца №1, на соответствие нашему критерию (логическое_выражение).
Как видно из результата, ячейки в диапазоне В7:В12 содержат в себе числа, которые больше числа 4. Функция ЕСЛИ вернула значение_если_истина (правда).
Функция ЕСЛИ в Excel, второй пример.
Рассмотрим еще один пример. Предположим, что у нас есть таблица. В ней фамилии студентов, которые сдавали зачет. Часть студентов сдали зачет, а часть не сдали.
Теперь добавим в нашу таблицу столбец: Допуск к экзамену. Используем функцию ЕСЛИ для того, чтобы определить допущен студент к экзамену или нет. Диалоговое окно Аргументы функции будет выглядеть вот так:
Важно: текстовый критерий в поле логическое_выражение должен быть заключен в кавычки. Иначе функция выдаст ошибку.
Если студен сдал зачет, он допущен к экзамену, если нет, то не допущен. Нажимаем ОК в диалоговом окне Аргументы функции и протягиваем функцию ЕСЛИ вниз, по всему столбцу Допуск к экзамену. Получаем:
Видим, что в зависимости от результатов сдачи зачета, студент допущен к экзамену, либо не допущен.
Обращаю внимание, что при работе с функцией ЕСЛИ, можно использовать разные варианты равенств: больше (>), меньше(<), больше или равно (>=), меньше или равно (<=), равно (=), не равно (<>).
Функция ЕСЛИ в MS Excel с несколькими условиями.
Предположим, что у нас есть таблица с результатами сдачи контрольной работы студентами ВУЗа. Результаты контрольной работы оцениваются в баллах. От 0 до 100. Где все, что выше 90 баллов, отлично. Выше 80 баллов, это хорошо. Выше 70 баллов, это удовлетворительно. Ниже 70 баллов, это плохо.
Формула функции ЕСЛИ будет выглядеть вот так:
Где ячейка С3, первая из проверяемых ячеек в столбце Оценка. Далее функция протянута вниз по столбцу Результат, до конца таблицы.
Внимание: в данном случае формула функции ЕСЛИ прописана в ручную, прямо в строе формулы.
Таблица выглядит вот так:
В столбце Результат, в зависимости от количества баллов, функция ЕСЛИ вернула значение, согласно заданному критерию в формуле функции.
Использование операторов «И» и «ИЛИ» в функции ЕСЛИ в MS Excel.
Формула функции ЕСЛИ выглядит вот так:
Внимание: в данном случае формула функции ЕСЛИ прописана в ручную, прямо в строе формулы.
Формула функции ЕСЛИ выглядит вот так:
Внимание: в данном случае формула функции ЕСЛИ прописана в ручную, прямо в строе формулы.
Если Вам требуется рассчитать стаж (страховой) в годах, месяцах, днях, то, пожалуйста, воспользуйтесь расчетами выполненными в статье Расчет страхового (трудового) стажа в MS EXCEL .
Функции РАЗНДАТ( ) нет в справке EXCEL2007 и в Мастере функций ( SHIFT + F 3 ), но она работает, хотя и не без огрех.
Синтаксис функции:
РАЗНДАТ(начальная_дата; конечная_дата; способ_измерения)
Аргумент начальная_дата должна быть раньше аргумента конечная_дата .
Аргумент способ_измерения определяет, как и в каких единицах будет измеряться интервал между начальной и конечной датами. Этот аргумент может принимать следующие значения:
Значение
Описание
разница в полных месяцах
разница в полных годах
разница в полных месяцах без учета лет
разница в днях без учета месяцев и лет ВНИМАНИЕ! Функция для некоторых версий EXCEL возвращает ошибочное значение, если день начальной даты больше дня конечной даты (например, в EXCEL 2007 при сравнении дат 28.02.2009 и 01.03.2009 результат будет 4 дня, а не 1 день). Избегайте использования функции с этим аргументом. Альтернативная формула приведена ниже.
разница в днях без учета лет ВНИМАНИЕ! Функция для некоторых версий EXCEL возвращает ошибочное значение. Избегайте использования функции с этим аргументом.
Ниже приведено подробное описание всех 6 значений аргумента способ_измерения , а также альтернативных формул (функцию РАЗНДАТ() можно заменить другими формулами (правда достаточно громоздкими). Это сделано в файле примера ).
В файле примера значение аргумента начальная_дата помещена в ячейке А2 , а значение аргумента конечная_дата – в ячейке В2 .
1. Разница в днях ("d")
Формула =РАЗНДАТ(A2;B2;"d") вернет простую разницу в днях между двумя датами.
Пример1: начальная_дата 25.02.2007, конечная_дата 26.02.2007 Результат: 1 (день).
Этот пример показыват, что при подсчете стажа необходимо использовать функцию РАЗНДАТ() с осторожностью. Очевидно, что если сотрудник работал 25 и 26 февраля, то отработал он 2 дня, а не 1. То же относится и к расчету полных месяцев (см. ниже).
Пример2: начальная_дата 01.02.2007, конечная_дата 01.03.2007 Результат: 28 (дней)
Пример3: начальная_дата 28.02.2008, конечная_дата 01.03.2008 Результат: 2 (дня), т.к. 2008 год - високосный
Эта формула может быть заменена простым выражением =ЦЕЛОЕ(B2)-ЦЕЛОЕ(A2) . Функция ЦЕЛОЕ() округляет значение до меньшего целого и использована для того случая, если исходные даты введены вместе с временем суток ( РАЗНДАТ() игнорирует время, т.е. дробную часть числа, см. статью Как Excel хранит дату и время ).
Примечание : Если интересуют только рабочие дни, то к оличество рабочих дней между двумя датами можно посчитать по формуле =ЧИСТРАБДНИ(B2;A2)
2. Разница в полных месяцах ("m")
Формула =РАЗНДАТ(A2;B2;"m") вернет количество полных месяцев между двумя датами.
Пример1: начальная_дата 01.02.2007, конечная_дата 01.03.2007 Результат: 1 (месяц)
Пример2: начальная_дата 01.03.2007, конечная_дата 31.03.2007 Результат: 0
При расчете стажа, считается, что сотрудник отработавший все дни месяца - отработал 1 полный месяц. Функция РАЗНДАТ() так не считает!
Пример3: начальная_дата 01.02.2007, конечная_дата 01.03.2009 Результат: 25 месяцев
Формула может быть заменена альтернативным выражением: =12*(ГОД(B2)-ГОД(A2))-(МЕСЯЦ(A2)-МЕСЯЦ(B2))-(ДЕНЬ(B2)
Внимание : В справке MS EXCEL (см. раздел Вычисление возраста) имеется кривая формула для вычисления количества месяце между 2-мя датами:
Если вместо функции ТДАТА() - текущая дата использовать дату 31.10.1961, а в А3 ввести 01.11.1962, то формула вернет 13, хотя фактически прошло 12 месяцев и 1 день (ноябрь и декабрь в 1961г. + 10 месяцев в 1962г.).
3. Разница в полных годах ("y")
Формула =РАЗНДАТ(A2;B2;"y") вернет количество полных лет между двумя датами.
Пример1: начальная_дата 01.02.2007, конечная_дата 01.03.2009 Результат: 2 (года)
Пример2: начальная_дата 01.04.2007, конечная_дата 01.03.2009 Результат: 1 (год)
Подробнее читайте в статье Полный возраст или стаж .
Формула может быть заменена альтернативным выражением: =ЕСЛИ(ДАТА(ГОД(B2);МЕСЯЦ(A2);ДЕНЬ(A2))
4. Разница в полных месяцах без учета лет ("ym")
Формула =РАЗНДАТ(A2;B2;"ym") вернет количество полных месяцев между двумя датами без учета лет (см. примеры ниже).
Пример1: начальная_дата 01.02.2007, конечная_дата 01.03.2009 Результат: 1 (месяц), т.к. сравниваются конечная дата 01.03.2009 и модифицированная начальная дата 01.02. 2009 (год начальной даты заменяется годом конечной даты, т.к. 01.02 меньше чем 01.03)
Пример2: начальная_дата 01.04.2007, конечная_дата 01.03.2009 Результат: 11 (месяцев), т.к. сравниваются конечная дата 01.03.2009 и модифицированная начальная дата 01.04. 2008 (год начальной даты заменяется годом конечной даты за вычетом 1 года , т.к. 01.04 больше чем 01.03)
Вся эта вакханалия нужна, например, для подсчета сколько полных дней, месяцев и лет прошло с определенной даты до сегодняшнего дня. Подробнее читайте в одноименной статье Сколько лет, месяцев, дней прошло с конкретной даты .
Формула может быть заменена альтернативным выражением: =ОСТАТ(C7;12) В ячейке С7 должна содержаться разница в полных месяцах (см. п.2).
5. Разница в днях без учета месяцев и лет ("md")
Формула =РАЗНДАТ(A2;B2;"md") вернет количество дней между двумя датами без учета месяцев и лет. Использовать функцию РАЗНДАТ() с этим аргументом не рекомендуется (см. примеры ниже).
Пример1: начальная_дата 01.02.2007, конечная_дата 06.03.2009 Результат1: 5 (дней), т.к. сравниваются конечная дата 06.03.2009 и модифицированная начальная дата 01. 03 . 2009 (год и месяц начальной даты заменяется годом и месяцем конечной даты, т.к. 01 меньше чем 06)
Пример2: начальная_дата 28.02.2007, конечная_дата 28.03.2009 Результат2: 0, т.к. сравниваются конечная дата 28.03.2009 и модифицированная начальная дата 28. 03 . 2009 (год и месяц начальной даты заменяется годом и месяцем конечной даты)
Пример3: начальная_дата 28.02.2009, конечная_дата 01.03.2009 Результат3: 4 (дня) - совершенно непонятный и НЕПРАВИЛЬНЫЙ результат. Ответ должен быть =1. Более того, результат вычисления зависит от версии EXCEL.
Версия EXCEL 2007 с SP3:
Результат – 143 дня! Больше чем дней в месяце!
Версия EXCEL 2007:
Разница между 28.02.2009 и 01.03.2009 – 4 дня!
Причем в EXCEL 2003 с SP3 формула возвращает верный результат 1 день. Для значений 31.12.2009 и 01.02.2010 результат вообще отрицательный (-2 дня)!
Не советую использовать формулу с вышеуказанным значением аргумента. Формула может быть заменена альтернативным выражением: =ЕСЛИ(ДЕНЬ(A2)>ДЕНЬ(B2); ДЕНЬ(КОНМЕСЯЦА(ДАТАМЕС(B2;-1);0))-ДЕНЬ(A2)+ДЕНЬ(B2); ДЕНЬ(B2)-ДЕНЬ(A2))
Данная формула лишь эквивалетное (в большинстве случаев) выражение для РАЗНДАТ() с параметром md. О корректности этой формуле читайте в разделе "Еще раз о кривизне РАЗНДАТ()" ниже.
6. Разница в днях без учета лет ("yd")
Формула =РАЗНДАТ(A2;B2;"yd") вернет количество дней между двумя датами без учета лет. Использовать ее не рекомендуется по причинам, изложенным в предыдущем пункте.
Результат, возвращаемый формулой =РАЗНДАТ(A2;B2;"yd") зависит от версии EXCEL.
Формула может быть заменена альтернативным выражением: =ЕСЛИ(ДАТА(ГОД(B2);МЕСЯЦ(A2);ДЕНЬ(A2))>B2; B2-ДАТА(ГОД(B2)-1;МЕСЯЦ(A2);ДЕНЬ(A2)); B2-ДАТА(ГОД(B2);МЕСЯЦ(A2);ДЕНЬ(A2)))
Еще раз о кривизне РАЗНДАТ()
Найдем разницу дат 16.03.2015 и 30.01.15. Функция РАЗНДАТ() с параметрами md и ym подсчитает, что разница составляет 1 месяц и 14 дней. Так ли это на самом деле?
Модифицируем формулу для расчета дней разницы без учета месяцев и лет:
Читайте также: