Progress-servis55.ru

Новости из мира ПК
8 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Excel сравнение даты с текущей

Как подсветить сроки и даты в ячейках в Excel?

Добрый день уважаемый пользователь Microsoft Excel!

Темой статьи будет возможность подсветить сроки и даты в ячейках Excel, которые будут указаны в условиях как критические. Это необходимо когда выполнение любых условий привязанных к датам являются очень важными.

Статья будет полезна тем, кому важны сроки окончания действий договоров, для их перезаключения, проведения тендеров, тут вообще необходимо жёсткое соответствие срокам, отслеживания дат отгрузок товаров согласно соглашениям, ведение строгой и простой отчётности и т.п… Как видите, сфера применения очень обширна и данная возможность пригодится многим юристам, работникам кадровых служб, экономистам и бухгалтерам.

Давайте рассмотрим на практике два способа применения подсветки с помощью условного форматирования:

Подсветка дат и сроков с помощью правил выделения ячеек

Это самый простой способ, который возможно осуществить с помощью нескольких кликов. Для начала необходимо выделить нужный диапазон с вашими датами, на панели управления во вкладке «Главная», выбрать выпадающее меню «Условное форматирование», выбрать в списке «Правила выделения ячеек», далее выбрать тип «Дата…». Следующим шагом вы в диалоговом окне «Дата» в выпадающем списке указываем условия выделения, например, выбрать все даты «На текущей неделе» и выберем для них красный цвет.

Подсветка дат в ячейках с помощью условного форматирования и элементов управления форм

Этот способ будет более сложным, конечно, но и лучше, и красочнее, и интересней. Рассмотрим наш пример на основе отдела продаж и плану отгрузки товаров для клиентов, выполнение, которого очень строго и обязательно для исполнения, если необходима кристальная репутация и деньги.

Создадим таблицу отгрузки товаров: Главным аргументом в работе будут даты отгрузки, когда в списке дата уже прошла, значит, товар поставлен и всё у вас хорошо. Когда же дата еще не наступила, вам необходимо контролировать этот процесс и сделать отгрузку в указанный период. А вот если дата отгрузки и сегодняшняя дата совпадают, тогда бросайте всё и бегите немедленно заниматься срочной отгрузкой, так как ее приоритет в работе будет максимальной.

Для наибольшей наглядности настроим несколько правил для работы условного форматирования, чтобы происходила заливка строки таблицы в определённые цвета в зависимости от указанных дат поставки.

Для начала выделим созданную таблицу и на вкладке «Главная» выбираем в выпадающем списке «Условное форматирование» пункт «Создать правило». В открывшемся диалоговом окне выбираете правило «Использовать формулу для определения форматируемых ячеек» и вводим формулу: =$D5 ИСТИНА. Формат указывать не надо, так как таблица должна выглядеть обыкновенной, нажимаем кнопочку «ОК» добавляем новое правило в общий список. В случае если новое правило не возглавило список, то необходимо стрелочками его туда пропихнуть и установить флажок в столбике «Остановить если истина». Указание последнего параметра необходимо для того, чтобы, когда ваше правило выполнялось (выключен флажок «Включить индикатор строк»), Excel автоматически отключал все нижестоящие правила условного форматирования и таблица остается, девственно чиста от заливок, чего, собственно вы и добивались!

Я очень хочу, чтобы возможность и умение подсветить сроки и даты в ячейках в Excel у вас получилась, и вы могли применить их в своей работе. Если у вас есть чем дополнить меня пишите комментарии, я буду их ждать с нетерпением, ставьте лайки и делитесь полезной статьей в соц.сетях!

Не забудьте подкинуть автору на кофе…

Функция РАЗНДАТ() — Вычисление разности двух дат в днях, месяцах, годах в EXCEL

Если Вам требуется рассчитать стаж (страховой) в годах, месяцах, днях, то, пожалуйста, воспользуйтесь расчетами выполненными в статье Расчет страхового (трудового) стажа в MS EXCEL .

Функции РАЗНДАТ( ) нет в справке EXCEL2007 и в Мастере функций ( SHIFT + F 3 ), но она работает, хотя и не без огрех.

Синтаксис функции:

РАЗНДАТ(начальная_дата; конечная_дата; способ_измерения)

Аргумент начальная_дата должна быть раньше аргумента конечная_дата .

Аргумент способ_измерения определяет, как и в каких единицах будет измеряться интервал между начальной и конечной датами. Этот аргумент может принимать следующие значения:

Значение

Описание

разница в полных месяцах

разница в полных годах

разница в полных месяцах без учета лет

