Что такое диапазон дат

Создание списка последовательных дат

Вы можете быстро создать список дат в последовательном порядке с помощью маркера заполнения Что такое диапазон дат. Смотреть фото Что такое диапазон дат. Смотреть картинку Что такое диапазон дат. Картинка про Что такое диапазон дат. Фото Что такое диапазон датили команды Заполнить.

Что такое диапазон дат. Смотреть фото Что такое диапазон дат. Смотреть картинку Что такое диапазон дат. Картинка про Что такое диапазон дат. Фото Что такое диапазон дат

Использование ручки заполнения

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

Щелкните в нижнем правом углу ячейки маркер заполнения Что такое диапазон дат. Смотреть фото Что такое диапазон дат. Смотреть картинку Что такое диапазон дат. Картинка про Что такое диапазон дат. Фото Что такое диапазон дати, удерживая, перетащите его, чтобы заполнить остальные ячейки в ряду. Маркер заполнения можно перетаскивать вверх, вниз и по горизонтали в пределах листа.

Использование команды «Заполнить»

Выделите ячейку с первой датой. Затем выделите диапазон ячеек, которые нужно заполнить.

Выберите Главная > Редактирование > Заполнить > Прогрессия > Единицы. Выберите нужную единицу.

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

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

Источник

Table of Contents:

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

Установить начальную и конечную даты

Шаг 1

Щелкните любую ячейку в таблице Excel, затем перейдите на вкладку «Главная». Щелкните элемент «Короткая дата» в раскрывающемся списке на панели «Номера». Это говорит Excel, чтобы отобразить число, введенное вами в ячейку, в качестве даты.

Шаг 2

Введите любую дату в ячейку, которую вы только что отформатировали, в этом формате «м / д / гггг». Например, введите «01.01.2001».

Шаг 3

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

Шаг 4

Нажмите на ячейку, которая находится между двумя ячейками, содержащими ваши даты, затем нажмите знак «=», чтобы сообщить Excel, что вы вводите формулу вместо числа или текста. Щелкните по ячейке с датой окончания, нажмите «-», чтобы указать расчет вычитания.

Шаг 5

Нажмите дату начала, затем нажмите «Ввод». Excel введет количество дней между начальной и конечной датами.

Установить дату начала и продолжительность

Шаг 1

Щелкните ячейку в электронной таблице, затем щелкните элемент «Короткая дата» на вкладке «Главная» на панели «Числа».

Шаг 2

Введите дату начала вашего диапазона. Например, введите «01.01.2001».

Шаг 3

Щелкните ячейку справа от даты начала, а затем введите количество дней, которое вы хотите для своего диапазона дат. Например, если ваш диапазон охватывает три дня, введите «3» в ячейку.

Шаг 4

Используйте инструкции из шагов 1 для форматирования следующей ячейки справа в качестве короткой даты. Нажмите «=», чтобы указать формулу, затем щелкните ячейку даты начала, а затем нажмите «+».

Шаг 5

Нажмите на ячейку слева, затем нажмите «Enter». Excel вычислит дату окончания вашего диапазона, добавив дату начала к числу в ячейке слева, которое является числом дней в вашем диапазоне.

Как рассчитать диапазон Wi-Fi

Что такое диапазон дат. Смотреть фото Что такое диапазон дат. Смотреть картинку Что такое диапазон дат. Картинка про Что такое диапазон дат. Фото Что такое диапазон дат

Как изменить диапазон оси X в диаграммах Excel?

Что такое диапазон дат. Смотреть фото Что такое диапазон дат. Смотреть картинку Что такое диапазон дат. Картинка про Что такое диапазон дат. Фото Что такое диапазон дат

Как рассчитать диапазон в Excel

Что такое диапазон дат. Смотреть фото Что такое диапазон дат. Смотреть картинку Что такое диапазон дат. Картинка про Что такое диапазон дат. Фото Что такое диапазон дат

Функции MIN и MAX в Excel позволяют находить нижние и верхние числа в диапазоне. Вычитание этих цифр возвращает диапазон значений.

Работа с датами и временем в Microsoft Excel (Декабрь 2021).

Источник

Диапазон дат в одной ячейке (в текстовом формате) в EXCEL

history 6 августа 2014 г.

