Прескочи на основното съдържание

Как да изброя всички дати между две дати в Excel?

Автор: Слънце Последна промяна: 2020-05-22

В някои случаи, ако имате конкретна начална и крайна дата, може да се наложи да посочите всички дати между тези две дадени дати в Excel. Сега този урок говори за методите за изброяване на всички дати между две дати в Excel.

Избройте всички дати между две дати по формули

Избройте всички дати между две дати по VBA

Избройте всички дати между две дати от Kutools за Excel добра идея3


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

1. Въведете началната и крайната дата в две клетки, тук ги въвеждам в клетка A1 и A2. Вижте екранна снимка:
doc-list-all-dates-between-two-dates-1

2. След това отидете в клетка C1, за да въведете тази формула =A1+1 в него, след което щракнете Въведете ключ. Вижте екранна снимка:
doc-list-all-dates-between-two-dates-2

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

doc-list-all-dates-between-two-dates-3       doc-list-all-dates-between-two-dates-4

След това можете да видите всички дати между две дадени дати са изброени в колоната.
doc-list-all-dates-between-two-dates-5

Забележка:

В горните формули A1 е началната дата, A2 е крайната дата, а C1 е първата дата в диапазона от време.


Ако се интересувате от макро код, можете да използвате VBA по-долу, за да изброите всички дати между две дадени дати в Excel.

1. Въведете началната и крайната дата в две клетки, тук въвеждам клетки A1 и B1. Вижте екранна снимка:
doc-list-all-dates-between-two-dates-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. кликване бягане or F5 за да стартирате VBA и се появява диалогов прозорец, за да изберете начална дата, след което щракнете OK, след което изберете крайната дата във втория изскачащ диалогов прозорец. Вижте екранна снимка:

doc-list-all-dates-between-two-dates-7          doc-list-all-dates-between-two-dates-8

5. кликване OK, след това изберете клетка, за да поставите датите, и след това щракнете OK. Сега можете да видите всички дати между две дати са изброени. Вижте екранни снимки:

doc-list-all-dates-between-two-dates-9         doc-list-all-dates-between-two-dates-10

Забележка: Списъкът, генериран от този VBA, включва начална и крайна дата.


Всъщност, ако сте инсталирали Kutools за Excel – удобен инструмент за добавяне, можете също да използвате Вмъкване на произволни данни за решаване на този проблем.

Kutools за Excel, с повече от 300 удобни функции на Excel, подобряват вашата работна ефективност и спестяват работно време.

След безплатно инсталиране Kutools за Excel, моля, направете следното:

1. Изберете колона, в която искате да изброите дати между две дати, и щракнете Kutools > Поставете > Вмъкване на произволни данни. Вижте екранна снимка:
doc вмъкване на произволни данни 1

2. След това в Вмъкване на произволни данни кликнете върху Дата раздела, след което изберете началната и крайната дата от от намлява To списък, тогава не забравяйте да проверите работен ден, През уикенда намлява Уникални ценности квадратчета за отметка. Вижте екранна снимка:
doc-list-all-dates-between-two-dates-12

3. кликване Ok за затваряне на диалоговия прозорец и друг Kutools за Excel изскача диалогов прозорец, просто щракнете Да. След това можете да видите датите между началната и крайната дата са изброени. Вижте екранни снимки:

doc-list-all-dates-between-two-dates-13           doc-list-all-dates-between-two-dates-14

4. Сега трябва да сортирате списъка с дати в реда, от който се нуждаете. Кликнете Дата > Сортиране от най-старите към най-новите. След това можете да видите, че датите са сортирани от най-старата до най-новата дата. Вижте екранни снимки:

doc-list-all-dates-between-two-dates-15          doc-list-all-dates-between-two-dates-16

с Вмъкване на произволни данни помощна програма, можете също така да вмъкнете произволно цяло число, произволен низ и произволно време и т.н. Щракнете тук, за да научите повече за Вмъкване на произволни данни.


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


Най-добрите инструменти за продуктивност в офиса

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

Усъвършенствайте уменията си за 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