仕事やデータの整理をしていると、エクセルで日付順に並べる操作は毎日何度もやりますよね。でも、古い順に並べ替えたはずなのに順番がバラバラになってしまったり、文字列として認識されてうまくできないと悩んだ経験はありませんか。実は、エクセルには日付や空白セルを扱うための独自のルールがあり、それが原因で関数がエラーを起こしたり、意図した通りに並ばなかったりすることが多いんです。この記事では、私が普段エクセルを触っていて気づいた、日付順に並べ替えるための基本から、うまくいかないときの具体的な解決策までをわかりやすくお伝えしようと思います。ぜひ一緒にスッキリとした表を作っていきましょう。

- エクセルが日付を認識する基本的な仕組みとシリアル値の意味
- 文字列として認識された日付を正しく並べ替えるための具体的な手順
- 空白セルや数式のエラーを防ぐための表の作り方と設定方法
- 関数やピボットテーブルを使った高度な並べ替えのテクニック
エクセルで日付順に並べる基本と原因
ここでは、エクセルで日付データを古い順や新しい順に並べ替える基本的な考え方と、なぜかうまくいかない時に考えられる主な原因について見ていきますね。データがきれいに並ばない時は、まずはここからチェックしてみるのがおすすめです。
並べ替えがうまくいかない時の確認
エクセルで日付の並べ替えがおかしくなる一番の原因は、データが「シリアル値」として認識されていないことかも。「シリアル値」というのは、エクセルが日付を管理するための内部的な連番のことです。
見た目は「2023/10/01」や「10月1日」となっていても、エクセル側がそれをただの「文字列(テキスト)」として認識していると、カレンダーの順番ではなく、文字コードの順番(辞書順)で並んでしまうんですね。
日付がきれいに並ばないときは、まずセルの書式設定を開いて、データが正しく「日付」または「数値」として扱われているかを確認してみてください。
文字列から日付データへの変換方法
もしデータが文字列になってしまっている場合は、正しい日付データに変換する必要がありますね。簡単な方法としては、隣に新しく作業用の列を作って、そこに正しい形式で入力し直すことです。
最近のエクセルなら、フラッシュフィル機能(Ctrl + E)を使うと、文字列から数字だけを賢く抜き出してくれるのでとても便利かなと思います。
抜き出した数字がセルの中で「右寄せ」になっていれば、エクセルがちゃんと数値として認識してくれている証拠です。左寄せの場合はまだ文字列のままなので注意してくださいね。
どうしても文字のまま(「1月」「2月」など)並べ替えたい場合は、「ユーザー設定リスト」を使って、強制的に並べ替えの順番を指定することもできますよ。
表の構造が原因でできない場合の策
データの中身は問題ないのに、並べ替えボタンを押すと表の形が崩れてしまうことがあります。これは、表の見出し行(タイトル)や一番下の合計行が、普通のデータと一緒に混ざって並べ替えられてしまうのが原因ですね。
これを防ぐには、エクセルに「ここは見出しだよ」としっかり教えてあげることが大切です。
| 対策のポイント | 具体的な操作 |
|---|---|
| 見出しを区別する | 見出しの文字を太字にしたり、セルの背景色を変えたりする。 |
| 集計行を分ける | データ行と合計行の間に意図的に1行の空白行を入れる。 |
並べ替えのダイアログボックスを開いたときに、「先頭行をデータの見出しとして使用する」にチェックが入っているかどうかも、忘れずに確認してみてくださいね。
空白セルが混ざっている時の対処法
データの中に未入力の空白セルがあると、古い順(昇順)に並べたときに空白セルが一番上に来てしまったりして、ちょっとイライラすることがあるかもしれません。
標準の設定だと空白セルは一番下に移動するはずなんですが、他のシステムから持ってきたデータなどでは挙動が変わることがあります。そんな時は、少し工夫して、空白セルだけに一時的に「9999/12/31」のような極端に未来の日付を見えないように入れておき、並べ替えが終わったら元に戻すという裏技もありますよ。
システムによって空白の扱いが変わることもあるので、複雑な表の場合は「複数レベルの並べ替え」を使って、細かくルールを指定するのが確実かなと思います。
数式が崩れるエラーを防ぐ絶対参照
セルの中に数式が入っている状態で並べ替えをすると、「#REF!」というエラーが出たり、計算結果がぐちゃぐちゃになったりした経験はありませんか?これは、行が移動したことで、数式が参照しているセルの場所がズレてしまうからなんです。
数式を使った表を並べ替えるときは、必ず参照先を固定する「絶対参照」にしておく必要があります。数式バーで対象の範囲を選んで「F4キー」を押すと、「$」マークがついて場所が固定されますよ。これをやっておくだけで、エラーは劇的に減るはずです。
エクセルで日付順に並べる高度なワザ

