Как сделать таймер обратного отсчета в excel?

Microsoft Excel

трюки • приёмы • решения

Как в VBA сделать секундомер и вывести информацию о текущем времени

Перейдем теперь к следующей, уже более сложной разработке. Итак, на рабочем листе необходимо создать интерфейс, показанный на рис. 1.37. Здесь обозначения Часы, Минуты и Секунды представляют элементы управления «Надпись» и являются просто поясняющими надписями рядом с соответствующими текстовыми окнами, в которые выводится информация о времени. Вывод этих сведений инициирует щелчок на кнопке Отобразить время. Фактически таким образом мы реализуем на рабочем листе вариант электронных часов. Фрагмент Секундомер (это слово набрано просто в ячейке на листе) позволяет в тех же окнах реализовать функции секундомера. Работа секундомера запускается по нажатию кнопки Старт. В этом случае текстовое окно для отображения текущего часа очищается, а информация в окнах, отводимых для минут и секунд, начинает обновляться.

Если пользователю требуется остановить отсчет времени, то он должен щелкнуть на кнопке Стоп, после чего обновление времени останавливается. В табл. 1.1 указаны имена и тины объектов, расположенных на рис. 1.37.

Таблица 1.1. Имена объектов на рис.1.37

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

Рис. 1.37. Реализация часов и секундомера

В редакторе Visual Basic существует общая область, где можно описывать переменные (рис. 1.38), которые должны быть известны внутри нескольких процедур. Строка программы в окне, представленном на рис. 1.38, означает следующее:

  • Dim определить (это ключевое слово Visual Basic);
  • Flag имя переменной;
  • As Integer определение данной переменной как целого числа (значениями переменной могут быть только целые числа).

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

Рис. 1.38. Определение переменной в общей области

После такого вступительного комментария можно привести процедуру обработки щелчка на кнопке Отобразить время (листинг 1.18).

‘ Листинг 1.18. Процедура, выполняемая по щелчку на кнопке Отобразить время Private Sub Vrema_Click() Flag = 0 While Flag = 0 Th.Text = Format(Now(), «hh») Tm.Text = Format(Now(), «nn») Ts.Text = Format(Now(), «ss») DoEvents Wend End Sub

Теперь разберем строки этой процедуры. Во-первых, здесь используется оператор цикла, который начинается со строки While Flag = 0 и заканчивается строкой Wend . После ключевого слова While располагается условие, и если оно выполняется, то выполняются все строки программы вплоть до Wend . Затем управление опять передается на строку While , и если условие вновь выполняется, то все повторяется. Если же условие не выполняется, то управление передается на первую строку после Wend .

В строке Th.Text = Format(Now(), «hh») используются несколько внутренних функций Visual Basic. Так, функция Now() не требует входных параметров и просто выдаст текущую дату и время. В свою очередь, другая внутренняя функция, Format , позволяет задать определенный формат для выводимой информации. Если нам необходимо выделить только текущий час, то в качестве второго аргумента функции Format мы должны задать «hh». Соответственно в следующих двух строках из текущего времени выделяются минуты и секунды.

Далее по тексту располагается внутренняя процедура Visual Basic DoEvents , которая позволяет переключаться из выполняемого программного кода на обработку других событий. В данном случае нам необходимо по щелчку на кнопке Стоп установить значение переменной Flag в 1, что реализуется в процедуре, приведенной в листинге 1.19.

‘ Листинг 1.19. Процедура обработки щелчка на кнопке Стоп Private Sub StopSec_Click() Flag = 1 End Sub

Таким образом, мы обеспечили вывод текущего времени и его остановку. Что касается остановки, то она скорее требуется для секундомера. И теперь наша задача заключается в реализации его функциональности. В листинге 1.20 приведена процедура, которая выполняется по щелчку на кнопке Старт, что позволяет включить секундомер.

