В некоторых случаях, если у вас есть конкретная дата начала и дата окончания, вам может потребоваться перечислить все даты между этими двумя заданными датами в Excel. Теперь в этом руководстве рассказывается о методах перечисления всех дат между двумя датами в Excel.
Список всех дат между двумя датами по формулам
Перечислить все даты между двумя датами по VBA
Перечислите все даты между двумя датами по Kutools for Excel
Здесь я представляю формулы, которые могут быстро перечислить все даты между двумя заданными датами для вас в Excel.
1. Введите даты начала и окончания в две ячейки, здесь я ввожу их в ячейки A1 и A2. Смотрите скриншот:
2. Затем перейдите в ячейку C1 и введите эту формулу. = A1 + 1 в него, затем нажмите Enter ключ. Смотрите скриншот:
3. Затем в ячейке C2 введите эту формулу =IF($A$1+ROW(A1)>=$A$2-1,»»,C1+1) в него, затем перетащите дескриптор автозаполнения вниз к ячейкам, пока не появится пустая ячейка. Смотрите скриншоты:
Затем вы можете увидеть, что все даты между двумя заданными датами перечислены в столбце.
Примечание:
В приведенных выше формулах A1 — это дата начала, A2 — дата окончания, а C1 — первая дата в диапазоне дат.
Если вас интересует код макроса, вы можете использовать приведенный ниже VBA, чтобы перечислить все даты между двумя заданными датами в Excel.
1. Введите дату начала и дату окончания в две ячейки, здесь я ввожу ячейки A1 и B1. Смотрите скриншот:
2. Нажмите Alt + F11 ключи для открытия Microsoft Visual Basic для приложений окно.
3. Затем нажмите Вставить > Модули и скопируйте и вставьте ниже кода VBA во всплывающий Модули окно.
VBA: перечислить все даты между двумя датами.
Sub WriteDates()
'Updateby20150305
Dim rng As Range
Dim StartRng As Range
Dim EndRng As Range
Dim OutRng As Range
Dim StartValue As Variant
Dim EndValue As Variant
xTitleId = "KutoolsforExcel"
Set StartRng = Application.Selection
Set StartRng = Application.InputBox("Start Range (single cell):", xTitleId, StartRng.Address, Type: = 8)
Set EndRng = Application.InputBox("End Range (single cell):", xTitleId, Type: = 8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type: = 8)
Set OutRng = OutRng.Range("A1")
StartValue = StartRng.Range("A1").Value
EndValue = EndRng.Range("A1").Value
If EndValue - StartValue <= 0 Then
Exit Sub
End If
ColIndex = 0
For i = StartValue To EndValue
OutRng.Offset(ColIndex, 0) = i
ColIndex = ColIndex + 1
Next
End Sub
4. Нажмите Run or F5 для запуска VBA, и появится диалоговое окно, в котором вы можете выбрать дату начала, затем нажмите OK, затем выберите дату окончания во втором диалоговом окне. Смотрите скриншот:
5. Нажмите OK, затем выберите ячейку для отображения дат и нажмите OK. Теперь вы можете видеть, что перечислены все даты между двумя датами. Смотрите скриншоты:
Внимание: Список, созданный этим VBA, включает дату начала и дату окончания.
Собственно, если вы установили Kutools for Excel — удобный инструмент для добавления, вы также можете использовать Вставить случайные данные Для решения этой проблемы.
После бесплатная установка Kutools for Excel, пожалуйста, сделайте следующее:
1. Выберите столбец, в котором должны быть указаны даты между двумя датами, и щелкните Кутулс > Вставить > Вставить случайные данные. Смотрите скриншот:
2. Затем в Вставить случайные данные диалоговое окно, нажмите Время вкладка, затем выберите начальную и конечную даты из от и To список, затем не забудьте проверить Рабочий день, Выходные и Уникальные ценности флажки. Смотрите скриншот:
3. Нажмите Ok чтобы закрыть диалог, а другой Kutools for Excel появляется диалоговое окно, просто нажмите Да. Затем вы можете увидеть даты между датой начала и датой окончания. Смотрите скриншоты:
4. Теперь вам нужно отсортировать список дат в нужном вам порядке. Нажмите Данные > Сортировать от старых к новым. Затем вы можете увидеть, что даты отсортированы от самой старой к самой новой. Смотрите скриншоты:
Работы С Нами Вставить случайные данные утилита, вы также можете вставить случайное целое число, случайную строку и случайное время и т. д. Щелкните здесь, чтобы узнать больше о вставке случайных данных.
Относительные статьи:
- Создать динамический список имен рабочих листов
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Содержание
- Расчет количества дней
- Способ 1: простое вычисление
- Способ 2: функция РАЗНДАТ
- Способ 3: вычисление количеств рабочих дней
- Вопросы и ответы
Для выполнения определенных задач в Excel нужно определять, сколько дней прошло между некоторыми датами. К счастью, у программы имеются инструменты, которые способны решить данный вопрос. Давайте выясним, какими способами можно посчитать разность дат в Экселе.
Расчет количества дней
Прежде, чем начать работать с датами, нужно отформатировать ячейки под данный формат. В большинстве случаев, при введении комплекта символов, похожего на дату, ячейка сама переформатируется. Но лучше все-таки сделать это вручную, чтобы подстраховать себя от неожиданностей.
- Выделяем пространство листа, на котором вы планируете производить вычисления. Кликаем правой кнопкой мыши по выделению. Активируется контекстное меню. В нём выбираем пункт «Формат ячейки…». Как вариант, можно набрать на клавиатуре сочетание клавиш Ctrl+1.
- Открывается окно форматирования. Если открытие произошло не во вкладке «Число», то следует в неё перейти. В блоке параметров «Числовые форматы» выставляем переключатель в позицию «Дата». В правой части окна выбираем тот тип данных, с которым собираемся работать. После этого, чтобы закрепить изменения, жмем на кнопку «OK».
Теперь все данные, которые будут содержаться в выделенных ячейках, программа будет распознавать как дату.
Способ 1: простое вычисление
Проще всего вычислить разность дней между датами с помощью обычной формулы.
- Записываем в отдельные ячейки отформатированного диапазона даты, разность между которыми нужно вычислить.
- Выделяем ячейку, в которой будет выводиться результат. В ней должен быть установлен общий формат. Последнее условие очень важно, так как, если в этой ячейке стоит формат даты, то в таком случае и результат будет иметь вид «дд.мм.гг» или другой, соответствующий данному формату, что является некорректным итогом расчетов. Текущий формат ячейки или диапазона можно просмотреть, выделив его во вкладке «Главная». В блоке инструментов «Число» находится поле, в котором отображается данный показатель.
Если в нем стоит значение, отличное от «Общий», то в таком случае, как и в предыдущий раз, с помощью контекстного меню запускаем окно форматирования. В нем во вкладке «Число» устанавливаем вид формата «Общий». Жмем на кнопку «OK».
- В отформатированную под общий формат ячейку ставим знак «=». Кликаем по ячейке, в которой расположена более поздняя из двух дат (конечная). Далее жмем на клавиатуре знак «-». После этого выделяем ячейку, в которой содержится более ранняя дата (начальная).
- Чтобы увидеть, сколько времени прошло между этими датами, жмем на кнопку Enter. Результат отобразится в ячейке, которая отформатирована под общий формат.
Способ 2: функция РАЗНДАТ
Для вычисления разности в датах можно также применять специальную функцию РАЗНДАТ. Проблема в том, что в списке Мастера функций её нет, поэтому придется вводить формулу вручную. Её синтаксис выглядит следующим образом:
=РАЗНДАТ(начальная_дата;конечная_дата;единица)
«Единица» — это формат, в котором в выделенную ячейку будет выводиться результат. От того, какой символ будет подставлен в данный параметр, зависит, в каких единицах будет возвращаться итог:
- «y» — полные года;
- «m» — полные месяцы;
- «d» — дни;
- «YM» — разница в месяцах;
- «MD» — разница в днях (месяцы и годы не учитываются);
- «YD» — разница в днях (годы не учитываются).
Так как нам нужно рассчитать разницу в количестве дней между датами, то наиболее оптимальным решением будет применение последнего варианта.
Также нужно обратить внимание, что, в отличие от способа с применением простой формулы, описанного выше, при использовании этой функции на первом месте должна находиться начальная дата, а конечная – на втором. Иначе расчеты будут некорректными.
- Записываем формулу в выбранную ячейку, согласно её синтаксису, описанному выше, и первичным данным в виде начальной и конечной даты.
- Для того, чтобы произвести расчет, жмем кнопку Enter. После этого результат, в виде числа обозначающего количество дней между датами, будет выведен в указанную ячейку.
Способ 3: вычисление количеств рабочих дней
В Экселе также имеется возможность произвести вычисление рабочих дней между двумя датами, то есть, исключая выходные и праздничные. Для этого используется функция ЧИСТРАБНИ. В отличие от предыдущего оператора, она присутствует в списке Мастера функций. Синтаксис у этой функции следующий:
=ЧИСТРАБДНИ(нач_дата;кон_дата;[праздники])
В этой функции основные аргументы, такие же, как и у оператора РАЗНДАТ – начальная и конечная дата. Кроме того, имеется необязательный аргумент «Праздники».
Вместо него следует подставлять даты праздничных нерабочих дней, если таковые имеются за охватываемый период. Функция производит расчет всех дней указанного диапазона, исключая субботы, воскресенья, а также те дни, которые добавлены пользователем в аргумент «Праздники».
- Выделяем ячейку, в которой будет находиться итог вычисления. Кликаем по кнопке «Вставить функцию».
- Открывается Мастер функций. В категории «Полный алфавитный перечень» или «Дата и время» ищем элемент «ЧИСТРАБДНИ». Выделяем его и жмем на кнопку «OK».
- Открывается окно аргументов функции. Вводим в соответствующие поля дату начала и конца периода, а также даты праздничных дней, если таковые имеются. Жмем на кнопку «OK».
После указанных выше манипуляций в предварительно выделенной ячейке отобразится количество рабочих дней за указанный период.
Урок: Мастер функций в Excel
Как видим, программа Excel предоставляет своим пользователем довольно удобный инструментарий для расчета количества дней между двумя датами. При этом, если нужно рассчитать просто разницу в днях, то более оптимальным вариантом будет применение простой формулы вычитания, а не использование функции РАЗНДАТ. А вот если требуется, например, подсчитать количество рабочих дней, то тут на помощь придет функция ЧИСТРАБДНИ. То есть, как всегда, пользователю следует определиться с инструментом выполнения после того, как он поставил конкретную задачу.
Диапазон дат в одной ячейке (в текстовом формате) в MS EXCEL
Смотрите такжеGElenka то .файлик приложите,гдеесли в столбце
: Формула массива решить САМОстоятельно?!.СергейvispateresaПерейдите на вкладку Если день недели об ошибке.. зеленым цветом, а которому ячейка будет
пользователь будет вводить=ЕСЛИ(B19=КОНМЕСЯЦА(B19;0);»Последний день месяца»;ТЕКСТ(B19;»дд»)&»-«&ТЕКСТ(B19+МИН(B20;КОНМЕСЯЦА(B19;0)-B19);»дд.ММ.гггг»))
разным месяцам, тоВыведем диапазон дат (начальная: Добрый день! #ЗНАЧ указанны даты сFreeWedЛогика-то вам понятна:
: не вижу проблем: Вот на этомInput Message не равен 1Примечание:На вкладке не красным, т.к. выделяться если дата данные;В формуле предполагается, что
у начальной даты — конечная дата)Застряла на формулеBAG числами дней 01.02.2014: Еще раз Спасибо
Диапазон с указанием месяца и года
если >= И меняйте условия по примере нужно посчитать(Сообщение для ввода) (воскресенье) и неЧтобы указать подсказкуData правило (Между =СЕГОДНЯ()-14 находится в пределахвызовите инструмент Условное форматирование (Главная/
начальная дата введена будет дополнительно выводиться в одной ячейке Если.: ну вот… и так далее всем большоеV
Диапазон в пределах 1 месяца
датам и условие количество да за или равен 7 (суббота), при вводе или(Данные) нажмите кнопку и =СЕГОДНЯ()+14) у двух недель от Стили/ Условное форматирование/ в ячейку месяц. в формате 21-25.10.2012.Подскажите, пожалуйста, как
BAG
200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СУММЕСЛИ(G:G;»01.02.2014″;AE:AE)Извините за глупое: вариант да или нет апрель 2015Error Allert дата допускается (<> текст для оповещения
excel2.ru
Информирование пользователя MS EXCEL о принадлежности ДАТЫ к определенному диапазону
Data Validation нас идет первым сегодняшнего числа, используйте Управление правилами). ОткроетсяB19
Более простым случаем являетсяПусть задана начальная дата задать диапазон дат: Кажется разобрался, виной- возвращает результат
- сообщение, формула Суммпроизв=СУММПРОИЗВ(($A$2:$A$12=$J13)*($C$2:$C$12=K$12)*$D$2:$D$12)
- если что тоСергей(Сообщение об ошибке), означает не равно).
- об ошибке, перейдите(Проверка данных). и имеет наивысший формулы =СЕГОДНЯ()-14 и
окно Диспетчер правил, а длительность периода введена вывод начальной даты (ячейка с помощью формулы
- спец символы # только для указанной реально самая простая
- если случайно подойдет не то тогда: =СЧЁТЕСЛИМН(C[-2];»нет»;C[-3];»>=»&—«01.04.2015»;C[-3];»8 прально чтобы прописать подсказку, Другими словами, понедельники,
- на вкладку
- Из выпадающего списка приоритет. Для правильного
- =СЕГОДНЯ()+14. условного форматирования;
- в ячейку
- с указанием месяцаB7
- ЕСЛИ в нижнейкитин даты, а постановочные
в данном случае:) два варианта то реальный пример чтоvispateresa всплывающую при вводе вторники, среды, четверги
- Input Message
- Allow отображения поменяем порядок
- ВНИМАНИЕ!нажмите Создать правило;
- B20 и года (что
- ) и длительность периода таблице, что бы
: ога.да еще у символы * ?Михаил С. эта формула не есть что хотите: спасибо огромное! Вы или текст для и пятницы допустимы.(Сообщение для ввода)
(Тип данных) выберите
критериев, используя соответствующиеКогда к диапазонувыберите Форматировать только ячейки,. позволяет корректно учесть (ячейка в расчете использовалась вас формула стоит не работают: Зато и самая подходит. с указанием вручную очень помогли оповещения об ошибке. Воскресенья и субботы или пункт стрелочки. ячеек применяются два которые содержат;Используем Условное форматирование для случай, когда даты
B8 цена 1 или в том жекитин тормозная. Если такаяNic70y результата вычисления формулvispateresaУрок подготовлен для Вас – нет. Поскольку,Error AllertDateВ результате получим вот или более правилв выпадающем списке выберите
подачи сигнала пользователю принадлежат разным годам).
), выведем диапазон дат
2 периода соответственно. столбце,где и считает.о: попробуйте так формула всего одна
- : Формула массиваМВТ: не углядела один командой сайта office-guru.ru прежде чем открыть
- (Сообщение об ошибке).(Дата).
- такую картину. Условного форматирования, приоритет Равно;
excel2.ru
Как отбросить недопустимые даты в Excel
- MS EXCEL о принадлежности
- В этом случае
в одной ячейке_Boroda_ циклической ссылке не200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СУММПРОИЗВ((МЕСЯЦ(G:G)=2)*AE:AE)
- — то не=МИН(ЕСЛИ(K$12=$C$2:$C$12;ЕСЛИ($J13>=$A$2:$A$12;ЕСЛИ($J13 В Excel: Мне кажется, проще
- момент ((( -Источник: http://www.excel-easy.com/examples/reject-invalid-dates.html окно проверки данных,Из выпадающего спискаИз выпадающего списка
Вне диапазона дат
- СОВЕТ: обработки определяется порядкомвведите формулу =СЕГОДНЯ(); даты к определенному нужно использовать формулу в формате 21-25.10.2012
- : Так нужно? предупреждал Эксель?BAG страшно. Если их новее 2003 можно
- сводной таблицей сделать задача должна решатьсяПеревел: Антон Андронов мы выделили диапазонAllowDataЧтобы найти все их перечисления внажав кнопку Формат выберите, диапазону. =ТЕКСТ(B13;»дд.ММ.гггг»)&»-«&ТЕКСТ(B13+B14;»дд.ММ.гггг») (см. файл примера).200?’200px’:»+(this.scrollHeight+5)+’px’);»>=H3*ЕСЛИ((H13>=$D14)*(H13<>=$F14)*(H13
- BAG: не выходит - под сотню, и попробовать СУММЕСЛИМН
и поставить группировку не только для
Автор: Антон АндроновA2:A4(Тип данных) выберите(Значение) выберите пункт ячейки на листе, Диспетчере правил условного например, красный шрифт;Предположим, что пользователь вводитВ формуле предполагается, чтоЭто можно сделать сУж коли нужно
Воскресенья и субботы
- : тоталитарная лажа, в ошибочка #ЗНАЧ! диапазоны большие -FreeWed по годам и 2015 года, а
- vispateresa, Excel автоматически вставил пунктBetween к которым применены форматирования. Правило, расположенноенажмите ОК и вернитесь некие даты событий.
начальная дата введена
помощью формулы =ТЕКСТ(B7;"дд")&"-"&ТЕКСТ(B7+B8;"дд.ММ.гггг")
GElenka оригинале файла какойjakim то почувствуете.: Спасибо большое за месяцам (см. в также для предыдущих: Используется формула СЧЁТЕСЛИМН формулу во всеCustom(Между). правила Условного форматирования необходимо: в списке выше, в Диспетчер правил Требуется, чтобы EXCEL в ячейкуСовет: то глюк, буду:FreeWed помощь, примере) и последующих с двумя условиями.
- ячейки этого диапазона.(Другой).Введите начальную и конечнуюна вкладке Главная в имеет более высокий условного форматирования; автоматически выделял ячейкиB13: О пользовательском формате
- ура, все работает! разбираться.200?’200px’:»+(this.scrollHeight+5)+’px’);»>=SUMPRODUCT((MONTH(A:A)=2)*B:B):Я Самостоятельно пробовал,
FreeWedСергей
По одному изЧтобы проверить это, выделитеВ поле дату, как показано группе Редактирование щелкните приоритет, чем правило,Теперь создадим правило, по следующим образом:, а длительность периода введена дат можно прочитатьСпасибо большое
Получается так чтокитин
Михаил С.,
давно уже ничего
: Добрый день, Уважаемые
office-guru.ru
Как в условие формулы подставить диапазон дат?
: в моем примере условий необходимо из ячейку
F на рисунке ниже, стрелку рядом с расположенное в списке которому ячейка будеткрасным, если дата совпадает в ячейку в статье Пользовательский
reventon9 формулы нельзя расположить: не верю.©
Михаил подскажите пожалуйста, не делал вПрошу помощи в последняя формула считает столбца с конкретнымиA3
ormula и нажмите командой Найти и ниже. Новые правила выделяться, если дата
с сегодняшним днем;B14
формат ДАТЫ и: Описание внутри в одном столбце
jakim в конструкции той Экселе вот и решении простенькой задачки. апрель не зависимо датами выбирать ячейки,и нажмите кнопку(Формула) пропишите формулу,
ОК выделить; всегда добавляются в находится в пределахоранжевым, если вводимая дата
. ВРЕМЕНИ в MS
По сути вопрос с расчетными цифрами,: Опоздал. BAG проверьте формулы, которую вы отказывается мозг работать. Есть таблица в от года
относящиеся к определенномуData Validation показанную ниже, и.
выберите в списке пункт начало списка и 1 недели от находится в пределахИногда требуется, чтобы начальная
EXCEL сводится к поискудаты должны начинаться формат столбца G. написали, я раньше Тоже думал про
которой указаны впс не задавайте месяцу и году.(Проверка данных). нажмитеПояснение: Условное форматирование;
planetaexcel.ru
Выбор значение из диапазона между датами
поэтому обладают более сегодняшнего числа:
1 недели от и конечная датыЭто решение, однако, не определенной даты в с самого верхаBAG такого ПОИСКПОЗ($J13;ЕСЛИ($C$2:$C$12=K$12;$A$2:$A$12))) не Суммпроизв — но каком промежутке действовал диапазон полность столбцом Например, февраль 2014Как видно на рисунке,
ОК
Даты между 20будут выделены все ячейки, высоким приоритетом, однаконажмите Создать правило;
сегодняшнего числа; принадлежали одному месяцу.
учитывает, что начальная диапазоне, и проставление
листа, и ячейки
: Специально заново отформатировал встречал, а именно правильно ее так определенный тариф. Необходимо
vispateresa или апрель 2015.
эта ячейка тоже. мая 2013 года
которым применены правила порядок правил можновыберите Форматировать только ячейки,
зеленым, если вводимая дата В этом случае и конечная дата в этом диапазоне не должны содержать столбец G как формула ЕСЛИ в и не дописал. заполнить значения в
: Столбец дат можетКак задать в содержит формулу.=AND(WEEKDAY(A2)<>1,WEEKDAY(A2)<>7) и сегодняшней датой Условного форматирования. изменить в диалоговом которые содержат;
находится в пределах в формуле необходимо
могут принадлежать разным соответствующих значений. ни чего кроме
даты , но ПОИСКПОЗ.Спасибо большое за желтых ячейках, то
быть абсолютно в формуле такой диапазонВведите дату 24 августа=И(ДЕНЬНЕД(A2)<>1;ДЕНЬНЕД(A2)<>7) + 5 днейВне диапазона дат окне при помощив выпадающем списке выберите 2 недель от
провести проверку: не месяцам. В этомЗаранее спасибо
цифр, результат тот же.Считает правильно, а помощь, на данном есть в какой разнобой. Нужна формула, дат? 2013 (суббота) в
Пояснение: допустимы. Даты вне
Воскресенья и субботы кнопок со стрелками
planetaexcel.ru
как в формуле указать диапазон дат для конкретного месяца? (Формулы)
Между; сегодняшнего числа. выходит ли конечная случае формула может
китининаче ошибка формулычто может влиять понять не могу!
форуме уже давно,
диапазон попадает дата, которая будет считатьСергей ячейкуФункция
этого диапазона недопустимы.Этот пример объясняет, как Вверх и Вниз.
введите формулы =СЕГОДНЯ()-7 иСначала создадим правило, по дата за границы
вернуть, например 21-05.10.2012,: И вам здравствуйте .
на это, объединениеМихаил С.
но из за тот тариф и количество для конкретного
: если б показалиA2WEEKDAYВведите в ячейку использовать проверку данных,
Если мы расположим правила =СЕГОДНЯ()+7; которому ячейка будет месяца. Если конечная что довольно сложно
.чисто по вашемуОт этого страдает ячеек в шапке,: Пояснения в файле
смены платформы мой необходимо брать.
месяца конкретного года. пример можно было.
(ДЕНЬНЕД) возвращает числоА2 чтобы отбросить недопустимые как показано нанажав кнопку Формат выберите, выделяться, если дата дата выходит за
для понимания. Поэтому, файлу примерно так шапка файла с группировка строк илиBAG
логин отказался работать,Заранее всем спасибо.Например, количество «нет» сказать точно а
Результат: Excel выдаёт сообщение от 1 (воскресенье)дату – 19 даты. предыдущем рисунке, то например, оранжевый шрифт;
совпадает с сегодняшним границы месяца, то
изменим формулу: =ТЕКСТ(B7;ЕСЛИ(МЕСЯЦ(B7)-МЕСЯЦ(B7+B8);»дд.ММ»;»дд»))&»-«&ТЕКСТ(B7+B8;»дд.ММ.гггг»)200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИ(И($AL$3<>=$G$2:$AK$2);$E$3/(($AM$3-$AL$3)+1);»») описанием столбцов, досадно, фильтрация !?
: Подскажите как указать
excelworld.ru
Как задать диапазон дат формулой ЕСЛИ (Формулы/Formulas)
пришлось еще разZ
для апреля 2015 так пишите в
об ошибке. до 7 (суббота), мая 2013 года.Выделите диапазон при вводе сегодняшнейПроделайте аналогичные шаги для днем (см.Файл примера): она заменяется последней
Теперь. если начальная иreventon9
но ладно.
китин
диапазон дат для регистрироваться.: И ни одной
или количество "да"
excelworld.ru
Формула поиска даты в диапазоне (Формулы/Formulas)
условиях >=датаПримечание:
представляющее день недели.Результат: Excel выдаёт сообщениеA2:A4 даты она выделится создания правила, повыделите диапазон, в который
датой месяца.
конечная даты принадлежат: Спасибо за оперативность!!!Спасибо за помощь: а чё гадать конкретного месяца 02.2014,
Михаил С. вашей попытки ее
excelworld.ru
для марта 2014
Download PC Repair Tool to quickly find & fix Windows errors automatically
Imagine a situation in which you need to create a date-wise table. For example, you are creating a schedule where you need to mention a date-wise list of activities. In such a case, you would need a list of dates. Obviously, no list is unlimited, so your list would have a starting and ending date.
For such cases, you could use the method explained in this article to obtain the list of dates between two dates as a list in a column. You have two ways of proceeding:
- Create a list of sequential dates in Excel using the Fill handle
- Obtain a list of all dates between two given dates in Excel using formula.
1] Create a list of sequential dates in Excel using the Fill handle
Microsoft Excel has a Fill handle, which makes it easy to create a list of sequential dates. While it doesn’t exactly help with dates between two given dates, using this option is much easier than using the formula.
Simply Enter the date in say cell A1 and click anywhere outside the cell. Then click on the cell again to activate the Fill handle.
Pull the Fill handle down to create a list of sequential dates in Excel.
Obtain a list of all dates between two given dates in Excel using formula
The formula to obtain a list of all dates between two given dates in Excel is a little complicated. We will explain it using an example:
Let us suppose the starting date is mentioned in cell A1, and the ending date is mentioned in cell A2. You need to obtain the list in column C. The procedure for finding the list of dates would be as follows:
First, enter the formula and press Enter:
=A1+1 in cell C1
It will display the date next to the starting date in cell C1.
Now, type the following date in cell C2:
=IF($A$1+ROW(A1)>=$A$2-1,"",C1+1)
Click anywhere outside cell C2 and then back on C2 to highlight the option to pull the formula down. Pull the formula down till you start getting blank results on the cells. Hit Enter to display the results.
The problem with this formula is that it would be hard to define the syntax or modify it. Furthermore, the dates aren’t exactly in order. The first and last dates remain in cells A1 and A2. The dates in column C are the ones between these dates.
The resolution to this problem could involve a bit of dragging, cutting, and pasting.
Hope this helps.
Karan is a B.Tech, with several years of experience as an IT Analyst. He is a passionate Windows user who loves troubleshooting problems and writing about Microsoft technologies.
Для вычислений длительности временных интервалов удобней всего использовать недокументированную функцию
РАЗНДАТ(
)
, английский вариант DATEDIF().
Если Вам требуется рассчитать стаж (страховой) в годах, месяцах, днях, то, пожалуйста, воспользуйтесь расчетами выполненными в статье
Расчет страхового (трудового) стажа в MS EXCEL
.
Функции
РАЗНДАТ(
)
нет в справке EXCEL2007 и в
Мастере функций
(
SHIFT
+
F
3
), но она работает, хотя и не без огрех.
Синтаксис функции:
РАЗНДАТ(начальная_дата; конечная_дата; способ_измерения)
Аргумент
начальная_дата
должна быть раньше аргумента
конечная_дата
.
Аргумент
способ_измерения
определяет, как и в каких единицах будет измеряться интервал между начальной и конечной датами. Этот аргумент может принимать следующие значения:
|
|
«d» |
разница в днях |
«m» |
разница в полных месяцах |
«y» |
разница в полных годах |
«ym» |
разница в полных месяцах без учета лет |
«md» |
разница в днях без учета месяцев и лет ВНИМАНИЕ! Функция для некоторых версий EXCEL возвращает ошибочное значение, если день начальной даты больше дня конечной даты (например, в EXCEL 2007 при сравнении дат 28.02.2009 и 01.03.2009 результат будет 4 дня, а не 1 день). Избегайте использования функции с этим аргументом. Альтернативная формула приведена ниже. |
«yd» |
разница в днях без учета лет ВНИМАНИЕ! Функция для некоторых версий 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)<ДЕНЬ(A2))
Внимание
: В справке MS EXCEL (см. раздел Вычисление возраста) имеется кривая формула для вычисления количества месяце между 2-мя датами:
=(ГОД(ТДАТА())-ГОД(A3))*12+МЕСЯЦ(ТДАТА())-МЕСЯЦ(A3)
Если вместо функции ТДАТА() — текущая дата использовать дату 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))<=B2; ГОД(B2)-ГОД(A2);ГОД(B2)-ГОД(A2)-1)
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 дней. Так ли это на самом деле?
Имея формулу, эквивалентную
РАЗНДАТ()
, можно понять ход вычисления. Очевидно, что в нашем случае количество полных месяцев между датами = 1, т.е. весь февраль. Для вычисления дней, функция находит количество дней в предыдущем месяце относительно конечной даты, т.е. 28 (конечная дата принадлежит марту, предыдущий месяц — февраль, а в 2015г. в феврале было 28 дней). После этого отнимает день начала и прибавляет день конечной даты =
ДЕНЬ(КОНМЕСЯЦА(ДАТАМЕС(B6;-1);0))-ДЕНЬ(A6)+ДЕНЬ(B6)
, т.е. 28-30+16=14. На наш взгляд, между датами все же 1 полный месяц и все дни марта, т.е 16 дней, а не 14! Эта ошибка проявляется, когда в предыдущем месяце относительно конечной даты, дней меньше, чем дней начальной даты. Как выйти из этой ситуации?
Модифицируем формулу для расчета дней разницы без учета месяцев и лет:
=
ЕСЛИ(ДЕНЬ(A18)>ДЕНЬ(B18);ЕСЛИ((ДЕНЬ(КОНМЕСЯЦА(ДАТАМЕС(B18;-1);0))-ДЕНЬ(A18))<0;ДЕНЬ(B18);ДЕНЬ(КОНМЕСЯЦА(ДАТАМЕС(B18;-1);0))-ДЕНЬ(A18)+ДЕНЬ(B18));ДЕНЬ(B18)-ДЕНЬ(A18))
При применении новой функции необходимо учитывать, что разница в днях будет одинаковой для нескольких начальных дат (см. рисунок выше, даты 28-31.01.2015). В остальных случаях формулы эквивалентны. Какую формулу применять? Это решать пользователю в зависимости от условия задачи.
Imagine you are in a scenario where you need to construct a table that is organized by date. For instance, you are making a schedule and need to specify a list of activities arranged by date in the appropriate order. You would require a list of dates in the event that this occurs.
There is no such thing as a limitless list, so it stands to reason that the one you would have a beginning and an end date. In certain circumstances, if you already know the date at which you want to begin and the date at which you want to finish, you may need to use Excel to create a list of all the dates that fall in between these two specified days.
List all Dates using Formula
Let’s understand step by step through an example.
Step 1
In our example, we have Start Date and End Date in an Excel sheet. We will create a list the dates in between the starting date and ending date. See the following image.
Step 2
Then type the below given formula in C2 cell and press enter. The formula is =A2+1 where A2 is the cell in which starting date is written. After pressing Enter, you will see the next date of starting date. See the following image.
Step 3
After that, select the cell C3 and type the below given formula in formula bar and press enter.
=IF($A$2+ROW(A2)>=$B$2,"",C2+1)
Step 4
Click the «+» sign appears on the lower right corner of the cell C3, which activates the autofill function and then drag down to reflect in other cells.
The difficulty in defining the syntax or making modifications to this formula is the primary drawback to using it. In addition to this, the dates aren’t quite in the correct order.
List All Dates Using VBA
If you are interested in macro code, the following Visual Basic for Applications (VBA) can be used in Excel to list any dates that fall between two specified dates.
Follow the steps given below −
Step 1
Enter the Start date and the End date into separate cells.
Step 2
To open the Microsoft Visual Basic for Applications window, press the «Alt + F11» keys simultaneously.
Step 3
Then click Insert > Module and the popup Module window will open.
This is the VBA editor.
Step 4
In the Module window, type the following VBA code.
Sub DatesBetween() Dim rng As Range Dim StartRng As Range Dim EndRng As Range Dim OutRng As Range Dim StartValue As Variant Dim EndValue As Variant xTitleId = "VBOutput" Set StartRng = Application.Selection Set StartRng = Application.InputBox("Start Range (single cell):", xTitleId, StartRng.Address, Type:=8) Set EndRng = Application.InputBox("End Range (single cell):", xTitleId, Type:=8) Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8) Set OutRng = OutRng.Range("A1") StartValue = StartRng.Range("A2").Value EndValue = EndRng.Range("A2").Value If EndValue - StartValue <= 0 Then Exit Sub End If ColIndex = 0 For i = StartValue To EndValue OutRng.Offset(ColIndex, 0) = i ColIndex = ColIndex + 1 Next End Sub
Step 5
Click Run or F5 to run the VBA, a window pops up where you will choose the starting date, then click OK, then in the next window, choose the Ending date, then click OK.
Then another window pops up asking Output to, give the output cell and click OK.
In our example, the Cell value of Starting Date is A2, so we write it in this way: «A2″.
In our example, the Cell value of Ending Date is B2, so we write it in this way: «B2″.
In our example, the Cell value of Output Date is C2, so we write it in this way: «C2″.
After clicking OK, close the VBA window and you will get the dates between the starting and ending dates, including both starting and ending dates, as shown in the following image.
Conclusion
In this tutorial, we showed two different ways (Formula and VBA) that you can use to list all the dates between two given dates in Excel.
Представьте себе ситуацию, в которой вам нужно создать таблицу с указанием даты. Например, вы создаете расписание, в котором вам нужно указать список мероприятий по дате. В таком случае вам понадобится список дат. Очевидно, что список не может быть неограниченным, поэтому у вашего списка будет дата начала и окончания.
В таких случаях вы можете использовать метод, описанный в этой статье, чтобы получить список дат между двумя датами в виде списка в столбце. У вас есть два варианта действий:
- Создайте список последовательных дат в Excel с помощью маркера заполнения
- Получите список всех дат между двумя заданными датами в Excel с помощью формулы.
1]Создайте список последовательных дат в Excel с помощью маркера заполнения.
В Microsoft Excel есть дескриптор заполнения, который упрощает создание списка последовательных дат. Хотя это не совсем помогает с датами между двумя заданными датами, использовать этот параметр намного проще, чем использовать формулу.
Просто введите дату, скажем, в ячейку A1 и щелкните в любом месте за пределами ячейки. Затем щелкните ячейку еще раз, чтобы активировать маркер заполнения.
Потяните ручку заполнения вниз, чтобы создать список последовательных дат в Excel.
Получите список всех дат между двумя заданными датами в Excel, используя формулу
Формула для получения списка всех дат между двумя заданными датами в Excel немного сложна. Мы объясним это на примере:
Предположим, что начальная дата указана в ячейке A1, а конечная дата указана в ячейке A2. Вам необходимо получить список в столбце C. Процедура поиска списка дат будет следующей:
Сначала введите формулу и нажмите Enter:
= A1 + 1 в ячейке C1
Дата будет отображаться рядом с датой начала в ячейке C1.
Теперь введите следующую дату в ячейку C2:
= ЕСЛИ ($ A $ 1 + СТРОКА (A1)> = $ A $ 2-1, «», C1 + 1)
Щелкните в любом месте за пределами ячейки C2, а затем вернитесь к C2, чтобы выделить параметр, позволяющий вытащить формулу вниз. Потяните формулу вниз, пока не начнете получать пустые результаты в ячейках. Нажмите Enter, чтобы отобразить результаты.
Проблема с этой формулой в том, что было бы сложно определить синтаксис или изменить его. Кроме того, даты не совсем в порядке. Первая и последняя даты остаются в ячейках A1 и A2. Даты в столбце C — это даты между этими датами.
Решение этой проблемы может включать небольшое перетаскивание, вырезание и вставку.
Надеюсь это поможет.
.
Содержание
- 1 Глава 12. Выборка из диапазона дат с помощью критерия в ином формате
- 2 Поиск даты в диапазоне дат Excel
- 3 Выделения дат цветом только текущего месяца
- 4 Общая формула
- 5 Объяснение
- 6 Как работает эта формула
- 7 Дата окончания отсутствует
- 8 Отсутствует дата начала
Формулами.
Исходные: A1 — начальная дата, В1 — длительность проекта в днях.
В А2 формула:
=ЕСЛИ(СТРОКА(A2)>$B$1;0;A1+1)
Протянуть формулу вниз.
Формулы строк, которые ниже требуемого диапазона дат, покажут 0 (ноль).
Нули можно скрыть:
закладка Файл-Параметры-Дополнительно-Для_листа…, снять галку отображения нулевых значений.
Если даты не используются в дальнейших вычилениях, вместо нуля можно выводить пустую строку:
=ЕСЛИ(СТРОКА(A2)>$B$1;"";A1+1)
Для периода, заданного в месяцах или годах, нужно определить количество дней в периоде или последнюю дату.
Например, для месяцев полная формула для А2:
=ЕСЛИ(СТРОКА(A2)>ДАТА(ГОД($A$1);МЕСЯЦ($A$1)+$B$1;ДЕНЬ($A$1)-1);"";A1+1)
Если показывать только даты помесячно:
ЕСЛИ(СТРОКА(A2)>$B$1;0;ДАТА(ГОД($A$1);МЕСЯЦ($A$1)+СТРОКА(A1);ДЕНЬ($A$1)))
Для уменьшения вычислений определение последней даты лучше вывести в отдельню ячейку и в формулах ссылаться на нее. Вариант:
=КОНМЕСЯЦА(A1;B1-1)+ДЕНЬ(A1)-1 =ДАТАМЕС($A$1;СТРОКА(A1))
Макросом.
Исходные: A1 — начальная дата, В1 — длительность проекта в месяцах.
Диапазон вставки: столбец Е — порядковый номер, столбец F — дата.
Формируется список дат с шагом 1 месяц:
Sub PeriodDats() Dim ArrDate() Dim dStart As Date Dim lPer As Long, i As Long With ActiveSheet dStart = .Cells(1, 1).Value ' начальная дата lPer = .Cells(1, 2).Value ' период в месяцах If dStart = 0 Or lPer < 1 Then Exit Sub ' нет исходных данных, выход dStart = DateAdd("m", -1, dStart) ' первая дата будет dStart+месяц ReDim ArrDate(1 To lPer, 1 To 2) ' задаем размерность массива For i = 1 To lPer ' в цикле заполняем массив ArrDate(i, 1) = DateAdd("m", i, dStart) Next i .Columns("E:F").ClearContents ' очищаем столбцы .Cells(1, 5).Resize(lPer, 2).Value = ArrDate ' даты на лист End With MsgBox "Полный порядок", 64, "ФОРМИРОВАНИЕ ПЕРИОДА" End Sub
Глава 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 или более ранней, чтобы добавить функцию КОНМЕСЯЦА, вам нужно выбрать Инструменты → Надстройки → Анализ Данных.
- Эта формула работает быстрее, чем формулы и .
Формула :
- Функции МЕСЯЦ и ГОД возвращают числа, извлекая их из порядкового номера даты.
- Далее сравниваются два фрагмента, каждый полкченный конкатенацией.
Формула :
- Функция ТЕКСТ используется для представления чисел в виде текста. Второй аргумент этой функции – формат – определяет, как будет представлено число. Вы может конвертировать весь столбец А в текст, состоящий из 7 символов: 3 буквы месяца и 4 цифры года.
Нахождение объема продаж за год. На рис. 12.4 показан пример несоответствие формата года в критерии Е6 (число) и формата дат в диапазоне А2:А6 (порядковый номер). Цель – найти сумму продаж за год. На рисунке представлены шесть вариантов формул, которые могут решить задачу. Обратите внимание, что в формулах и критерии начала и конца года жестко зашиты в коде, т.к. они не могут изменяться. Это 1/1 и 31/12). Формулы размещены на рисунке в порядка увеличения скорости работы.
Рис. 12.4. Формата года в критерии Е6 (число) не соответствует формату дат в диапазоне А2:А6 (порядковый номер)
Допустим поставки товаров от поставщика 1 раз в неделю. Банковские транзакции взаиморасчетов с поставщиком товаров производятся регулярно каждый вторник. Необходимо быстро проверить в какие дни дата поставки товара совпадает с датой взаиморасчетов. Это позволит предоставить ежемесячный отчет за прошлый месяц о взаиморасчетах поставщику в день поставки товара и сэкономить на курьерских услугах. Для этого следует выделить все даты предполагаемых поставок, припадающие на вторник.
Для решения выше описанной задачи мы, используя специальную формулу в условном форматировании выполним поиск ближайшей даты в Excel для вторников и выделим цветом эти ячейки. Автоматическое выделения цветом календарных дат:
- Выделите диапазон ячеек B2:B10 и выберите инструмент: «ГЛАВНАЯ»-«Стили»-«Условное форматирование»-«Создать правило».
- Выберите: «Использовать формулу для определения форматируемых ячеек».
- Чтобы выбрать дни вторников в Excel для поля ввода введите формулу: =ДЕНЬНЕД(B2;2)=2 и нажмите на кнопку «Формат», чтобы задать желаемый цвет заливки для ячеек. Например, зеленый. Нажмите ОК на всех открытых окнах.
Результат выделения цветом каждого вторника в списке дат поставок товаров:
В формуле мы использовали функцию =ДЕНЬНЕД(), которая возвращает номер дня недели для исходной даты. В первом аргументе функции указываем ссылку на исходную дату. Ссылка относительная так как будет проверятся каждая дата в столбце B. Во втором аргументе обязательно следует указать число 2, чтобы функция правильно выдавала нам очередности дней недели (1-понедельник, 2-вторник и т.д.). Если не указать второй аргумент, то функция будет считать дни в английском формате: 1-sanday (неделя), 2-Monday (понедельник) и т.д.
Дальше идет оператор сравнения с числом 2. Если возвращаемое число функцией = 2 значит формула возвращает значение ИСТИНА и к текущей ячейке применяется пользовательский формат (красная заливка).
Выделения дат цветом только текущего месяца
В таблице представлен список проектов, которые должны быть реализованные на протяжении текущего полугодия. Список большой, но нас интересуют только те проекты, которые должны быть реализованы в текущем месяце. Визуально искать в списке даты текущего месяца – весьма неудобно. Можно использовать условное форматирование, чтобы Excel нам автоматически выделил цветом интересующие нас даты в списке. Пример таблицы проектов на текущий месяц в Excel:
Нам необходимо из целой таблицы выбрать дату в Excel на текущий месяц:
- Выделите диапазон ячеек B2:B11 и выберите инструмент: «ГЛАВНАЯ»-«Стили»-«Условное форматирование»-«Создать правило».
- Снова выбираем: «Использовать формулу для определения форматируемых ячеек».
- В поле ввода введите формулу: =МЕСЯЦ(B2)=МЕСЯЦ($C$2) и нажмите на кнопку «Формат», чтобы задать желаемый цвет заливки для ячеек. Например, зеленый. Нажмите ОК на всех открытых окнах.
В результате визуально отчетливо видно дни текущего месяца:
В представленной формуле для условного форматирования главную роль играет функция =МЕСЯЦ(), которая определяет номер месяца исходной даты. Ссылка на ячейку в аргументе первого раза использования функции МЕСЯЦ – относительная, так как проверятся будут несколько ячеек в столбце C. После функции стоит оператор сравнения с номером текущего месяца. Там уже используется абсолютная ссылка (значение аргумента неизменяемое). Если результаты вычислений по обе стороны оператора сравнения совпадают, тогда формула возвращает значение ИСТИНА и к текущей ячейке присваивается пользовательский формат (заливка зеленым цветом).
Теперь усложним задачу. Допустим у нас список проектов охватывает не полугодие, а несколько лет:
Тогда возникает сложность ведь в разные года номера месяцев будут совпадать и условное форматирование будет выделять лишние даты. Поэтому необходимо модернизировать формулу:
Готово:
Мы добавили в формулу две функции, которые позволяют нам выбрать дни определенного месяца и года:
- =ГОД() – функция работает по тому же принципу что и =МЕСЯЦ(). Разница только в том, что возвращает из даты номер года.
- =И() – данное имя функции говорит само за себя. То есть должны совпадать и номера месяцев и их номера годов.
Вся формула достаточно просто читается и ее легко использовать для решения похожих задач с помощью условного форматирования.
Читайте так же: как посчитать разницу между датами в днях.
Общая формула
= ТЕКСТ(дата1; «формат») & «-» & ТЕКСТ (дата2; «формат»)
Объяснение
Чтобы отобразить диапазон дат в одной ячейке на основе дат в разных ячейках, вы можете использовать формулу, основанную на функции ТЕКСТ.
В показанном примере формула в ячейке E5:
= ТЕКСТ (B5; «ммм д») & «-» & ТЕКСТ(C5; «ммм д»)
Как работает эта формула
Функция ТЕКСТ принимает числовые значения и преобразует их в текстовые значения, используя заданный вами формат. В этом примере мы используем формат «ммм д» для обеих функций TEКСT в E5. Результаты объединяются дефисом, используя простую конкатенацию.
Примечание. Другие примеры в столбце E используют разные текстовые форматы.
Дата окончания отсутствует
Если дата окончания отсутствует, формула не будет работать правильно, потому что дефис будет добавлен к дате начала (например, «1 марта»).
Чтобы обработать этот случай, вы можете обернуть конкатенацию и вторую функцию ТЕКСТ внутри ЕСЛИ следующим образом:
= ТЕКСТ(дата1; «ммм д») & ЕСЛИ(дата2 «»; «-» &ТЕКСТ(дата2; «ммм д»); «»)
Это создает полный диапазон дат, когда обе даты присутствуют, но выводит только дату начала, когда дата окончания отсутствует.
Отсутствует дата начала
Для обработки случая, когда обе даты отсутствуют, вы можете вложить еще один ЕСЛИ следующим образом:
= ЕСЛИ(дата1 «»; ТЕКСТ(дата1; «мммм д») & ЕСЛИ(дата2 «»; «-» & ТЕКСТ(дата2; «ммм д»); «»); «»)
Эта формула просто возвращает пустую строку («»), когда дата1 недоступна.