Пусть задана начальная дата (ячейка B7 ) и длительность периода (ячейка B8 ), выведем диапазон дат в одной ячейке в формате 21-25.10.2012 (см. файл примера ).

Это можно сделать с помощью формулы = ТЕКСТ(B7;»дд»)&»-«&ТЕКСТ(B7+B8;»дд.ММ.гггг»)

Совет : О пользовательском формате дат можно прочитать в статье Пользовательский формат ДАТЫ и ВРЕМЕНИ в MS EXCEL

Что такое диапазон дат. Смотреть фото Что такое диапазон дат. Смотреть картинку Что такое диапазон дат. Картинка про Что такое диапазон дат. Фото Что такое диапазон дат

Это решение, однако, не учитывает, что начальная и конечная дата могут принадлежать разным месяцам. В этом случае формула может вернуть, например 21-05.10.2012, что довольно сложно для понимания. Поэтому, изменим формулу: =ТЕКСТ(B7;ЕСЛИ(МЕСЯЦ(B7)-МЕСЯЦ(B7+B8);»дд.ММ»;»дд»))&»-«&ТЕКСТ(B7+B8;»дд.ММ.гггг»)

Что такое диапазон дат. Смотреть фото Что такое диапазон дат. Смотреть картинку Что такое диапазон дат. Картинка про Что такое диапазон дат. Фото Что такое диапазон дат

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

Диапазон с указанием месяца и года

Более простым случаем является вывод начальной даты с указанием месяца и года (что позволяет корректно учесть случай, когда даты принадлежат разным годам). В этом случае нужно использовать формулу = ТЕКСТ(B13;»дд.ММ.гггг»)&»-«&ТЕКСТ(B13+B14;»дд.ММ.гггг»)

Что такое диапазон дат. Смотреть фото Что такое диапазон дат. Смотреть картинку Что такое диапазон дат. Картинка про Что такое диапазон дат. Фото Что такое диапазон дат

Диапазон в пределах 1 месяца

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

= ЕСЛИ(B19=КОНМЕСЯЦА(B19;0);»Последний день месяца»;ТЕКСТ(B19;»дд»)&»-«&ТЕКСТ(B19+МИН(B20;КОНМЕСЯЦА(B19;0)-B19);»дд.ММ.гггг»))

Источник

Как указывать диапазоны дат в интерфейсах?

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

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

Ширина экрана мобильного устройства чаще всего небольшая, поэтому есть необходимость сокращать. При этом, кроме технической ширины, хочется учитывать еще и эстетическое восприятие и не грузить интерфейс лишними сущностями. Аналогичная ситуация с инпутами в вебе. Усугубляется ситуация на мелких устройствах типа часов и разного рода небольших дисплеях.

Например, получаются вот такие странные штуки:

Что такое диапазон дат. Смотреть фото Что такое диапазон дат. Смотреть картинку Что такое диапазон дат. Картинка про Что такое диапазон дат. Фото Что такое диапазон дат

Цифрами или текстом?

Казалось бы, всем просто прочитать диапазон 10.07 — 12.07, и никаких проблем. Но мы часто начинаем считать в уме, какой это месяц — июнь или июль? А если написать словами, то будет удобнее прочитать, и понятнее: «10 июля — 12 июля». Но здесь у нас включается диапазон внутри одного месяца, и если экранчик маленький, то хочется этот диапазон сократить. Цифрами короче, но не так удобно, поэтому приходит в голову общую часть (месяц) указать один раз: «10-12 июля». И понятно, и компактно. Ещё из аргументов против: если каждый раз выводить разные заголовки, а не одного формата, это может смутить пользователя. Отвечу так: решение зависит от того, насколько человечным хочется получить интерфейс. Чем более человечным (до формата общения между живыми людьми), тем более нормальными будут выглядеть разные оповещения. Это каждый продуктолог должен решить для себя самостоятельно.

Ещё есть чисто ментальные состояния восприятия типа «в этом году» против «в прошлом году», «сейчас» против «тогда», «сегодня» против «вчера»/«в прошлом» и т.п. Их можно учитывать для того, чтобы опускать понятные из контекста ситуации: например, текущий год.

Допустим две пользовательских ситуации:

DD.MM.YYYY — DD.MM.YYYY.