разница в днях без учета месяцев и лет ВНИМАНИЕ! Функция для некоторых версий EXCEL возвращает ошибочное значение, если день начальной даты больше дня конечной даты (например, в EXCEL 2007 при сравнении дат 28.02.2009 и 01.03.2009 результат будет 4 дня, а не 1 день). Избегайте использования функции с этим аргументом. Альтернативная формула приведена ниже.

Читать еще:  Связь access с excel

разница в днях без учета лет ВНИМАНИЕ! Функция для некоторых версий 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 дня! Больше чем дней в месяце!

Читать еще:  Delphi excel формат ячейки

Версия 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 дней. Так ли это на самом деле?

Имея формулу, эквивалентную РАЗНДАТ() , можно понять ход вычисления. Очевидно, что в нашем случае количество полных месяцев между датами = 1, т.е. весь февраль. Для вычисления дней, функция находит количество дней в предыдущем месяце относительно конечной даты, т.е. 28 (конечная дата принадлежит марту, предыдущий месяц — февраль, а в 2015г. в феврале было 28 дней). После этого отнимает день начала и прибавляет день конечной даты = ДЕНЬ(КОНМЕСЯЦА(ДАТАМЕС(B6;-1);0))-ДЕНЬ(A6)+ДЕНЬ(B6) , т.е. 28-30+16=14. На наш взгляд, между датами все же 1 полный месяц и все дни марта, т.е 16 дней, а не 14! Эта ошибка проявляется, когда в предыдущем месяце относительно конечной даты, дней меньше, чем дней начальной даты. Как выйти из этой ситуации?

Модифицируем формулу для расчета дней разницы без учета месяцев и лет:

При применении новой функции необходимо учитывать, что разница в днях будет одинаковой для нескольких начальных дат (см. рисунок выше, даты 28-31.01.2015). В остальных случаях формулы эквивалентны. Какую формулу применять? Это решать пользователю в зависимости от условия задачи.

Глава 12. Выборка из диапазона дат с помощью критерия в ином формате

Это глава из книги: Майкл Гирвин. Ctrl+Shift+Enter. Освоение формул массива в Excel.

При создании формул массива, операторы массива могут значительно увеличить время расчета. В этой короткой главе рассматриваются два примера, в которых обычная формула справляется с задачей значительно быстрее формулы массива.

Подсчет дат, когда критерий сформулирован в виде текста. На рис. 12.1 показан набор данных с датами в стандартном формате Excel, то есть в виде порядковых чисел. В тоже время, критерии заданы как число (год) и текст (месяц). Цель – подсчитать, сколько дат соответствуют критерию. Проблема в том, что у нас несоответствие формата данных: в столбце A даты как порядковые номера, а критерий – смесь чисел и текста. На рис. 12.1 приведено пять различных формул, которые можно использовать для достижения цели.

Рис. 12.1. Подсчет количества дат (заданных порядковыми номерами) по двум критериям: году (число) и месяцу (текст)

Скачать заметку в формате Word или pdf, примеры в формате Excel2013

Давайте подробнее изучим работу этих пяти формул.

  • Если вы можете позволить себе вспомогательный столбец, функция СЧЁТЕСЛИ будет самым простым решением.
  • Функция МЕСЯЦ возвращает число между 1 и 12, а функция ГОД – число (год).
  • Хотя Excel требует, чтобы аргумент функции МЕСЯЦ был представлен датой в числовом формате, этот аргумент может распознать и текст. Однако МЕСЯЦ(Окт) вернет ощибку, а вот если добавить к названию месяца любое число, например, 1, то Excel справится. Используйте, как в формуле выражение Окт1, заданное фрагментом F8&1, или 1Окт, заданное фрагментом 1&F8.
  • Формулы с вспомогательными столбцами как правило работают быстрее.
  • Если у вас Excel 2007 или более поздний, вы можете использовать функции СЧЁТЕСЛИМН и КОНМЕСЯЦА.
  • Вам даны год (в виде числа) и месяц (как текст). Это означает, что вы можете вычислить дату начала и конца месяца, а затем определить даты, попажающие между ними.
  • Месяц всегда начинается с первого числа, так что вы можете создать нижнюю границу диапазона конкатенацией: » >=1 » &F8&E8. Операции конкатенации возвращают текст, но это не страшно, т.к. функция СУММЕСЛИМН понимает даты в виде текста.
  • Вы используете функцию КОНМЕСЯЦА с аргументом число_месяцев равным нулю; это позволяет получить последнюю дату текущего месяца. Функция КОНМЕСЯЦА является динамической: она возвращает 28 или 29 для февраля и 30 или 31 для любого другого месяца.
  • Эта формула является самой быстрой, если вам нужно получить решение в одной ячейке.
  • Если у вас Excel версии младше 2007 г., вы можете использовать две функции СЧЁТЕСЛИ, одну – для верхнего диапазона, вторую – для нижнего. Фокус в том, чтобы сначала сосчитать все значения, которые равны или меньше верхней границы, а затем вычесть все значения, которые меньше нижней границы.
  • В Excel 2003 или более ранней, чтобы добавить функцию КОНМЕСЯЦА, вам нужно выбрать ИнструментыНадстройкиАнализ Данных.
  • Эта формула работает быстрее, чем формулы [4] и [5].
  • Функции МЕСЯЦ и ГОД возвращают числа, извлекая их из порядкового номера даты.
  • Далее сравниваются два фрагмента, каждый полкченный конкатенацией.
  • Функция ТЕКСТ используется для представления чисел в виде текста. Второй аргумент этой функции – формат – определяет, как будет представлено число. Вы может конвертировать весь столбец А в текст, состоящий из 7 символов: 3 буквы месяца и 4 цифры года.