‘ Листинг 1.20. Обработка щелчка на кнопке Старт Private Sub Start_Click() Th.Text = «» Tm.Text = 0 Ts.Text = 0 Flag В = 0 ‘ Получение значения секунд Sec = Format(Now(), «ss») ‘ В переменной Shet организуем счетчик Shet = 0 While Flag = 0 Sec2 = Format(Now(), «ss») If Sec <> Sec2 Then ‘ При изменении секунд Shet = Shet + 1 Sec = Sec2 ‘ Получение минут ChetMins = Shet 60 ‘ Выделение секунд ChetSecs = Shet — ChetMins * 60 Tm.Text = ChetMins Ts.Text = ChetSecs End If DoEvents Wend End Sub

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

Рис. 1.39. Пример работы секундомера

Познакомимся на практике в рамках данного примера со свойством, которое определяет доступ к элементам управления. Как мы уже знаем, у элементов управления имеется свойство Enabled. Когда для этого свойства установлено значение True, доступ к данному элементу разрешен, а в противном случае (при значении False) доступ запрещен.

Изменим предыдущую разработку следующим образом. В окне свойств для кнопок Старт и Отобразить время значение свойства Enabled установим True, а для кнопки Стоп в качестве значения этого свойства выберем False. В результате в начале работы для действий пользователя доступна кнопка, позволяющая отобразить время, и кнопка секундомера, а кнопка Стоп недоступна. Теперь при щелчке на кнопке Старт доступ к кнопке Стоп должен разрешаться, кнопка Старт должна стать недоступной. В листинге 1.21 показана модифицированная процедура обработки щелчка па кнопке Стоп, которая затрагивает свойства двух кнопок, относящихся к секундомеру.

‘ Листинг 1.21. Модифицированная процедура, ‘ выполняемая по щелчку на кнопке Стоп Private Sub StopSec_Click() Flag = 1 StopSec.Enabled = False Start.Enabled = True End Sub

Читать еще:  Как в excel сделать поиск одинаковых значений в столбцах?

Также требуются небольшие изменения в процедуре обработки щелчка на кнопке Старт. Ее текст представлен в листинге 1.22.

‘ Листинг 1.22. Измененная процедура, ‘ выполняемая по щелчку на кнопке Старт Private Sub Start_Click() Th.Text = «» Tm.Text = 0 Ts.Text = 0 Flag = 0 Sec = Format(Now(), «ss») Shet = 0 StopSec.Enabled = True Start.Enabled = False While Flag = 0 Sec2 = Format(Now(), «ss») If Sec <> Sec2 Then Shet = Shet + 1 Sec = Sec2 ChetMins = Shet 60 ChetSecs = Shet — ChetMins * 60 Tm.Text = ChetMins Ts.Text = ChetSecs End If DoEvents Wend End Sub

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

Как сделать таймер обратного отсчета в excel?

30 07 2015 Дмитрий Воробьев 17 комментариев

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

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

Итак, давайте приступим. Для начала зайдем на MegaTimer.

  1. Вот ссылочка: MegaTimer.ru
  2. На главной странице вы можете выбрать основные настройки для будущего счетчика, а именно: цвет фона и формат времени, отметив галочками соответствующие пункты: дни, часы, минуты и секунды.
  3. Прямо по центру страницы будет отображаться ваш таймер в том виде, как он будет выглядеть и на вашем сайте, все изменения будут отображаться мгновенно при регулировке настроек.

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

На первом шаге выбираем тип таймера из нескольких вариантов:

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

  1. на промежуток времени, выбрав начало отсчета либо с момента первого посещения клиентом вашего сайта или прямо сейчас, чтобы отсчет пошел именно с момента открытия странички

  1. цикличный таймер будет запускаться автоматически в указанное вами время, можно задать время и день недели начала, а также продолжительность отсчета.
  • Кроме того, для таймеров до определенной даты и циклического типа можно выбрать вариант местного времени для пользователя, либо привязать счетчик к какому-либо часовому поясу.
  • Во вкладке «Дизайн» вы можете выбрать счетчик наиболее подходящий по внешнему виду для вашего сайта, для этого можете воспользоваться фильтрами, либо просто выбрать понравившийся таймер, нажав на него левой кнопкой мыши.

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

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

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

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

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

Спасибо, что поделились статьей в социальных сетях!

sitesaid.ru

В Visual Basic существует элемент управления, который обрабатывает данные системных часов. Этот объект называется таймером.

Его можно использовать для выполнения определенных действий через заданный интервал времени. Для размещения в форме таймера используется кнопка Timer (Таймер) на панели элементов управления формы.

Объект данного типа обладает следующими свойствами:

Таймер обратного отсчета в 18 строк кода javascript.

Бывает, что вам для чего-то нужен таймер обратного отсчета, в интернете есть много решений, однако они либо очень громоздкие, либо имеют зависимости от других библиотек. Сегодня мы рассмотрим, как сделать таймер обратного отсчета на javascript в 18 строк кода.

  • Установите правильную дату окончания
  • Высчитайте оставшееся время
  • Приведите дату к удобному формату
  • Выведите данные таймера, как многоразовый объект
  • Отобразите часы на странице и остановите их, когда они достигнут нуля

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

Во-первых, вам нужно установить правильную дату окончания. Это будет строка в любом из форматов, которые понимает Date.parse() метод. К примеру:

var deadline = ‘2015-12-31’;

var deadline = ’31/12/2015′;

Или длинный формат

var deadline = ‘December 31 2015’;

Каждый из этих форматов позволяет вам установить точное время(в часах, минутах, секундах) и временную зону. Например:

var deadline = ‘December 31 2015 23:59:59 GMT+02:00’;

Высчитайте оставшееся время

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

function getTimeRemaining(endtime) <
var t = Date.parse(endtime) — Date.parse(new Date());
var seconds = Math.floor( (t/1000) % 60 );
var minutes = Math.floor( (t/1000/60) % 60 );
var hours = Math.floor( (t/(1000*60*60)) % 24 );
var days = Math.floor( t/(1000*60*60*24) );
return <
‘total’: t,
‘days’: days,
‘hours’: hours,
‘minutes’: minutes,
‘seconds’: seconds
>;
>

Для начала мы создаем переменную t, чтобы хранить оставшееся время. Date.parse() метод встроен в javascript и позволяет сконвертировать строку со временем в значение в миллисекундах. Это позволит нам вычитать одно время от другого и получать разницу между ними.

Читать еще:  Как сделать чтобы в таблице excel не скрывались верхний столбец?

var t = Date.parse(endtime) — Date.parse(new Date());

Приведите дату к удобному формату

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

var seconds = Math.floor( (t/1000) % 60 );

Разберемся, что здесь происходит.

  • Делим миллисекунды на 1000, чтобы перевести их в секунды
  • Делим общее число секунд на 60 и сохраняем остаток — вам не нужны все секунды, только те, что остались после того, как минуты были подсчитаны
  • Округлите вниз до ближайшего целого значения, потому что вам нужны полные секунды, а не их фракции

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

Выведите данные таймера, как многоразовый объект

Когда часы, минуты и секунды готовы, нам нужно вернуть их как многоразовый объект.

return <
‘total’: t,
‘days’: days,
‘hours’: hours,
‘minutes’: minutes,
‘seconds’: seconds
>;

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

Отобразите часы на странице и остановите их, когда они достигнут нуля

Сейчас у нас есть функция, которая возвращает нам оставшиеся дни, часы, минуты и секунды. Мы можем строить наш таймер. Во-первых, создайте следующую html структуру для часов:

Затем напишите функцию, которая будет отображать данные внутри нашего div’а:

