Совет. Другие языки - Google-Translated. Вы можете посетить English версия этой ссылки.
Войти
x
or
x
x
Регистрация
x

or

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

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

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

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

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


Сравнить диапазоны (можно сравнить два диапазона, а также выбрать и покрасить одни и те же значения или разные значения).

диапазоны сравнения doc
Вкладка «Office» Включите редактирование и просмотр с вкладками в Office и упростите свою работу ...
Kutools для Excel добавляет расширенные функции 300 в Excel и повышает производительность на 80%
  • Авто текст: Создайте свои любимые диаграммы, изображения, ячейки, сложные формулы и снова использовать их быстро в будущем.
  • Больше, чем текстовые функции 20: Извлечь номер из текстовой строки; Извлечь или удалить часть текстов; Преобразование чисел и валют в английские слова ...
  • Инструменты слияния: Несколько рабочих книг и листов в одном; Объединить несколько ячеек / строк / столбцов и сохранить данные; Объединить повторяющиеся строки и суммы ...
  • Сплит Инструменты: Разбить данные на несколько листов на основе значения; Одна рабочая книга для нескольких файлов Excel, PDF или CSV; От одного столбца до нескольких столбцов ...
  • Вставить Пропуск Скрытые / отфильтрованные строки; Подсчет и сумма по цвету фона; Создать список рассылки и Отправка писем по значению ячейки...
  • Суперфильтр: Создавайте расширенные схемы фильтров и применяйте их к любым листам; Сортировать по неделям, дням, частоте и более; Фильтр жирным шрифтом, формулами, комментариями ...
  • Более чем мощные функции 300; Работает с Office 2007-2019 и 365; Поддерживает все языки; Простота развертывания в компании; Полнофункциональная 60-дневная бесплатная пробная версия.


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

формула Никогда не нужно беспокоиться о длинных формулах в Excel больше! Kutools for Excel's Авто текст может добавлять все формулы в группу
как автоматический текст, и освободите свой мозг! Нажмите здесь, чтобы узнать Автотекст Нажмите здесь, чтобы получить бесплатную пробную версию

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

2. Затем перейдите в ячейку C1, чтобы ввести эту формулу = A1 + 1 в него, затем нажмите вводить ключ. Смотрите скриншот:
док-список-все-дат-между-два-дат-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 в popping модуль окна.

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. Нажмите прогон or F5 для запуска VBA, и появится диалоговое окно для выбора даты начала, затем нажмите OK, затем выберите дату окончания во втором всплывающем диалоговом окне. Смотрите скриншот:

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

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

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

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


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

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

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

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

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

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

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

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

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

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


Вас может заинтересовать следующее:

Преобразование даты

В некоторых случаях вы можете иметь несколько нестандартных дат в своем листе и преобразовать их все в стандартную дату mm / dd / yyyy, возможно, для вас. Вот Kutools for Excel's Конвертировать по дате может быстро преобразовать даты в стандартную дату в формате mm / dd / yyyy.
дата конверсии doc

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



Kutools для Excel - лучший инструмент для повышения производительности в офисе Повысьте производительность на 80%

  • Супер Формула Бар (легко редактировать несколько строк текста и формул); Макет чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы и хранение данных; Содержание сплит-клеток; Объедините дублирующиеся строки и сумму / среднее... предотвратить повторяющиеся клетки; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выберите пустые строки (все ячейки пусты); Супер найти и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения формулы ссылки; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Любимые и быстро вставляемые формулы, Диапазоны, графики и рисунки; Шифрование ячеек с паролем; Создать список рассылки и отправлять электронные письма ...
  • Извлечение текстаДобавить текст, Удалить по позиции, Удалить пространство; Создание и печать промежуточных итогов подкачки; Преобразование содержимого ячеек и комментариев...
  • Суперфильтр (сохранить и применить схемы фильтров к другим листам); Расширенный поиск по месяцам / неделям / дням, частоте и более; Специальный фильтр жирным шрифтом, курсивом ...
  • Объединить рабочие тетради и рабочие листы; Объединение таблиц на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Более чем мощные функции 300, Работает с Office 2007-2019 и 365. Поддерживает все языки. Простота развертывания в компании. Полнофункциональная 60-дневная бесплатная пробная версия.
вкладка kte 201905

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

  • Включить редактирование и чтение с вкладками в Word, Excel, PowerPoint, Издатель, Доступ, Visio и Проект.
  • Открывайте и создавайте несколько документов в новых вкладках одного и того же окна, а не в новых окнах.
  • Увеличивает вашу производительность на 50% и уменьшает сотни щелчков мышью для вас каждый день!
нижняя часть офиса
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Deuf · 1 years ago
    How to loop this vba code (1000 rows for example) ?
    • To post as a guest, your comment is unpublished.
      Sunny · 1 years ago
      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?
  • To post as a guest, your comment is unpublished.
    NewSP · 1 years ago
    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.
    • To post as a guest, your comment is unpublished.
      Deuf · 1 years ago
      If you invert this line you can make it work :


      OutRng.Offset(ColIndex, 0) = i to OutRng.Offset(0, ColIndex) = i
    • To post as a guest, your comment is unpublished.
      Sunny · 1 years ago
      Why do not try to transpose the column result to row?
  • To post as a guest, your comment is unpublished.
    singaravelu · 1 years ago
    i tried the VBA code it worked.. Thanks for sharing. Similarly is it possible to pase it along columns/ horizontally?
    • To post as a guest, your comment is unpublished.
      Sunny · 1 years ago
      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.
  • To post as a guest, your comment is unpublished.
    Firat · 2 years ago
    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...
  • To post as a guest, your comment is unpublished.
    Kamal Kumara · 2 years ago
    Can we use text box instead of in box in macro