Читать еще:  Как посчитать количество в excel

Нахождение объема продаж за год. На рис. 12.4 показан пример несоответствие формата года в критерии Е6 (число) и формата дат в диапазоне А2:А6 (порядковый номер). Цель – найти сумму продаж за год. На рисунке представлены шесть вариантов формул, которые могут решить задачу. Обратите внимание, что в формулах [1] и [2] критерии начала и конца года жестко зашиты в коде, т.к. они не могут изменяться. Это 1/1 и 31/12). Формулы размещены на рисунке в порядка увеличения скорости работы.

Рис. 12.4. Формата года в критерии Е6 (число) не соответствует формату дат в диапазоне А2:А6 (порядковый номер)

Работа с датами в Excel. Устранение типовых ошибок

В ячейках Excel могут быть числа, текст, формулы, ссылки на ячейки и даты. Даты имеют свою специфику, в первую очередь, из-за большого количества форматов. Мы разберем основы работы с датами и решение типовых ошибок, с которыми мы сталкиваемся.

Что такое даты для Excel?

Дата и Время — это числа для Excel. Целая часть — номер дня, а все что идет после запятой — время. Если перевести в разные форматы, получим следующее:

То есть 12.07.2016 12:50:30 для Excel значение — 42563,5350694,

Где 42563 — это порядковый номер дня с 1 января 1900 года, а часть после запятой — это время.

С датами можно производить вычисления. Например, вычитать или складывать даты.

Даты нужны для группировки ежедневных данных в недельные, месячные и годовые отчеты. Пример группировок различных рекламных каналов по дате:

Основные ошибки с датами и их решение

Перевод разных написаний дат

Разные системы в выгрузках выдают даты по-разному, например: 12.07.2016 12-07-16 16-07-12 и так далее. Иногда месяца пишут текстом. Для того, чтобы привести даты к одному формату мы используем функцию ДАТА:

Данный вариант подходит, когда количество символов в дате одинаковое. Если вы работаете с однотипными выгрузками еженедельно, создание дополнительного столбца и протягивание формулы будет простым решением.

Дата определяется как текст

Проблемы с датами начинаются, когда мы импортируем данные из других источников. При этом, даты могут выглядеть нормально, но при этом являться текстом. С ними нельзя проводить вычисления, группировки в сводных таблицах, сортировать. Есть 2 решения, которые позволяют сделать это автоматически: 1. Получение значения даты; 2. Умножение текстового значения на единицу.

Получение значения даты

С помощью формулы ЗНАЧ мы выводим текстовое значение даты, потом его форматируем как Дату:

Умножение текстового значения на единицу

Принцип аналогичный предыдущему, только мы текстовое значение умножаем на единицу и после этого форматируем как дату:

Примечание: если дата определилась как текст, то вы не сможете делать группировки. При этом дата будет выровнена по левому краю. Excel выравнивает числа и даты по правому краю.

Очистка дат от некорректных символов

Чтобы привести к нужному стандарту, часть дат можно очистить с помощью функции Найти и Заменить. Например, поменять слэши (“/”) на точки:

То же самое можно сделать формулой ПОДСТАВИТЬ

Итак, мы разобрали основные варианты решения проблем с датами. Конечно, способов гораздо больше. И подобные преобразования удобнее делать через Power Query, который очень хорошо понимает и преобразовывает даты, но об этом в следующей статье.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector