Перейти к основному содержанию

Как перечислить все даты между двумя датами в Excel?

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

Список всех дат между двумя датами по формулам

Перечислить все даты между двумя датами по VBA

Список всех дат между двумя датами Kutools for Excel хорошая идея3


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

1. Введите даты начала и окончания в две ячейки, здесь я ввожу их в ячейки A1 и A2. Смотрите скриншот:
документ-список-все-даты-между-двумя-датами-1

2. Затем перейдите в ячейку C1 и введите эту формулу. = A1 + 1 в него, затем нажмите Enter ключ. Смотрите скриншот:
документ-список-все-даты-между-двумя-датами-2

3. Затем в ячейке C2 введите эту формулу =IF($A$1+ROW(A1)>=$A$2-1,"",C1+1) в него, затем перетащите дескриптор автозаполнения вниз к ячейкам, пока не появится пустая ячейка. Смотрите скриншоты:

документ-список-все-даты-между-двумя-датами-3       документ-список-все-даты-между-двумя-датами-4

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

Примечание:

В приведенных выше формулах A1 - это дата начала, A2 - дата окончания, а C1 - первая дата в диапазоне дат.


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

1. Введите дату начала и дату окончания в две ячейки, здесь я ввожу ячейки A1 и B1. Смотрите скриншот:
документ-список-все-даты-между-двумя-датами-6

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, затем выберите дату окончания во втором диалоговом окне. Смотрите скриншот:

документ-список-все-даты-между-двумя-датами-7          документ-список-все-даты-между-двумя-датами-8

5. Нажмите OK, затем выберите ячейку для отображения дат и нажмите OK. Теперь вы можете видеть, что перечислены все даты между двумя датами. Смотрите скриншоты:

документ-список-все-даты-между-двумя-датами-9         документ-список-все-даты-между-двумя-датами-10

Внимание: Список, созданный этим VBA, включает дату начала и дату окончания.


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

Kutools for Excel, с более чем 300 удобные функции Excel, повысьте эффективность работы и сэкономьте рабочее время.

После бесплатная установка Kutools for Excel, сделайте следующее:

1. Выберите столбец, в котором должны быть указаны даты между двумя датами, и щелкните Кутулс > Вставить > Вставить случайные данные. Смотрите скриншот:
документ вставить случайные данные 1

2. Затем в Вставить случайные данные диалоговое окно, нажмите Время вкладка, затем выберите начальную и конечную даты из от и To список, затем не забудьте проверить Рабочий день, Выходные и Уникальные ценности флажки. Смотрите скриншот:
документ-список-все-даты-между-двумя-датами-12

3. Нажмите Ok чтобы закрыть диалог, а другой Kutools for Excel появляется диалоговое окно, просто нажмите Да. Затем вы можете увидеть даты между датой начала и датой окончания. Смотрите скриншоты:

документ-список-все-даты-между-двумя-датами-13           документ-список-все-даты-между-двумя-датами-14

4. Теперь вам нужно отсортировать список дат в нужном вам порядке. Нажмите Данные > Сортировать от старых к новым. Затем вы можете увидеть, что даты отсортированы от самой старой к самой новой. Смотрите скриншоты:

документ-список-все-даты-между-двумя-датами-15          документ-список-все-даты-между-двумя-датами-16

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


Относительные статьи:


Лучшие инструменты для офисной работы

