Newcomposers.ru

IT Мир
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как выбрать дату в excel

Глава 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 цифры года.

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

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

3 примера, как функция ЕСЛИ работает с датами.

На первый взгляд может показаться, что функцию ЕСЛИ для работы с датами можно использовать так же, как для числовых и текстовых значений, которые мы только что обсудили. К сожалению, это не так.

Примеры работы функции ЕСЛИ с датами.

Дата в качестве условия, с которым работает функция ЕСЛИ, может быть записана в какую-то ячейку Excel, либо же прямо вставлена в формулу. Вот тут-то и возникают некоторые особенности и сложности работы функции ЕСЛИ с датами.

Пример 1. Формула условия для дат с функцией ДАТАЗНАЧ (DATEVALUE)

Иногда случается, что записать дату непосредственно в функцию ЕСЛИ, не ссылаясь ни на какую ячейку. В этом случае возникают некоторые сложности.

В отличие от многих других функций Excel, ЕСЛИ не может распознавать даты и интерпретирует их как текст, как простые текстовые строки.

Читать еще:  Построение линейного графика в excel

Поэтому вы не можете выразить свое логическое условие просто как >«15.07.2019» или же >15.07.2019. Увы, ни один из приведенных вариантов не верен.

Чтобы функция ЕСЛИ распознала дату в вашем логическом условии именно как дату, вы должны обернуть ее в функцию ДАТАЗНАЧ (в английском варианте – DATEVALUE).

Полная формула ЕСЛИ может иметь следующую форму:

