メインコンテンツへスキップ

ExcelでXNUMXつの日付の間のすべての日付を一覧表示するにはどうすればよいですか?

特定の開始日と終了日がある場合は、ExcelでこれらXNUMXつの指定された日付の間のすべての日付を一覧表示する必要がある場合があります。 このチュートリアルでは、ExcelでXNUMXつの日付の間のすべての日付を一覧表示する方法について説明しています。

XNUMXつの日付の間のすべての日付を数式で一覧表示します

XNUMXつの日付の間のすべての日付をVBAで一覧表示します

XNUMXつの日付の間のすべての日付をKutoolsforExcelで一覧表示します 良いアイデア3


ここでは、Excelで指定されたXNUMXつの日付の間のすべての日付をすばやく一覧表示できる数式を紹介します。

1.開始日と終了日を1つのセルに入力します。ここでは、セルA2とAXNUMXに入力します。 スクリーンショットを参照してください:
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

次に、指定されたXNUMXつの日付の間のすべての日付が列にリストされていることを確認できます。
doc-list-all-dates- between-two-dates-5

注:

上記の式で、A1は開始日、A2は終了日、C1は日付範囲の最初の日付です。


マクロコードに興味がある場合は、以下のVBAを使用して、Excelで指定されたXNUMXつの日付の間のすべての日付を一覧表示できます。

1.開始日と終了日を1つのセルに入力します。ここでは、セルA1とBXNUMXを入力します。 スクリーンショットを参照してください:
doc-list-all-dates- between-two-dates-6

2。 押す Alt + F11 開くキー アプリケーション向け Microsoft Visual Basic 窓。

3。 次に、をクリックします インセット > モジュール 以下のVBAコードをコピーしてポップに貼り付けます モジュール 窓。

VBA:XNUMXつの日付の間のすべての日付を一覧表示します。

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、次にXNUMX番目のポップダイアログで終了日を選択します。 スクリーンショットを参照してください:

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

5。 クリック OK、次にセルを選択して日付を出力し、をクリックします OK。 これで、XNUMXつの日付の間のすべての日付が一覧表示されます。 スクリーンショットを参照してください:

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

Note:このVBAによって生成されるリストには、開始日と終了日が含まれます。


実際にインストールした場合 Kutools for Excel –便利なアドインツール。使用することもできます。 ランダムデータを挿入 この問題を解決するために。

Kutools for Excel, 以上で 300 便利なExcel機能により、作業効率が向上し、作業時間が節約されます。

無料インストール Kutools for Excel、以下のようにしてください:

1. XNUMXつの日付の間の日付を一覧表示する列を選択し、[ クツール > インセット > ランダムデータを挿入。 スクリーンショットを参照してください:
doc挿入ランダムデータ1

2.次に、 ランダムデータを挿入 ダイアログ、クリック 日付 タブをクリックし、から開始日と終了日を選択します & Toリストし、確認することを忘れないでください 就業日, 週末 & 一意の値 チェックボックス。 スクリーンショットを参照してください:
doc-list-all-dates- between-two-dates-12

3。 クリック Ok ダイアログを閉じるには、 Kutools for 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   |   ファジールックアップ ....
詳細ドロップダウン リスト: ドロップダウンリストを素早く作成する   |  依存関係のドロップダウン リスト   |  複数選択のドロップダウンリスト ....
列マネージャー: 特定の数の列を追加する  |  列の移動  |  Toggle 非表示列の表示ステータス  |  範囲と列の比較 ...
注目の機能: グリッドフォーカス   |  デザインビュー   |   ビッグフォーミュラバー    ワークブックとシートマネージャー   |  リソースライブラリ (自動テキスト)   |  日付ピッカー   |  ワークシートを組み合わせる   |  セルの暗号化/復号化    リストごとにメールを送信する   |  スーパーフィルター   |   特殊フィルター (太字/斜体/取り消し線をフィルター...) ...
上位 15 のツールセット12 テキスト ツール (テキストを追加, 文字を削除する、...)   |   50+ チャート 種類 (ガントチャート、...)   |   40+ 実用的 (誕生日に基づいて年齢を計算する、...)   |   19 挿入 ツール (QRコードを挿入, パスから画像を挿入、...)   |   12 変換 ツール (数字から言葉へ, 通貨の換算、...)   |   7 マージ&スプリット ツール (高度な結合行, 分割セル、...)   |   ... もっと

Kutools for Excel で 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