ここからは、関数を使って並べ替えを全自動にしたり、少し特殊な条件で抽出したりする、ちょっと高度なテクニックをご紹介しますね。一度設定してしまえば、あとはデータを入れるだけで勝手に整理されるので、仕事の効率がグッと上がるかなと思います。
関数を使って自動で並べ替える方法
データが追加されるたびに、毎回リボンのボタンから並べ替えをするのは面倒ですよね。そんな時は、新しく追加されたSORT関数を使うのがおすすめです。
別のセルに「=SORT(データ範囲)」と入力するだけで、元のデータを一切いじらずに、きれいに昇順に並んだ表が別の場所にパッと自動で作られるんです。これをスピル機能と呼びます。元データに新しい日付が追加されたり修正されたりしても、SORT関数で作った表はリアルタイムで勝手に更新されるので、とても気持ちいいですよ。
複数条件を指定した複雑な並べ替え
「部署ごとにまとめた上で、さらにその中で入社日の古い順に並べたい」といった、複数の条件が絡む場合はSORTBY関数の出番です。
SORTBY関数を使うと、並べ替えたい表とは全く別の列を基準にしたり、計算結果を基準にしたりと、かなり自由度の高い並べ替えができます。
例えば、わざわざ作業用の列を作らなくても、「売上÷客数」という数式を関数の中に直接書き込んで、客単価が高い順に並べる、なんてこともできちゃいます。
年を無視して月だけを抽出する手順
社員の誕生日リストを作ったり、毎年の同じ月の売上だけを比較したりしたいとき、西暦(年号)の古い・新しいは邪魔になってしまいますよね。
シリアル値のままだと年・月・日がくっついているので、MONTH関数とDAY関数を使って、月と日の数字だけを別の列に抜き出してしまうのが一番確実な方法かなと思います。
| 使う関数 | 役割 | 結果の例 |
|---|---|---|
| MONTH関数 | 日付から「月」の数字だけを取り出す | 1〜12の数字 |
| DAY関数 | 日付から「日」の数字だけを取り出す | 1〜31の数字 |
この抜き出した数字を使って並べ替えれば、年号を完全に無視して、カレンダーの1月から12月までの純粋な順番通りにリストを作ることができますよ。
グラフやピボットテーブルでの操作
エクセルで表をきれいに並べ替えて横棒グラフを作ったら、なぜかグラフの順番が上下逆さまになってしまった…というのもよくある罠ですね。
これは表の並び順とグラフの描画ルールが違うために起こります。直すには、グラフの縦軸をダブルクリックして設定メニューを開き、「軸を反転する」という項目にチェックを入れるだけで、スッキリ解決します。
また、ピボットテーブルを使えば、シリアル値で入力された日付データを自動的に「年」や「月」ごとにグループ化して、柔軟に並べ替えることもできるので、大量のデータを分析するときには必須の機能ですね。
エクセルで日付順に並べるコツのまとめ
いかがでしたか?エクセルで日付データを意図した通りに並べ替えるには、まずは元のデータが正しい「シリアル値」として入力されているかどうかを確認することが何よりも大切です。
見た目に騙されず、データの中身をクリーンに保つルールを決めておくことで、和暦や西暦が混ざっていてもエラーを防ぐことができますね。
なお、ここでご紹介した関数の挙動や操作方法は、お使いのエクセルのバージョン(Microsoft 365など)によって異なる場合があります。大規模なデータベースの構築や、重要な業務システムに関わるデータ操作を行う際は、ここで紹介した手法はあくまで一般的な目安として捉え、正確な仕様はマイクロソフトの公式サイトをご確認ください。最終的なシステム導入の判断やデータ運用については、専門のIT担当者などにご相談されることをおすすめします。
今回ご紹介した関数や絶対参照のコツを少しずつ試してみて、毎日のエクセル作業を少しでも楽にしていただけたら嬉しいです。
