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

Excelでデータを入力または変更した際に日付を自動的に並べ替えるにはどうすればよいですか?

Author: Xiaoyang Last Modified: 2025-08-06

Excelでは、ソート機能を使用して、必要に応じて日付を昇順または降順で並べ替えることができます。しかし、それは動的ではありません。一度日付を並べ替えた後、新しい日付を追加すると、再度並べ替えを行う必要があります。ワークシートに新しいデータを入力するたびに日付を自動的に並べ替えるための良い方法や迅速な方法はありますか?

数式を使用して日付が入力または変更されたときに自動的に日付を並べ替える

VBAコードを使用して日付が入力または変更されたときに自動的に日付を並べ替える


arrow blue right bubble 数式を使用して日付が入力または変更されたときに自動的に日付を並べ替える

例えば、元の日付が列Aにある場合、次の数式を使用すると、並べ替えたい列に基づいて、日付やその他のテキスト文字列を新しい補助列に自動的に並べ替えることができます。以下の手順に従ってください:

1. 次の数式を入力します:

=INDEX($A$2:$A$15,MATCH(ROWS($A$2:A2),COUNTIF($A$2:$A$15,"<="&$A$2:$A$15),0)) を日付列の隣の空白セル(例:C2)に入力し、Ctrl + Shift + Enterキーを同時に押して数列を取得します。次に、フィルハンドルを下にドラッグして目的のセルまでコピーします。スクリーンショットをご覧ください:

注:上記の数式において、A2:A15は自動的に並べ替えたい元の日付範囲です。

A screenshot showing the application of a formula in Excel to auto-sort dates

2. 次に、 ホームタブの「全般」ドロップダウンリストから「短い日付」を選択して、数字を日付形式に設定します。スクリーンショットをご覧ください:

A screenshot showing how to format sorted numbers as dates in Excel

3. これで連続した番号が日付形式に変換され、元の日付も並べ替えられています。スクリーンショットをご覧ください:

A screenshot showing the result of converting sorted numbers to date format in Excel

4. 今後、列Aに日付を入力または変更すると、列Cの日付が自動的に昇順で並べ替えられます。スクリーンショットをご覧ください:

A screenshot showing automatically sorted dates after entering new data in Excel


arrow blue right bubble VBAコードを使用して日付が入力または変更されたときに自動的に日付を並べ替える

次のVBAコードを使用すると、日付を入力または変更した際に元の列で日付を自動的に並べ替えることができます。

1. 日付を入力または変更した際に自動的に日付を並べ替えたいワークシートに移動します。

2. シートタブを右クリックし、コンテキストメニューから「コードの表示」を選択します。開いたMicrosoft Visual Basic for Applicationsウィンドウで、次のコードを空白のモジュールウィンドウにコピーして貼り付けます。スクリーンショットをご覧ください:

VBAコード:日付が入力または変更された際に自動的に並べ替える:

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    On Error Resume Next
    If Application.Intersect(Target, Application.Columns(1)) Is Nothing Then Exit Sub
    If Target.Count > 1 Then Exit Sub
    Range("A1").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes, _
                                        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub

A screenshot of VBA code being entered in the Visual Basic editor for auto-sorting dates

注:上記のコードでは、入力された日付は列Aで自動的に並べ替えられます。必要に応じて、 A1A2を独自のセルに変更できます。

3. 今後、列Aに日付を入力すると、日付が自動的に昇順で並べ替えられます。

最高のオフィス生産性ツール

🤖 Kutools AI Aide:データ分析を革新:インテリジェント実行   |  コード生成  |  カスタム数式の作成  |  データを分析してグラフを生成  |  Kutools Functions を呼び出す
人気機能重複の検索・ハイライト・マーキング   |  空白行を削除   |  データを失わず列やセルを統合   |   丸める ...
スーパーLOOKUP複数条件VLOOKUP   複数値VLOOKUP  |  複数シートの検索  |  ファジーマッチ ....
高度なドロップダウンリストすばやくドロップダウンリストを作成   |  依存型ドロップダウンリスト   |  複数選択ドロップダウンリスト ....
列の管理:特定数の列を追加  | 列を移動  | 非表示列の表示状態を切り替え |  範囲と列の比較 ...
注目機能グリッドフォーカス   |  デザインビュー  |  強化された数式バー   ワークブック&ワークシートの管理   |  オートテキスト ライブラリ (Auto Text)   |  日付ピッカー   |  データの統合   |  セルの暗号化/復号化    リスト送信で電子メールを送信   |  スーパーフィルター   |   特殊フィルタ(太字/斜体/取り消し線でフィルタ...)
トップ15ツールセット12 種類のテキストツールテキストの追加特定の文字を削除など)  |  50 種以上のグラフ タイプガントチャートなど)  |  40を超える実用的な 数式誕生日に基づいて年齢を計算する、など)  |  19種の 挿入ツールQRコードの挿入パスから画像の挿入など)  |  12種類の 変換ツール単語に変換する通貨変換など)  |  7つの 結合&分割ツール高度な行のマージセルの分割など)  |  ...さらに多数
お好きな言語でKutoolsを使用できます ― 英語、スペイン語、ドイツ語、フランス語、中国語など40以上に対応!

Kutools for ExcelでExcelスキルを強化し、かつてない効率を体験しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と時間短縮を実現します。最も必要な機能を今すぐ取得...


Office TabはOfficeにタブ表示を追加し、作業効率を大幅に向上させます

  • Word、Excel、PowerPointでタブ編集とタブ閲覧を有効にします
  • 同じウィンドウ内の新しいタブで複数のドキュメントを開いたり作成したりできます。新しいウィンドウを開く必要はありません。
  • 生産性が50%向上し、1日に何百回ものマウスクリックも削減できます!