Технически диапазон дат мог бы быть записан так: DD.MM.YYYY — DD.MM.YYYY. Всё понятно.

Когда приходим к реальным датам, может получиться следующее:

!То есть диапазон в один целый (или текущий) день или целые неделю/месяц/квартал/полугодие/год/десятилетие/век логично сокращать до одной сущности (сомнения вызывают десятилетия и недели — номерами календарных недель всё-таки редко думают).

Другая история — пересечения. Там тоже всё понятно: общее самое большое значение — выносим правее (1-3 марта, 3 марта — 15 апреля 2015 г. и т.п.). Но 2010-15 гг. (тысячелетие всё-таки слева).

Чувствуется, что можно опускать значения типа текущего (нынешнего) года. Например, если сегодня — 15 января 2016 г., то при выбранном, например, 10 января, писать просто «10 января». Месяц опускать как-то рука не поднимается 🙂

Табличка v1.0: попытка систематизации этих самых сокращений

Что такое диапазон дат. Смотреть фото Что такое диапазон дат. Смотреть картинку Что такое диапазон дат. Картинка про Что такое диапазон дат. Фото Что такое диапазон дат

Я рассмотрел варианты для дней (недели пока пропустил, но в плане есть), месяцев, кварталов, полугодий и лет, они в табличке.

О том, что и как грамотно:

Кстати про «сегодня» и «вчера» в ленте

Похожим образом к указанию конкретных дат подходят в почте Эппла (и наверняка много где ещё, потому что это нормально воспринимается): когда пришло письмо? — сегодня, вчера, а если «сегодня» = «пятница», то «позавчера» и до начала недели покажут как «среда», «вторник», «понедельник», а дальше уже по цифровым датам. Этакий условный принцип затухания (логично предположить «в прошлом месяце», «в прошлом году», «в десятилетии», «век», «тысячелетие» — но это исследование оставим пока что за скобками). Сначала — по-человечески, потом, чем дальше в прошлое — больше цифрами. Это надо отдельно расписать для лент и подобных записей.

Ещё интересные моменты, на которые обратили внимание коллеги

Что такое «за последние сутки»? — встречается такая формулировка в приложениях. Ещё говорят «последние 24 часа». В зависимости от, например, биллинга, это могут быть 24 часа назад от текущего момента, а могут быть календарные сутки, которые начинаются в 00:00. Мне кажется, что если система считает именно по 24 часа назад от текущего момента, то это необходимо указывать специально и однозначно.

Если расширить тему, то в этом контексте можно учитывать и часовые пояса. Актуально для активных путешественников. Например, я — в США, разница с Москвой от 8 часов. Если я приехал недели на две, детализация выписки внутри приложения мне будет интересна по локальному времени, независимо от того, по какому часовому поясу считает то же московское банковское приложение. Ведь на часах телефона у меня скорее всего автоматически проставится локальное время (например, Нью-Йорк).

Интервалы «с — по» и «с — до». Речь о том, когда включать фразу «включительно», и надо ли в пределах одного интерфейса использовать разные подходы (когда в диапазон включен последний день или нет). Мне представляется, что разные подходы применять нельзя — должен быть один. Представляется, что по умолчанию логично использовать «включительно» (при этом нет необходимости везде писать само слово «включительно»).

Источник

Правильная работа с датой и временем

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

Логически можно выделить следующие типы значений, относящиеся к дате и времени:

Дата и время

Допустим, лаборатория, которая собрала материал для анализа находится в часовом поясе +2, а центральный филиал, в котором следят за своевременным выполнением анализов — в поясе +1. Время, приведенное в примере, было отмечено при сборе материала первой лабораторией. Возникает вопрос — какую цифру времени должен увидеть центральный офис? Очевидно, что программное обеспечение центрального офиса должно показывать 15 января 2014 года 12:17:15 — на час меньше, так как по их часам событие произошло именно в этот момент.

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

Правила перевода на летнее/зимнее время — вещь, строго говоря, переменная. Разные страны могут иногда менять свои правила, и эти изменения должны быть заблаговременно заложены в обновления системы. На практике неоднократно встречались ситуации некорректной работы этого механизма, которые по итогу решались установкой хотфиксов либо операционной системы, либо используемых сторонних библиотек. Вероятность повторения тех же проблем — не нулевая, поэтому лучше иметь способ гарантированно их избежать.

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

Рассмотрим, что нам дает такое правило:

Как видно из вышесказанного, не существует единого подхода, покрывающего 100% случаев. Поэтому сперва нужно четко понять из требований, какие из упомянутых выше ситуаций будут в вашей системе. С большой вероятностью, все ограничится первым предложенным подходом с хранением в UTC. Ну а описанные исключительные ситуации его не отменяют, а просто добавляют другие решения для частных случаев.

Дата без времени

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

Есть несколько способов избежать преобразование для дат:

Временной интервал

С хранением и обработкой временных интервалов все просто: их величина не зависит от часового пояса, поэтому никаких особых рекомендаций здесь нет. Их можно хранить и передавать как количество единиц времени (целое или с плавающей точкой, в зависимости от необходимой точности). Если важна секундная точность — то как количество секунд, если миллисекундная — то как количество миллисекунд и т.д.

А вот вычисление интервала может иметь подводные камни. Предположим, у нас есть типовой код на C#, который считает интервал времени между двумя событиями:

На первый взгляд, никаких проблем здесь нет, но это не так. Во-первых, могут возникнуть проблемы с юнит-тестированием такого кода, но об этом мы поговорим чуть позже. Во-вторых, давайте представим, что начальный момент времени пришелся на зимнее время, а конечный — на летнее (например, таким образом замеряется количество рабочих часов, а у работников есть ночная смена).

Предположим, код работает в часовом поясе, в котором переход на летнее время в 2016 году происходит в ночь 27 марта, и смоделируем описанную выше ситуацию:

Этот код даст в результате 9 часов, хотя фактически между этими моментами прошло 8 часов. В этом легко убедиться, изменив код вот таким образом:

Отсюда вывод — любые арифметические операции с датой и временем нужно делать, используя либо UTC значения, либо типы, хранящие информацию о часовом поясе. А потом обратно переводить в локальные в случае надобности. С этой точки зрения, изначальный пример легко исправить, поменяв DateTime.Now на DateTime.UtcNow.

Этот нюанс не зависит от конкретной платформы или языка. Вот аналогичный код на Java, имеющий тот же недостаток:

Исправляется он также легко — например, использованием ZonedDateTime вместо LocalDateTime.

Расписание запланированных событий

Расписание запланированных событий – более сложная ситуация. Универсального типа, позволяющего хранить расписания, в стандартных библиотеках нет. Но такая задача возникает не так уж редко, поэтому готовые решения можно найти без проблем. Хорошим примером является формат планировщика cron, который в том или ином виде используется другими решениями, например, Quartz: http://quartz-scheduler.org/api/2.2.0/org/quartz/CronExpression.html. Он покрывает практически все нужды составления расписаний, включая варианты типа «вторая пятница месяца».

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

Общие рекомендации

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

Во-первых, по поводу использования статических членов класса для получения текущего времени — DateTime.UtcNow, ZonedDateTime.now() и т.д. Как и было сказано, использование их напрямую в коде может серьезно усложнить юнит-тестирование, так как без специальных мок фреймворков подменить текущее время не получится. Поэтому, если вы планируете писать юнит тесты, следует позаботиться о том, чтобы реализацию таких методов можно было подменить. Для решения этой задачи есть как минимум два способа:

Второй нюанс с получением текущего времени — это то, что клиенту доверять нельзя. Текущее время на компьютерах пользователей может очень сильно отличаться от реального, и если есть логика, завязанная на него, то эта разница может все испортить. Все места, где есть необходимость получать текущее время, должны по возможности выполняться на стороне сервера. И, как уже было сказано ранее, все арифметические операции с временем должны производиться либо в UTC значениях, либо с использованием типов, хранящих смещение часового пояса.

И еще одна вещь, которую хотелось упомянуть — это стандарт ISO 8601, описывающий формат даты и времени для обмена информацией. В частности, строковое представление даты и времени, используемое при сериализации, должно соответствовать этому стандарту для предотвращения потенциальных проблем с совместимостью. На практике крайне редко приходится самому реализовывать форматирование, поэтому сам стандарт может быть полезен в основном в ознакомительных целях.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *