Перейти до основного матеріалу

Як перерахувати всі дати між двома датами в Excel?

У деяких випадках, якщо у вас є конкретна дата початку та дата закінчення, можливо, вам доведеться перерахувати всі дати між цими двома датами в Excel. Тепер у цьому підручнику йдеться про методи перерахування всіх дат між двома датами в Excel.

Перелічіть усі дати між двома датами за формулами

Перелічіть усі дати між двома датами за VBA

Список усіх дат між двома датами за допомогою Kutools для Excel гарна ідея3


Тут я представляю формули, які можуть швидко перерахувати всі дати між двома датами для вас в Excel.

1. Введіть дати початку та закінчення у дві клітинки, тут я введу їх у клітинки A1 та A2. Дивіться знімок екрана:
doc-list-all-даты-між-двома датами-1

2. Потім перейдіть до комірки C1, щоб набрати цю формулу = А1 + 1 в неї, а потім натисніть Що натомість? Створіть віртуальну версію себе у ключ. Дивіться знімок екрана:
doc-list-all-даты-між-двома датами-2

3. Потім у комірку С2 введіть цю формулу =IF($A$1+ROW(A1)>=$A$2-1,"",C1+1) в неї, а потім перетягніть маркер автозаповнення до комірок, поки не з’явиться порожня комірка. Дивіться скріншоти:

doc-list-all-даты-між-двома датами-3       doc-list-all-даты-між-двома датами-4

Тоді ви зможете побачити всі дати між двома датами, зазначеними у стовпці.
doc-list-all-даты-між-двома датами-5

Примітка:

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


Якщо вас цікавить макрокод, ви можете скористатися наведеним нижче VBA, щоб перерахувати всі дати між двома датами в Excel.

1. Введіть дату початку та дату закінчення у дві клітинки, тут я набираю клітинки A1 та B1. Дивіться знімок екрана:
doc-list-all-даты-між-двома датами-6

2. прес Alt + F11 клавіші, щоб відкрити Microsoft Visual Basic для додатків вікна.

3 Потім натисніть Insert > Модулі і скопіюйте та вставте нижче код 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. клацання прогін or F5 щоб запустити VBA, з’явиться діалогове вікно для вибору дати початку, а потім натисніть OK, потім виберіть дату закінчення у другому діалоговому вікні. Дивіться знімок екрана:

doc-list-all-даты-між-двома датами-7          doc-list-all-даты-між-двома датами-8

5. клацання OK, потім виділіть комірку, щоб дати дати, а потім натисніть OK. Тепер ви можете бачити, як перелічені всі дати між двома датами. Дивіться скріншоти:

doc-list-all-даты-між-двома датами-9         doc-list-all-даты-між-двома датами-10

примітки: Список, створений цим VBA, включає дату початку та дату закінчення.


Власне, якщо ви встановили Kutools для Excel - зручний інструмент додавання, ви також можете використовувати Вставити випадкові дані вирішити цю проблему.

Kutools для Excel, з більш ніж 300 зручні функції Excel, підвищують ефективність роботи та економить робочий час.

після безкоштовна установка Kutools для Excel, виконайте наведені нижче дії.

1. Виберіть стовпець, в якому потрібно перерахувати дати між двома датами, та натисніть Кутулс > Insert > Вставити випадкові дані. Дивіться знімок екрана:
doc вставити випадкові дані 1

2. Потім у Вставити випадкові дані діалог, клацніть Дата , а потім виберіть дату початку та закінчення з Від та To список, потім не забудьте перевірити Робочий день, Уїк-енд та Унікальні цінності прапорці. Дивіться знімок екрана:
doc-list-all-даты-між-двома датами-12

3. клацання Ok щоб закрити діалогове вікно та інше Kutools для Excel відкриється діалогове вікно, просто натисніть Так. Тоді ви зможете побачити перелічені дати між датою початку та датою закінчення. Дивіться скріншоти:

doc-list-all-даты-між-двома датами-13           doc-list-all-даты-між-двома датами-14

4. Тепер вам потрібно відсортувати список дат у потрібному вам порядку. Клацніть дані > Сортувати від найстарішого до нового. Потім ви можете побачити дати, відсортовані від найдавнішої до найновішої дати. Дивіться скріншоти:

doc-list-all-даты-між-двома датами-15          doc-list-all-даты-між-двома датами-16

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


Відносні статті:


Найкращі інструменти продуктивності офісу

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

Покращуйте свої навички Excel за допомогою Kutools для Excel і відчуйте ефективність, як ніколи раніше. Kutools для Excel пропонує понад 300 додаткових функцій для підвищення продуктивності та економії часу.  Натисніть тут, щоб отримати функцію, яка вам найбільше потрібна...

Опис


Вкладка Office Передає інтерфейс із вкладками в Office і значно полегшує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 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