🤖 Kutools AI Помощник: Революционный анализ данных на основе: Интеллектуальное исполнение   |  Генерировать код  |  Создание пользовательских формул  |  Анализ данных и создание диаграмм  |  Вызов функций Kutools...
Популярные опции: Найдите, выделите или определите дубликаты   |  Удалить пустые строки   |  Объедините столбцы или ячейки без потери данных   |   Раунд без формулы ...
Супер поиск: Множественный критерий VLookup    VLookup с несколькими значениями  |   VLookup по нескольким листам   |   Нечеткий поиск ....
Расширенный раскрывающийся список: Быстрое создание раскрывающегося списка   |  Зависимый раскрывающийся список   |  Выпадающий список с множественным выбором ....
Менеджер столбцов: Добавить определенное количество столбцов  |  Переместить столбцы  |  Переключить статус видимости скрытых столбцов  |  Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка Фокус   |  Просмотр дизайна   |   Большой Формулный Бар    Менеджер книг и листов   |  Библиотека ресурсов (Авто текст)   |  Выбор даты   |  Комбинировать листы   |  Шифровать/дешифровать ячейки    Отправлять электронные письма по списку   |  Суперфильтр   |   Специальный фильтр (фильтровать жирным шрифтом/курсивом/зачеркиванием...) ...
15 лучших наборов инструментов12 Текст Инструменты (Добавить текст, Удалить символы, ...)   |   50+ График Тип (Диаграмма Ганта, ...)   |   40+ Практических Формулы (Рассчитать возраст по дню рождения, ...)   |   19 Вносимые Инструменты (Вставить QR-код, Вставить изображение из пути, ...)   |   12 Конверсия Инструменты (Числа в слова, Конверсия валюты, ...)   |   7 Слияние и разделение Инструменты (Расширенные ряды комбинирования, Разделить клетки, ...)   |   ... и более

Улучшите свои навыки работы с Excel с помощью Kutools for Excel и почувствуйте эффективность, как никогда раньше. Kutools for Excel предлагает более 300 расширенных функций для повышения производительности и экономии времени.  Нажмите здесь, чтобы получить функцию, которая вам нужна больше всего...

Описание


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Comments (9)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
How to loop this vba code (1000 rows for example) ?
This comment was minimized by the moderator on the site
Sorry for reply such late, but I do not understand your question, the VBA only for listing dates between a date range, why need to loop the code?
This comment was minimized by the moderator on the site
Firat - did you solve your issue? I have exactly the same issue and I cannot get the result in the row instead of the column.
This comment was minimized by the moderator on the site
If you invert this line you can make it work :


OutRng.Offset(ColIndex, 0) = i to OutRng.Offset(0, ColIndex) = i
This comment was minimized by the moderator on the site
Why do not try to transpose the column result to row?
This comment was minimized by the moderator on the site
i tried the VBA code it worked.. Thanks for sharing. Similarly is it possible to pase it along columns/ horizontally?
This comment was minimized by the moderator on the site
Hello, if you want to list dates in a row horizontally, you just need to use the vba code to list the dates, and copy the results and paste transpose.
This comment was minimized by the moderator on the site
Hello, Thanks for sharing a great code. I would like to ask one question though. I am using this VBA code you shared. 1) Can I list all the other cells in the same row with the dates? 2) Can we define the starting date cell and ending date cell and the cell that the new information will be written? I am asking these questions because I have 30 rows. Each row has data for different people. Cell G is a starting date and Cell H is an ending date. Other cells contains some information. I would like this to be listed in a new cell as all the dates between these cells. For example (just showing demonstration, so only G and H cells written below-I is where the list appears): Row 2 Person A 28/05/2017 05/06/2017 28/05/2017 Row 3 Person A 28/05/2017 05/06/2017 29/05/2017 Row 4 Person A 28/05/2017 05/06/2017 30/05/2017 Row 5 Person A 28/05/2017 05/06/2017 31/05/2017 Row 6 Person A 28/05/2017 05/06/2017 01/06/2017 Row 7 Person A 28/05/2017 05/06/2017 02/06/2017 Row 8 Person A 28/05/2017 05/06/2017 03/06/2017 Row 9 Person A 28/05/2017 05/06/2017 04/06/2017 Row 10 Person A 28/05/2017 05/06/2017 05/06/2017 Row 11 Person B 23/05/2017 31/05/2017 23/05/2017 Row 12 Person B 23/05/2017 31/05/2017 24/05/2017 Row 13 Person B 23/05/2017 31/05/2017 25/05/2017 Row 14 Person B 23/05/2017 31/05/2017 26/05/2017 and so on...
This comment was minimized by the moderator on the site
Can we use text box instead of in box in macro
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations