目次
この記事では、Excelで日付を並べ替えるさまざまな方法を紹介します。 日付を時系列に素早く並べる方法、年を無視して月ごとに並べる方法、誕生日を月と日ごとに並べる方法、新しい値を入力するときに日付で自動的に並べ替える方法について学びます。
Excelに組み込まれている並べ替えオプションは強力で効果的なツールですが、日付の並べ替えに関しては必ずしも正しく機能しません。 このチュートリアルでは、データを混乱させることなくExcelを日付ごとに有意義に並べるためのいくつかの便利なトリックを紹介します。
日付を時系列に並べ替える方法
Excelで日付を時系列に並べるのはとても簡単です。 標準の 昇順ソート オプションを使用します。
- 時系列に並べ替えたい日付を選択します。
- について ホーム タブで フォーマット グループをクリックします。 ソート&フィルター を選択し 古いものから順に並べ替え を使用することもできます。 A-Z オプションで データ タブで ソート&フィルター のグループです。
Excelで日付順に並べ替える方法
Excelの並べ替えオプションは、1つの列だけでなく、表全体を並べ替えるのにも使えます。 行を維持したまま日付順にレコードを並べ替えるには、指示が出たら選択範囲を広げることがポイントになります。
ここでは、詳細な手順は、日付単位でExcelのデータを並べ替えます。
- スプレッドシートで、列のヘッダーのない日付を選択します。
- について ホーム タブをクリックします。 ソート&フィルター を選択し 古いものから順に並べ替え .
- があります。 ソート警告 ダイアログボックスが表示されますので、デフォルトの 選択範囲を拡大する オプションを選択し ソート :
これで完了です!レコードは日付順に並べられ、すべての行が一緒に保管されています。
Excelで月別に並べ替える方法
を希望する場合があります。 月別に日付を並べ替える この場合、Excelのデフォルトのソート機能では、月または月と日だけが表示されるようにセルがフォーマットされていても、常に年が考慮されるため、うまくいきません。
解決策は、ヘルパーカラムを追加し、月番号を抽出して、そのカラムでソートすることです。 日付から月を取得するには、MONTH関数を使用します。
下のスクリーンショットでは、B2の日付からこの計算式で月番号を抽出しています。
=MONTH(B2)
ヒント:結果が数値ではなく、日付で表示される場合は、以下のように設定します。 一般 の書式を数式セルに設定します。
そして、今度は、テーブルを 月 この場合、月番号(C2:C8)を選択し、[OK]をクリックします。 ソート&フィルター > 小さいものから大きいものへ並べ替え というメッセージが表示されたら、選択範囲を広げます。 すべてが正しく行われると、次のような結果になります。
現在、データは月別にソートされ、各月内の年や日は無視されますので、ご注意ください。 もし、以下のことをしたい場合は、以下のようにします。 月日で並べ替える を選択し、次の例のように操作してください。
として月名を入力した場合 テキスト を選択し、この例で説明するようにカスタムリストでソートします。
Excelで誕生日を月と日で並べ替える方法
誕生日カレンダーの日付を並べる場合、月と日で並べるのが最適です。 そのため、生年月日から月と日を取り出す式が必要です。
この場合、日付を指定した書式の文字列に変換できるExcelのTEXT関数が便利です。 今回の目的では、「mmdd」または「mm.dd」という書式コードが有効です。
B2に元号がある場合、数式は以下のような形になります。
=TEXT(B2, "mm.dd")
次に、ソートを行います。 月と日 の列を大きいものから小さいものへ並べると、各月の日数順に並んだデータができあがります。
このようにDATE式を使っても同じ結果になります。
=date(2000, 月(b2),日(b2))
この式は、B2 の実際の日付から月と日を抽出し、実際の年を偽の年 (この例では 2000 年) に置き換えて日付のリストを作成します。 このアイデアは、すべての日付を同じ年にし、日付のリストを年代順に並べることです。 年は同じなので、日付は月と日ごとに並べられ、これはまさにあなたが求めているものと同じになります。を探している。
Excelでデータを年ごとに並べ替える方法
年での並べ替えは、エクセルの昇順ソート(以下、「昇順」)で年代順に並べるのが一番簡単な方法です。 古いものから新しいものへ )オプションがあります。
これにより、以下のスクリーンショットのように、日付が年、月、日の順にソートされます。
何らかの理由でこのような配置に満足できない場合は、日付から年を抽出するYEAR式でヘルパーカラムを追加することができます。
=YEAR(C2)
でデータをソートした後 年 列で、日付が年だけでソートされていることに気づくでしょう。 月日を経ずして .
補足:もし、あなたが 日付けの並べ替え 月や年は無視して、DAY関数で日を抽出し、その日ごとにソートする。 日 の欄があります。
=DAY(B2)
Excelで曜日ごとに並べ替える方法
曜日でソートするには、前の例のようにヘルパーカラムも必要です。 今回は、ヘルパーカラムにWEEKDAY式を入力して、曜日に対応する数値を返し、ヘルパーカラムでソートすることにします。
日曜日(1日)から土曜日(7日)まで始まる週の場合、このような計算式になります。
=WEEKDAY(A2)
あなたの一週間が月曜日(1日)から日曜日(7日)で始まるなら、こちらが正解です。
=weekday(a2, 2)
ここで、A2 は日付の入ったセルです。
今回の例では、最初の計算式を使って、このような結果になりました。
として曜日名を入力した場合 テキスト の場合、次の例で説明するように、カスタムソート機能を使用します。
Excelでデータを月名(または曜日名)で並べ替える方法
として、月名のリストがある場合。 テキスト このような場合、カスタムソートを使用すると便利です。
- 月名で並べ替えたいレコードを選択します。
- について データ タブで ソート&フィルター グループをクリックします。 ソート .
- での ソート ダイアログボックスで、次の操作を行います。
- アンダー コラム で、月名を含む列の名前を選択します。
- アンダー 並べ替え を選択します。 セルバリュー .
- アンダー ご注文 を選択します。 カスタムリスト .
- での カスタムリスト ダイアログ・ボックスで、完全な月名 ( 1月 , 2月 , 3月 や、短い名前 ( ヤン , 2月 , マー ...)は、ワークシートに記載されている月の表示方法によって異なります。
完了です!データがアルファベット順ではなく、月名で時系列に並べられました。
ヒント:並べ替えを行うには の名を冠する。 しゅうじつ を選択し、フルネーム( 日曜日 , 月曜日 , 火曜日 や、短い名前 ( 日 , 月 , 火 における... カスタムリスト のダイアログボックスが表示されます。
Excelで日付順に自動並べ替えする方法
このように、Excelの並べ替え機能は様々な課題に対応していますが、唯一の欠点は動的ではないことです。 つまり、データを変更したり新しい情報を追加したりするたびに、再度並べ替える必要があります。 新しい日付が追加されるたびに自動的に並び替えて、常にデータを整頓する方法はないかと考えている方もいらっしゃるでしょう。
以下に、以下のデータを日付順に自動ソートするコード例を示します。
マクロ1:ワークシートを変更するたびに自動ソートする
このマクロは、ワークシートのどこかに変更が発生するたびに実行されます。
データはA列からC列にあり、ソートしたい日付はC列のC2から始まっているものとします。 また、1行目にはヘッダー(Header:=xlYes)が含まれているとします。 レコードが異なる列にある場合は、次のように調整してください。
- A1の参照を、対象範囲(ヘッダーを含む)の左上のセルに変更します。
- C2参照を日付の入った一番上のセルに変更する。
マクロ2:特定の範囲に変更があった場合に自動でソートする
多くの情報を含む巨大なワークシートを扱う場合、シート内のあらゆる変更で再ソートが面倒になることがあります。 この場合、特定の範囲に発生した変更にマクロのトリガーを限定することは理にかなっています。 次のVBAコードは、日付を含むC列に変更があった場合にのみデータをソートするものです。
Private Sub Worksheet_Change( ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range( "C:C" )) Is Nothing Then Range( "A1" ).Sort Key1:=Range( "C2" ), _ Order1:=xlAscending, Header:=xlYes, _ OrderCustom:=1 , MatchCase:= False , _ Orientation:=xlTopToBottom End If End Sub.ヒント:これらのマクロを使うと、以下の条件で自動ソートができます。 任意のデータ型 サンプルコードでは昇順でソートしていますが、昇順でソートしたい場合は、次のようにします。 せいごう の場合、Order1:=xlAscendingをOrder1:=xlDescendingに変更します。
ワークシートにマクロを追加する方法
どちらのマクロもワークシートの変更時に自動的に実行されるため、データをソートしたいシート(この例ではSheet1)にコードを挿入する必要があります。 その方法は以下のとおりです。
- Alt + F11キーを押して、VBA Editorを開きます。
- での プロジェクト・エクスプローラ をクリックし、自動並べ替えを行うシートをダブルクリックします。
- コードをコードウィンドウに貼り付けます。
数式を使った日付の自動並べ替え
日付のリストがあり、それらを自動的に時系列で別の列に並べて、元のリストと並べたいとします。 これは、次の配列式で実現できます。
=IFERROR(INDEX($A$2:$A$20, MATCH(ROWS($A$2:A2), COUNTIF($A$2:$A$20, "<="&$A$2:$A$20), 0)), "")
A2:A20は元の(ソートされていない)日付で、新規入力が可能ないくつかの空白セルが含まれます。
元の日付のある列(この例ではC2)の横の空白セルに数式を入力し、Ctrl + Shift + Enterキーを同時に押して完了します。 次に、数式を残りのセル(ここではC2:C20)にドラッグダウンしてください。
ヒント:新しく追加された日付を自動的にソートするには、参照する範囲に十分な数の空白セルを含めるようにしてください。 たとえば、日付のリストは範囲 A2:A7 にありますが、数式に $A$2:$A$20 を指定して、セル C2 から C20 に入力します。 IFERROR 関数は、余分のセルでエラーが発生しないようにして、代わりに空文字列 ("") を返します。
Excelの日付による並べ替えが機能しない
日付が正しくソートされていない場合、Excelが理解できない形式で入力されている可能性が高いため、日付ではなく文字列として認識されています。 次のチュートリアルでは、いわゆる「テキストの日付」を区別して、通常のExcelの日付に変換する方法を説明します:Excelでテキストから日付を変換する方法。
以上、エクセルで日付順に並べ替える方法でした。 読んでくださってありがとうございました!来週も当ブログをよろしくお願いします。
ダウンロード可能なもの
日付順に並べる計算式の例 (.xlsx ファイル)
自動並べ替えマクロ(.xlsmファイル)