=ЕСЛИ(B2

Как показано на скриншоте, эта формула ЕСЛИ оценивает даты в столбце В и возвращает «Послупил», если дата поступления до 10 сентября. В противном случае формула возвращает «Ожидается».

Пример 2. Формула условия для дат с функцией СЕГОДНЯ()

В случае, когда даты записаны в ячейки таблицы Excel, использовать ДАТАЗНАЧ нет необходимости.

Если вы основываете свое условие на текущей дате, то можете использовать функцию СЕГОДНЯ (в английском варианте — TODAY) в качестве аргумента функции ЕСЛИ.

К примеру, сегодня — 9 сентября 2019 года.

В столбце C отметим товар, который уже поступил. В ячейке C2 запишем:

=ЕСЛИ(B2

Пример 3. Расширенные формулы ЕСЛИ для будущих и прошлых дат

Предположим, вы хотите отметить только те даты, которые отстоят от текущей более чем на 30 дней.

Выделим даты, отстоящие более чем на месяц от текущей, в прошлом. Укажем для них «Более месяца назад». Запишем это условие:

=ЕСЛИ(СЕГОДНЯ()-B2>30,»Более месяца назад»,»»)

Если условие не выполнено, то в ячейку запишем пустую строку «».

А для будущих дат, также отстоящих более чем на месяц, укажем «Ожидается».

Если все результаты попробовать объединить в одном столбце, то придется использовать формулу с несколькими вложенными функциями ЕСЛИ:

=ЕСЛИ(СЕГОДНЯ()-B2>30,»Более месяца назад», ЕСЛИ(B2-СЕГОДНЯ()>30,»Ожидается»,»»))

Основные принципы работы с датами и временем в Excel

Видео

Как обычно, кому надо быстро — смотрим видео. Подробности и нюансы — в тексте ниже:

Как вводить даты и время в Excel

Если иметь ввиду российские региональные настройки, то Excel позволяет вводить дату очень разными способами — и понимает их все:

С использованием дефисов

С использованием дроби

Внешний вид (отображение) даты в ячейке может быть очень разным (с годом или без, месяц числом или словом и т.д.) и задается через контекстное меню — правой кнопкой мыши по ячейке и далее Формат ячеек (Format Cells) :

Время вводится в ячейки с использованием двоеточия. Например

По желанию можно дополнительно уточнить количество секунд — вводя их также через двоеточие:

И, наконец, никто не запрещает указывать дату и время сразу вместе через пробел, то есть

27.10.2012 16:45

Быстрый ввод дат и времени

Для ввода сегодняшней даты в текущую ячейку можно воспользоваться сочетанием клавиш Ctrl + Ж (или CTRL+SHIFT+4 если у вас другой системный язык по умолчанию).

Если скопировать ячейку с датой (протянуть за правый нижний угол ячейки), удерживая правую кнопку мыши, то можно выбрать — как именно копировать выделенную дату:

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

Если нужно, чтобы в ячейке всегда была актуальная сегодняшняя дата — лучше воспользоваться функцией СЕГОДНЯ (TODAY) :

Как Excel на самом деле хранит и обрабатывает даты и время

Если выделить ячейку с датой и установить для нее Общий формат (правой кнопкой по ячейке Формат ячеек — вкладка ЧислоОбщий), то можно увидеть интересную картинку:

То есть, с точки зрения Excel, 27.10.2012 15:42 = 41209,65417

На самом деле любую дату Excel хранит и обрабатывает именно так — как число с целой и дробной частью. Целая часть числа (41209) — это количество дней, прошедших с 1 января 1900 года (взято за точку отсчета) до текущей даты. А дробная часть (0,65417), соответственно, доля от суток (1сутки = 1,0)

Из всех этих фактов следуют два чисто практических вывода:

  • Во-первых, Excel не умеет работать (без дополнительных настроек) с датами ранее 1 января 1900 года. Но это мы переживем! 😉
  • Во-вторых, с датами и временем в Excel возможно выполнять любые математические операции. Именно потому, что на самом деле они — числа! А вот это уже раскрывает перед пользователем массу возможностей.

Количество дней между двумя датами

Считается простым вычитанием — из конечной даты вычитаем начальную и переводим результат в Общий (General) числовой формат, чтобы показать разницу в днях:

Количество рабочих дней между двумя датами

Здесь ситуация чуть сложнее. Необходимо не учитывать субботы с воскресеньями и праздники. Для такого расчета лучше воспользоваться функцией ЧИСТРАБДНИ (NETWORKDAYS) из категории Дата и время. В качестве аргументов этой функции необходимо указать начальную и конечную даты и ячейки с датами выходных (государственных праздников, больничных дней, отпусков, отгулов и т.д.):

Примечание: Эта функция появилась в стандартном наборе функций Excel начиная с 2007 версии. В более древних версиях сначала необходимо подключить надстройку Пакета анализа. Для этого идем в меню Сервис — Надстройки (Tools — Add-Ins) и ставим галочку напротив Пакет анализа (Analisys Toolpak) . После этого в Мастере функций в категории Дата и время появится необходимая нам функция ЧИСТРАБДНИ (NETWORKDAYS) .

Читать еще:  Как составить диаграмму в excel

Количество полных лет, месяцев и дней между датами. Возраст в годах. Стаж.

Про то, как это правильно вычислять, лучше почитать тут.

Сдвиг даты на заданное количество дней

Поскольку одни сутки в системе отсчета даты Excel принимаются за единицу (см.выше), то для вычисления даты, отстоящей от заданной на, допустим, 20 дней, достаточно прибавить к дате это число.

Сдвиг даты на заданное количество рабочих дней

Эту операцию осуществляет функция РАБДЕНЬ (WORKDAY) . Она позволяет вычислить дату, отстоящую вперед или назад относительно начальной даты на нужное количество рабочих дней (с учетом выходных суббот и воскресений и государственных праздинков). Использование этой функции полностью аналогично применению функции ЧИСТРАБДНИ (NETWORKDAYS) описанной выше.

Вычисление дня недели

Вас не в понедельник родили? Нет? Уверены? Можно легко проверить при помощи функции ДЕНЬНЕД (WEEKDAY) из категории Дата и время.

Первый аргумент этой функции — ячейка с датой, второй — тип отсчета дней недели (самый удобный — 2).

Вычисление временных интервалов

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

Нюанс здесь только один. Если при сложении нескольких временных интервалов сумма получилась больше 24 часов, то Excel обнулит ее и начнет суммировать опять с нуля. Чтобы этого не происходило, нужно применить к итоговой ячейке формат 37:30:55:

Формат даты в Excel, календарь в Excel, надстройка samradDatePicker

Формат даты используется для отображения дат и времени, представленных числами, в виде дат. Система дат в Excel устроена так, что дату 01.01.1900 года приняли за отправную точку и обозначили числом 1, таким образом, любая дата представляет собой число дней, пройденных с 1 января 1900 года до этой даты. Значение времени является составной частью даты и хранится в виде десятичной дроби. Со значениями даты и времени можно производить математические действия, так как они являются числами.

Как задать формат даты в Excel 2007/2010?

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

В раскрывшемся списке доступны два числовых формата: «Краткая дата» и «Длинный формат даты». В первом случае дата отображается числами, а во втором — числами и словами. Если предложенные форматы не подходят, выбираем пункт «Другие числовые форматы…», в результате чего появляется окно «Формат ячеек».

Это окно также можно вызвать щелчком левой кнопки мыши на правый нижний уголок группы,

либо просто кликнуть правой кнопкой мыши в области выделенных ячеек и выбрать из контекстного меню пункт «Формат ячеек».

В появившемся окне «Формат ячеек» переходим на вкладку «Число» и в группе «Числовые форматы» выбираем пункт «Дата»

В правой части окна отображаются возможности данного формата, в группе «Тип» выбераем нужный способ отображения даты. Форматы даты, перед которыми стоит значок *(звездочка), зависят от даты операционной системы, форматы, перед которыми этого значка нет – не зависят.

Как задать свой собственный формат даты? Как преобразовать дату в год, месяц либо день недели?

Выделяем нужные ячейки в окне открытого листа и вызываем окно «Формат ячеек» любым из перечисленных выше способов. В окне «Формат ячеек» выбираем вкладку «Число» и в группе «Числовые форматы» выбираем пункт «Все форматы». После этого помещаем курсор в поле «Тип» и набираем код числового формата в русской раскладке клавиатуры:

— М – для отображения месяцев в виде числа от 1 до 12;

— ММ — для отображения месяцев в виде числа от 01 до 12;

— МММ – для отображения месяцев в виде «янв» — «дек»;

— ММММ — для отображения месяцев в виде «январь» — «декабрь»;

— МММММ – для отображения месяцев виде первой буквы месяца;

Форматы с кодом «М» можно использовать для преобразования даты в месяц.

— д – для отображения дней в виде числа от 1 до 31;

— дд – для отображения дней в виде числа от 01 до 31;

— ддд – для отображения дней в виде «Пн» — «Вс»;

— дддд – для отображения дней в виде «понедельник» — «воскресенье»;

Форматы с кодом «д» используются для преобразования даты в день.

— гг – для отображения лет в виде чисел от 00 до 99;

-гггг – для отображения лет в виде чисел от 1900 до 9999.

Читать еще:  Условное форматирование таблицы в excel

Форматы с кодом «г» используются для преобразования даты в год.

Как установить систему дат 1904?

Кроме вышеописанной системы дат, Excel поддерживает еще одну систему – 1904 года, которая используется на компьютерах Macintosh. Excel автоматически производит смену системы дат, но при необходимости, это можно сделать самостоятельно вручную. Для этого нажимаем кнопку «Office», выбираем кнопку «Параметры Excel», заходим в раздел «Дополнительно» и находим группу «При пересчете этой книги». Смена системы дат производится установкой/снятием флажка перед пунктом «Использовать систему дат 1904».

Как вводить дату в ячейку?

Для того, чтобы Excel воспринимал информацию, вводимую в ячейку, как дату, необходимо использовать в качестве разделителя точку, тире либо наклонную черту «/». При этом все введенные числа, меньшие 31.12, 31-12 либо 31/12 будут автоматически восприниматься как даты, а большие — как текст. Как уже говорилось выше, ячейки с датами могут использоваться в расчетах.

Как в Excel вводить даты при помощи надстройки?

Для тех, кто активно работает с датами в своих таблицах, были созданы надстройки, представляющие собой календарь в Excel. Пример такой надстройки – календарь samradDatePicker. Скажем спасибо создателям этой надстройки и тем, кто доработал ее и перевел на русский язык! Надстройка упрощает ввод дат в ячейки листа Excel. После установки этой надстройки в контекстное меню (щелчок правой кнопки мыши) добавляется новый пункт «Выбрать из календаря», а при выделении ячеек, содержащих дату, справа от ячейки отображается значок календаря.

Как устанавливаются надстройки в Excel, уже описывалось в одной из статей на этом сайте, поэтому не буду повторяться. Добавлю лишь только, что Вы можете бесплатно скачать эту надстройку, а также ознакомиться с другими полезными надстройками для Excel.

Как вставить в ячейку статическую, фиксированную, не обновляемую дату?

Выделите в окне открытого листа ячейку, в которую требуется вставить текущую дату, и нажмите сочетание клавиш Ctrl+; (точка с запятой). При нажатии этого сочетания клавиш делается своего рода «снимок» с текущей даты и вставляется в ячейку. Введенная таким способом дата не изменяется с течением времени, а остается фиксированной.

Как вставить в ячейку текущую автоматически обновляемую дату?

Выберите нужную ячейку на листе Excel и введите в нее, как показано ниже, функцию «Сегодня», использующую значение системных часов компьютера.

Функцию можно вписать в ячейку вручную с клавиатуры, а можно воспользоваться мастером функций.

Поиск в EXCEL ДАТЫ ближайшей к заданной

Пусть имеется диапазон с датами. Найдем дату из этого диапазона, которая является ближайшей к заданной. Решение этой задачи аналогично решению, изложенного в статье Поиск ЧИСЛА ближайшего к заданному .

Пусть в диапазоне A4:A12 имеется список дат. Будем в нем искать дату из ячейки С4 . Если диапазон не содержит искомого значения, то будет возвращено ближайшее значение.

Искомая дата необязательно должна совпадать с какой-нибудь датой или даже находиться в диапазоне поиска (см. Файл примера ):

Решение

Результат поиска

Примечание

ищется наибольшее значение, которое меньше, чем искомое значение (если искомая дата меньше, чем минимальное значение из диапазона, то будет возвращена ошибка #Н/Д)

если столбец не отсортирован по возрастанию, то результат непредсказуем

ищется ближайшая к критерию дата (если обнаружено 2 ближайших числа (одно больше, другое меньше критерия), то выводится то, которое расположено выше (номер строки меньше))

столбец м.б. не отсортирован

= ИНДЕКС(A4:A12; ПОИСКПОЗ(МАКС(ЕСЛИ(A4:A12 =C4;A4:A12;»»)); $A$4:$A$12;0);1)

ищется наименьшее значение, которое больше , чем искомое значение (если искомая дата больше, чем максимальное значение из диапазона, то будет возвращена ошибка #Н/Д)

столбец м.б. не отсортирован

ищется ближайшая к критерию дата (если обнаружено 2 ближайших числа (одно больше, другое меньше критерия), то выводится то, которое больше

столбец м.б. не отсортирован

ищется ближайшая к критерию дата (если обнаружено 2 ближайших числа (одно больше, другое меньше критерия), то выводится то, которое меньше

столбец м.б. не отсортирован

Последние 5 решений реализованы с использованием формул массива . Для пошагового просмотра хода вычислений используйте клавишу F9 .

Как видно из таблицы, применение функции ВПР() со значением аргумента интервальный_просмотр равным ИСТИНА, имеет недостатки. Во-первых, найденное значение м.б. далеко не ближайшим (задав в качестве критерия дату 06.02.2009 получим не ближайшую дату 07.02.2009, а наибольшее значение, которое меньше, чем искомое значение, т.е. 05.01.2009). Во-вторых, если искомая дата меньше, чем минимальное значение из диапазона, то будет возвращена ошибка #Н/Д. В-третьих, требуется сортировка списка, что не всегда удобно.

Хорошим решением является формула массива =ИНДЕКС(A4:A12; ПОИСКПОЗ(МИН(ABS(A4:A12-C4));ABS(A4:A12-C4);0))

свободная от всех указанных недостатков, но имеющая свои: формула относительно сложная и является формулой массива .

Совет : т.к. дата в MS EXCEL хранится в числовом виде (см. статью Как Excel хранит дату и время ), то формулы для поиска ближайшего числа также будут работать для дат (см. раздел Ближайшее ЧИСЛО ).

Ссылка на основную публикацию
Adblock
detector