Excel

【Excel】エクセルで日付の並び替えがうまくいかない・できない原因と対処法(セルや行ごと・順番がおかしい・フィルター等・昇順降順・データ形式)

当サイトでは記事内に広告を含みます
いつも記事を読んでいただきありがとうございます!!! これからもお役に立てる各情報を発信していきますので、今後ともよろしくお願いします(^^)/

エクセルで日付を並び替えようとしたのに、思ったとおりに並ばない……そんな経験はありませんか。

「昇順にしたはずなのに順番がバラバラ」「日付として見えているのに並び替えが効かない」といった悩みは、Excelを使う多くの方が直面する問題です。

その原因のほとんどは、Excelが日付データとして認識できていないことにあります。

見た目は日付でも、Excelの内部では文字列として扱われているケースが非常に多く、その場合は並び替えが正常に機能しません。

本記事では、日付の並び替えがうまくいかない原因を根本から整理し、昇順・降順それぞれの正しい操作手順と、文字列日付をシリアル値に変換する具体的な対処法まで、丁寧に解説していきます。

エクセルで日付の並び替えができない根本的な原因

日付の並び替えがうまくいかないとき、まず疑うべきはデータ形式の問題です。

Excelにおける日付は、内部的には「シリアル値」という数値で管理されています。

たとえば2024年1月1日はシリアル値「45292」として記録されており、この数値をもとに並び替えが行われます。

しかし、セルに入力されているのが「2024/01/01」という文字列だった場合、Excelはそれを数値ではなく文字として認識するため、正しい日付順に並びません。

以下のサンプルデータを用いて、この問題を具体的に確認していきましょう。

A列:商品名 B列:入荷日 C列:数量 D列:担当者
ハラス 2024/03/15 120 田中
マグロ 2024/01/08 85 佐藤
カツオ 2024/05/22 200 鈴木
アボカド 2024/02/14 60 田中
カボチャ 2024/04/03 150 佐藤
マシュマロ 2024/06/30 300 鈴木
チョコ 2024/01/25 90 田中

このB列「入荷日」が日付型(シリアル値)として正しく認識されているかどうかが、並び替えの成否を左右します。

文字列として入力された日付が並び替えに失敗する理由

文字列として入力された日付は、Excelから見ると「単なるテキスト」です。

文字列の並び替えは辞書順(アルファベット順・文字コード順)で行われるため、「2024/10/01」が「2024/02/01」より前に来てしまうことがあります。

これは数値として比較すれば10月>2月ですが、文字列として比較すると「1」<「2」という順になるためです。

見た目はまったく同じ日付表示であっても、セルの左上に小さな緑の三角マーク(エラーインジケーター)が表示されている場合は、文字列として認識されているサインです。

セルの書式設定と実際のデータ型の違い

Excelでよく混乱が生じるのが、「書式設定」と「データ型」は別物だという点です。

セルの書式を「日付」に設定しても、入力されているデータが文字列であれば、並び替えは正しく機能しません。

書式設定はあくまで「表示の見た目」を変えるだけであり、データの実態を変えるものではないのです。

逆に言えば、シリアル値として正しく入力されていれば、書式が「標準」であっても日付順の並び替えは問題なく動作します。

外部データ取り込みやコピペによる文字列化の問題

システムからエクスポートしたCSVファイルや、Webサイトからコピーしたデータを貼り付けた場合、日付が文字列として取り込まれるケースは非常に多く見られます。

また、別のアプリケーションからのコピー&ペーストも文字列化の原因になりがちです。

「取り込んだデータの日付は要注意」という意識を持っておくと、トラブルを未然に防げます。

【操作のポイント】セルを選択してセルの書式設定(Ctrl+1)を開き、「表示形式」タブで「日付」と表示されていても安心は禁物です。数式バーに表示される値が「45292」のような数値になっているかどうかを確認しましょう。文字列の場合は「2024/01/08」のままの表示になります。

日付がシリアル値かどうかを確認する方法

並び替えを正しく行うためには、まずデータがシリアル値として認識されているかどうかを確認することが重要です。

確認方法はいくつかありますが、最も簡単なのはISNUMBER関数を使う方法です。

ISNUMBER関数で日付データを判定する

ISNUMBER関数は、セルの値が数値(シリアル値を含む)かどうかを判定し、TRUEまたはFALSEを返します。

日付はExcel内部では数値として扱われるため、正しい日付型であればTRUEが返ります。

数式例(E2セルに入力):

=ISNUMBER(B2)

結果がTRUEならシリアル値(日付型)、FALSEなら文字列です。

📊 Excel イメージ図 ― ISNUMBER関数で日付型を確認
A B C D E
1 商品名 入荷日 数量 担当者 日付判定
2 ハラス 2024/03/15 120 田中 =ISNUMBER(B2)
3 マグロ 2024/01/08 85 佐藤 TRUE
4 カツオ 2024/05/22 200 鈴木 TRUE
5 アボカド 2024/02/14 60 田中 FALSE

▲ E5のFALSEは文字列日付。赤字セルは文字列として入力されており並び替えが正しく動作しません。E2にISNUMBER(B2)を入力し、下方向にオートフィルで確認できます。

E列にISNUMBER関数を入力し、下方向にオートフィルで引っ張ることで、一括して全行の日付型を確認できます。

FALSEが返ってきたセルは文字列日付ですので、後述する変換処理が必要です。

セルの配置方向でも確認できる

Excelでは数値は右揃え、文字列は左揃えで表示されるのがデフォルトの挙動です。

日付型のシリアル値も内部的には数値のため、右揃えになっていれば日付型、左揃えになっていれば文字列の可能性が高いと判断できます。

ただしセルの書式設定で手動配置を変更している場合は判断できないため、あくまで補助的な確認方法として活用しましょう。

数式バーの表示で見分ける方法

セルをクリックしたときに画面上部の数式バーに何が表示されるかも重要なヒントになります。

日付型であれば「2024/3/15」のように日付形式で表示され、文字列であれば入力したそのままの文字が表示されます。

また、シリアル値を直接確認したい場合は、セルの書式を「標準」に変更してみるのが確実です。

数値(例:45296)が表示されれば日付型、「2024/03/15」のままであれば文字列と判断できます。

【操作のポイント】ISNUMBER関数はデータ量が多い場合に特に有効です。判定用の列をひとつ追加してオートフィルで一括確認し、FALSEの行だけを絞り込んで修正するという流れが効率的です。確認が終わったらE列(判定列)は削除してOKです。

文字列になった日付をシリアル値に変換する対処法

文字列として認識されている日付を、正しい日付型(シリアル値)に変換することで、並び替えが正常に機能するようになります。

変換方法はいくつかあり、データの状況によって最適な手段が異なります。

DATEVALUE関数を使った変換

DATEVALUE関数は、文字列として入力された日付をシリアル値に変換する専用の関数です。

変換結果を別セルに出力してから、値として貼り付けることで元のデータを置き換えられます。

数式例(E2セルに入力):

=DATEVALUE(B2)

B2が文字列「2024/02/14」の場合、シリアル値「45336」が返されます。

その後、E列をコピーして「値のみ貼り付け」でB列に上書きし、セルの書式を「日付」に変更します。

DATEVALUE関数が有効なのは、日付文字列が「YYYY/MM/DD」や「YYYY-MM-DD」などの標準的な形式である場合です。

「令和6年2月14日」のような和暦表記には対応していないため、その場合は別の変換方法を検討する必要があります。

📊 Excel イメージ図 ― DATEVALUE関数でシリアル値に変換
A B(文字列日付) E(変換後)
1 商品名 入荷日 シリアル値変換
2 アボカド 2024/02/14 =DATEVALUE(B2)
3 カボチャ 2024/04/03 45385
4 マシュマロ 2024/06/30 45473

▲ B列が左揃えになっており文字列であることがわかります。E2にDATEVALUE(B2)を入力しオートフィルで下に引っ張ります。E列をコピーし「値のみ貼り付け」→B列に上書き後、書式を「日付」に設定します。

区切り位置機能を使った一括変換

関数を使わずに文字列日付を一括変換できる便利な方法が、Excelの「区切り位置」機能です。

この機能はCSVデータの分割に使われることが多いですが、日付の型変換にも応用できます。

操作手順は以下のとおりです。

まず変換したい日付の列(B列)を選択し、「データ」タブ→「区切り位置」をクリックします。

ウィザードが起動したら「カンマやタブなどの…」を選択せずに「次へ」を2回クリックし、ステップ3で「列のデータ形式」を「日付」に変更、形式を「YMD」に設定して「完了」を押します。

これにより、選択範囲の文字列日付がまとめてシリアル値に変換されます。

VALUE関数や乗算による変換テクニック

DATEVALUE関数の代わりにVALUE関数を使っても、文字列をシリアル値に変換できます。

数式例:

=VALUE(B2)

または B2*1 (文字列に1を掛けることで数値変換を強制する方法)