function initializeClock(id, endtime) <
var clock = document.getElementById(id);
var timeinterval = setInterval(function() <
var t = getTimeRemaining(endtime);
clock.innerHTML = ‘days: ‘ + t.days + ‘
‘ +
‘hours: ‘+ t.hours + ‘
‘ +
‘minutes: ‘ + t.minutes + ‘
‘ +
‘seconds: ‘ + t.seconds;
if(t.total

Эта функция принимает два параметра: id элемента, который будет содержать наши часы, и конечное время счетчика. Внутри функции мы объявим переменную clock и будем использовать ее, чтобы хранить ссылку на наш блок с часами, так что нам не нужно запрашивать DOM.

Дальше мы будем использовать setInterval, чтобы запускать анонимную функцию каждую секунду, которая будет делать следующее:

  • Высчитывать оставшееся время
  • Выводить оставшееся время в наш div
  • Если оставшееся время = 0, останавливать часы

Единственное, что осталось, запустить часы следующим образом:

Поздравляю! Теперь у вас есть простой таймер обратного отсчета всего в 18 строк javascript кода.

Подготовьте ваши часы для отображения

До стилизации нам будет нужно немного усовершенствовать некоторые вещи.

  • Убрать начальную задержку, чтобы таймер показывался незамедлительно
  • Сделать скрипт часов более эффективным, чтобы не приходилось непрерывно перестраивать все часы
  • Добавить нули по желанию

Убираем начальную задержку

В часах мы используем setInterval, чтобы обновлять отображение каждую секунду. Чаще всего это нормально, кроме начала, где присутствует 1с задержка. Чтобы это исправить, нам нужно обновлять часы один раз до того, как setInterval запускается.

Чтобы это сделать, давайте переместим анонимную функцию, которую мы передаем в setInterval(ту, которая обновляет часы каждую секунду) в собственную отдельную функцию, которую назовем updateClock. Вызовите эту функцию однажды вне setInterval и затем вызовите ее снова внутри setInterval. Таким образом, часы будут показываться без задержки.

В вашем javascript замените это:

var timeinterval = setInterval(function()< . >,1000);

function updateClock() <
var t = getTimeRemaining(endtime);
clock.innerHTML = ‘days: ‘ + t.days + ‘
‘ +
‘hours: ‘+ t.hours + ‘
‘ +
‘minutes: ‘ + t.minutes + ‘
‘ +
‘seconds: ‘ + t.seconds;
if(t.total

Делаем скрипт более эффективным

Чтобы сделать скрипт более эффективным, нам нужно обновлять не все часы, а только цифры. Для этого поместим каждое число в тег span и будем обновлять только этот контент.

Теперь сделаем ссылку на эти элементы. Добавьте следующий код прямо после определения переменной clock.

var daysSpan = clock.querySelector(‘.days’);
var hoursSpan = clock.querySelector(‘.hours’);
var minutesSpan = clock.querySelector(‘.minutes’);
var secondsSpan = clock.querySelector(‘.seconds’);

Дальше нам нужно изменить функцию updateClock, чтобы обновить только числа, а не все часы. Новый код будет выглядеть так:

function updateClock() <
var t = getTimeRemaining(endtime);

daysSpan.innerHTML = t.days;
hoursSpan.innerHTML = t.hours;
minutesSpan.innerHTML = t.minutes;
secondsSpan.innerHTML = t.seconds;

Добавляем ведущие нули

Если вам нужны ведующие нули, вы можете заменить код такого вида:

secondsSpan.innerHTML = (‘0’ + t.seconds).slice(-2);

Заключение

Мы рассмотрели, как сделать простой таймер обратного отсчета на javascript. Все, что вам осталось, это добавить стили. Спасибо за внимание!

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

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

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 2 ):

    18 строк кода Казалось бы, что может быть проще, ведь это блог для чайников. Выложи 2 файла в исходниках, прокомментируй каждую строку и будем вам вам счастье. Но нет, стиль изложения как самого первого урока. Попрыгунчики — сначала мы сделаем так, потом вот так, ну а для того, чтобы выглядело все прилично еще вот так. В итоге что мы имеем? Груду никак не с чем не связанных скриптов, из которых чайнику для того, что бы проверить работоспособность кода надо потратить немало времени. Может быть потому и комментариев 0? Имхо

    Сам скрипт заработал но в статье нет стилей. Также красиво как на картинке не получилось сделать. Искал другие решения и нашел классный сервис генерации gif таймеров обратного отсчета https://countdownmail.com , он типа для емайлов на на сайт тоже можно поставить.

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2020 Русаков Михаил Юрьевич. Все права защищены.

    Трюк №38. Трюки с возможностями даты и времени в Excel

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

    По умолчанию в Excel используется система дат 1900. Это означает, что числовое значение, лежащее в основе даты 1 января 1900 года, равно 1, у 2 января 1900 года — 2 и так далее. В Excel эти значения называются последовательными значениями, позволяющими использовать даты в вычислениях. Формат времени очень похож, но Excel обрабатывает время как десятичные доли, где 1 — это 24:00, или 00:00. Числовое значение 18:00 (в русской версии) равно 0,75, так как это три четверти от 24 часов.

    Читать еще:  Как сделать excel 2013 по умолчанию?

    Чтобы узнать числовое значение даты или времени, отформатируйте ячейку, содержащую значение, форматом Общий (General). Например, у даты и времени (в английской версии) 3/July/2002 3:00:00 РМ числовое значение 37440.625, где число после десятичной точки представляет время, а 37440 — последовательное значение для 3 июля 2002 года.

    Сложение за пределами 24 часов

    При помощи функции СУММ (SUM) или просто знака плюс время можно складывать. Таким образом, =SUM(A1:A5) даст нам общее количество часов в диапазоне А1 :А5, если эти ячейки содержат допустимые значения времени. Однако если Excel не дано никаких специальных указаний, он не складывает время за пределами 24 часов. Это происходит потому, что, когда значение времени превышает 24 часа (настоящее значение равно 1), оно переходит в новый день и отсчет начинается заново. Чтобы заставить Excel не переходить в новый день после каждых 24 часов, можно использовать формат ячеек 37:30:55 или пользовательский формат [ч]:MM:cc([h]:mm:ss).

    Схожий формат можно применять для получения общего количества минут или секунд, Чтобы узнать полное количество минут, когда время равно 24:00, отформатируйте ячейку как [м] ([m]), и вы получите 1440. Чтобы получить общее количество секунд, используйте пользовательский формат [с] ([s]) и вы получите 86400.

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

    Если вы хотите использовать фактические значения времени в других вычислениях, помните о следующих «магических» числах: 60 — 60 минут или 60 секунд; 3600 — 60 секунд * 60 минут; 24 — 24 часа; 1440 — 60 минут * 24 часа; 86400 — 24 часа * 60 минут * 60 секунд.

    Вооружившись этими магическими числами и предыдущей информацией, намного проще манипулировать временем и датами. Взглянем на следующие примеры и посмотрим, что они обозначают (предполагаем, что время записано в ячейке А1). Если у вас есть число 5.50 и вы хотите получить 5:30 или 5:30 a.m., используйте следующую формулу: =А1/24. Необходимо указать подходящий формат!

    Если время должно выглядеть как 17:30 или 5:30 p.m., используйте следующую формулу: =(А1/24)+0.5 .

    Чтобы получить противоположное значение, то есть десятичное время из настоящего времени, воспользуйтесь формулой =А1*24 .

    Если в ячейке содержится настоящая дата и настоящее время (например, 22/Jan/03 15:36), а вы хотите получить только дату, используйте следующую формулу: =INT(A1) , в русской версии Excel =ЦЕЛОЕ(А1) .

    Чтобы получить только время: =A1-INT(A1) , в русской версии Excel =А1-ЦЕЛОЕ(А1) или =MOO(A1;1) , в русской версии Excel =OCTAT(A1;1) . И вновь необходим подходящий формат.

    Чтобы найти разность между двумя датами, воспользуйтесь формулой =DATEDIF(A1;A2;»d») , где А1 — это более ранняя дата. Получим количество дней между двумя датами. В качестве результата можно также указать «m» или «у», то есть месяцы или годы. (В действительности функция DATEDIF в Excel 97 не документирована и является функцией Lotus 123.)

    Если более ранние дата или время неизвестны, помогут функции МИН (MIN) и МАКС (МАХ). Например, чтобы наверняка получить правильный результат, можно воспользоваться такой функцией: =DATEDIF(MIN(Al;A2); MAX(Al,A2),»d») , в русской версии Excel: =DATEDIF(MИН(Al;A2);MAKC(A1;A2);»d») .

    При работе со временем может также понадобиться учитывать начальное и конечное время. Например, начальное время — это 8:50 p.m. в ячейке А1, а конечное время — 9:50 a.m. в ячейке А2. Если вы вычтете начальное время из конечного ( =А2-А1 ), получите в ответе ######, так как Excel по умолчанию не работает с отрицательными значениями времени. Подробнее о том, как работать с отрицательными значениями времени, — в разделе «Трюк № 74. Отображение отрицательных значений времени».

    Иначе это ограничение можно обойти двумя способами, гарантировав положительный результат: =MAX(A1;A2)-MIN(A1;A2) , в русской версии Excel =МАКС(А1;А2)-МИН(А1;А2) или =A1-A2+IF(A1>A2,1) , в русской версии Excel =А1-А2+ЕСЛИ(А1>А2;1) .

    Можно также приказать Excel прибавить любое количество дней, месяцев или лет к любой дате: =DATE(YEAR(A1)+value1;MONTH(Al)+value2;DAY(Al)+value3) , в русской версии Excel =ДАТА(ГОД(А1)+value1;,МЕСЯЦ(А1)+value2;ДЕНЬ(А1)+value3) .

    Чтобы добавить один месяц к дате в ячейке А1, воспользуйтесь формулой =DATE(YEAR(A1);MONTH(A1)+1;DAY(AD) , в русской версии Excel =ДАТА(ГОД(А1);МЕСЯЦ(А1)+1;ДЕНЬ(А1)) .

    В Excel реализовано и несколько дополнительных функций, являющихся частью надстройки Analysis ToolPak. Выберите команду Файл → Надстройки (File → Add-Ins) и установите флажок Пакет анализа (Analysis ToolPak) и, если появится сообщение с вопросом, нужно ли установить эту надстройку, ответьте согласием. Станут доступны дополнительные функции, такие, как ДАТАМЕС (EDATE), КОНЕЦМЕСЯЦА (EMONTH), ЧИСТРАБДНИ (NETWORKDAYS) и WEEKNUM. Все эти функции можно найти в категории Дата и время (Date & Time) диалогового окна мастера функций. Их легко применять, сложнее узнать, что эти функции существуют, и привлечь их к делу.

    Настоящие даты и время

    Иногда в таблицах с импортированными данными (или данными, введенными неправильно) даты и время отображаются как текст, а не как настоящие числа. Это можно легко распознать, немного расширив столбцы, выделив столбец, выбрав команду Главная → Ячейки → Выравнивание (Home → Cells → Alignment) и для параметра По горизонтали (Horizontal) выбрав значение По значению (General) (это формат ячеек по умолчанию). Щелкните кнопку ОК и внимательно просмотрите даты и время. Если какие-либо значения не выровнены по правому краю, Excel не считает их датами.

    Чтобы исправить эту ошибку, сначала скопируйте любую пустую ячейку, затем выделите столбец и отформатируйте его, выбрав любой формат даты или времени. Не снимая выделение столбца, выберите команду Главная → Специальная вставка → Значение → OK (Home → Paste Special → Value → Add).Tenepb Excel будет преобразовывать все текстовые даты и время в настоящие даты и время. Возможно, вам придется еще раз изменить форматирование. Еще один простой способ — ссылаться на ячейки так: =А1+0 или =А1*1.

    Ошибка даты?

    Excel ошибочно предполагает, что 1900 год был високосным годом (Добавим, он был последним годом XIX века, а не первым XX). Это означает, что внутренняя система дат Excel считает, что существовал день 29 февраля 1900 года, тогда как его не было! Самое невероятное — Microsoft сделала это намеренно, по крайней мере, они так утверждают.

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