B2に1を乗算する方法は、「空白セルに1を入力→コピー→変換したいセル範囲を選択→形式を選択して貼り付け→「乗算」を選択」という手順で実行できます。

値を直接書き換えることができるため、数式列を別途作成しなくて済む点がメリットです。

【操作のポイント】DATEVALUE関数で変換した結果のE列を、そのままB列に貼り付ける際は必ず「値のみ貼り付け(Ctrl+Alt+V → V → Enter)」を使いましょう。数式ごと貼り付けると循環参照のエラーが発生します。また貼り付け後は書式設定を「日付」に変更することを忘れずに。

エクセルで日付を昇順・降順に並び替える正しい操作手順

日付データが正しくシリアル値として認識されていることを確認できたら、いよいよ並び替えの操作に入ります。

Excelの並び替えには、ボタン一発で行う方法と、詳細設定を使う方法があります。

ホームタブ・データタブからの昇順降順ボタン操作

最もシンプルな並び替えは、並び替えたい列のいずれかのセルを選択した状態で、「データ」タブの「昇順(A→Z)」または「降順(Z→A)」ボタンをクリックする方法です。

日付の昇順は古い日付から新しい日付の順、降順は新しい日付から古い日付の順に並び替えられます。

このとき、列全体ではなくデータの入ったセル1つだけを選択しておくことがポイントで、列全体を選択すると並び替えの対象が正しく認識されない場合があります。

📊 Excel イメージ図 ― 昇順並び替えの結果(入荷日順)
▼ B列「入荷日」を昇順に並び替えた結果
A:商品名 B:入荷日 ▲昇順 C:数量 D:担当者
1 商品名 入荷日 数量 担当者
2 マグロ 2024/01/08 85 佐藤
3 チョコ 2024/01/25 90 田中
4 アボカド 2024/02/14 60 田中
5 ハラス 2024/03/15 120 田中
6 カボチャ 2024/04/03 150 佐藤
7 カツオ 2024/05/22 200 鈴木
8 マシュマロ 2024/06/30 300 鈴木

▲ B2セルを選択→「データ」タブ→「昇順」ボタンをクリック。1月→6月の順に正しく並び替えられています。

並び替えダイアログを使った複数条件の設定

「データ」タブ→「並び替え」ボタンをクリックすると、複数の条件を設定できる並び替えダイアログが開きます。

たとえば「担当者で昇順に並べた後、同じ担当者内ではさらに入荷日の昇順で並べる」というような複合条件も設定可能です。

「レベルの追加」ボタンで条件を追加し、「列」「並び替えのキー」「順序」をそれぞれ設定します。

日付列の「並び替えのキー」は「セルの値」を選択し、「順序」は「昇順」または「降順」を指定します。

テーブル機能を使った日付フィルター並び替え

データ範囲をExcelのテーブル(Ctrl+T)として設定すると、各列のヘッダーにドロップダウン矢印が表示され、クリック一つで昇順・降順の切り替えが可能になります。

テーブル化することでフィルター機能も同時に使えるようになり、特定の期間だけを表示しながら並び替えるといった高度な操作も直感的に行えます。

データ管理を定常的に行う表であれば、テーブル化しておくことを強くおすすめします。

【操作のポイント】並び替えダイアログでは「先頭行をデータの見出しとして使用する」にチェックが入っているか確認しましょう。チェックが外れていると1行目のヘッダーも一緒に並び替えられてしまいます。サンプルデータのように1行目がヘッダーの場合は必ずチェックを入れた状態で操作します。

特殊な日付形式・和暦・スラッシュなし日付への対処法

実務のデータには、「令和6年3月15日」「20240315」「2024.03.15」など、標準的でない日付形式が含まれることも少なくありません。

これらはExcelが自動的に日付型として認識できないケースが多く、個別の対処が必要です。

和暦表記を西暦シリアル値に変換する方法

「令和6年3月15日」のような和暦文字列をシリアル値に変換するには、DATEVALUE関数が直接使えないため、SUBSTITUTE関数と組み合わせる方法や手動での置換が有効です。

最もシンプルな方法は、「検索と置換(Ctrl+H)」で「令和6年」を「2024/」に、「月」を「/」に、「日」を空白に置換することです。

これにより「2024/3/15」という形式の文字列になるので、その後DATEVALUEで変換するかExcelが自動認識してシリアル値になります。

yyyymmdd形式(スラッシュなし8桁数値)の変換

「20240315」のようなスラッシュなしの8桁数値を日付型に変換するには、TEXT関数とDATEVALUE関数の組み合わせが効果的です。

数式例(B2に「20240315」が入力されている場合):

=DATEVALUE(TEXT(B2,”0000!/00!/00″))

TEXTで「2024/03/15」という文字列に整形してから、DATEVALUEでシリアル値に変換します。

この数式で「20240315」という数値(または文字列)を正しい日付型のシリアル値に変換できます。

変換後はセルの書式を「日付」に設定することで、見た目も日付表示になります。

ドット区切り・ハイフン区切り日付の対処

「2024.03.15」(ドット区切り)や「2024-03-15」(ハイフン区切り)の場合、Excelのバージョンや設定によっては自動的に日付型として認識されることもありますが、文字列として扱われる場合もあります。

ドット区切りが文字列になっている場合は、「検索と置換」で「.」を「/」に置換するだけで解決できることが多いです。

ハイフン区切りは多くの場合Excelが日付として自動認識しますが、念のためISNUMBER関数で確認しておくと安心です。

【操作のポイント】8桁数値(20240315)の変換に使うTEXT関数の書式引数「”0000!/00!/00″」の「!」は、その直後の文字(スラッシュ)をそのまま表示するためのエスケープ文字です。スラッシュを「日付の区切り文字」としてではなく「除算記号」と解釈されないよう「!/」と記述するのがポイントです。

並び替えても崩れない!データ管理のベストプラクティス

日付の並び替えを確実に機能させるためには、そもそもデータを正しい形式で入力・管理することが最も根本的な解決策です。

日々のデータ入力の習慣を見直すことで、並び替えトラブルを根本から防げます。

日付入力時のルールを統一する

チームで共有するExcelファイルでは、日付の入力形式を統一するルールを設けることが重要です。

「YYYY/MM/DD形式で入力する」というルールを徹底するだけで、多くのトラブルを未然に防げます。

また、入力規則(データ→データの入力規則)で日付型のみ受け付けるよう設定しておくと、誤って文字列が入力されるリスクを排除できます。

「入力の種類」を「日付」に設定し、入力可能な期間を指定することも可能です。

TODAY関数・DATE関数を活用した動的日付入力

手入力ではなくTODAY関数やDATE関数を使って日付を入力すれば、常にシリアル値として記録されるため文字列化の心配がありません。

よく使う日付関数まとめ:

・TODAY() → 今日の日付を自動取得(ファイルを開くたびに更新)

・DATE(年,月,日) → 指定した年月日のシリアル値を返す(例:DATE(2024,3,15))

・NOW() → 現在の日時をシリアル値で返す(時刻も含む)

固定の日付を手入力する場合でも、「2024/3/15」と入力してEnterを押した後、セルが右揃えになっていることを確認する習慣をつけましょう。

列全体の書式を事前に「日付」に設定する

日付を入力する列をあらかじめ選択し、書式設定(Ctrl+1)で「日付」形式を設定しておくと、入力時にExcelが日付として解釈しやすくなります。

ただし、これだけでは文字列化を完全に防げるわけではないため、先述のISNUMBER関数による定期チェックも組み合わせることが理想的です。

「書式設定」+「入力規則」+「定期確認」の三重チェック体制を整えることで、日付データの品質を高く維持できます。

【操作のポイント】入力規則の設定は「データ」タブ→「データの入力規則」→「設定」タブ→「入力の種類」を「日付」に変更で行います。無効なデータが入力された際にエラーメッセージを出すよう「エラーメッセージ」タブで設定しておくと、ユーザーへの注意喚起にもなります。

まとめ:エクセルで日付の並び替えがうまくいかない原因と対処法

エクセルで日付の並び替えが正しく機能しない問題は、データが文字列として認識されているケースがほとんどです。

昇順・降順の操作自体に問題があるのではなく、日付型(シリアル値)として認識されていないことが根本原因であることを理解しておくことが大切です。

まずISNUMBER関数でデータの型を確認し、文字列になっている場合はDATEVALUE関数・区切り位置機能・乗算などの方法でシリアル値に変換することで、正しい日付順の並び替えが実現できます。

和暦や8桁数値など特殊な形式には、SUBSTITUTE関数やTEXT関数を組み合わせた変換処理が有効です。

また、トラブルを根本から防ぐには、入力ルールの統一・入力規則の設定・定期的な型チェックという3つの習慣を日常業務に組み込むことが、データ形式の品質維持につながります。

日付の並び替え・日付順のデータ管理・昇順降順の操作を正確に行うことで、Excelでの業務効率は大きく向上するでしょう。