- 作成日 : 2025年10月27日
スプレッドシートで日付順に並べるには?基本の並べ替えから日付認識エラーの原因まで完全解説
Googleスプレッドシートで日付が思い通りに並ばないと、データ分析やスケジュール管理が滞ってしまいます。原因は、日付に見えるデータが実はただの文字列だったり、様々な形式の日付が混在していたりと、意外なところに潜んでいます。
この記事では、基本的な昇順・降順の並べ替えから、複数条件を使った応用的な並べ替え、さらには関数による自動化まで、日付データを正確に扱うための方法を手順を追って解説します。
目次
スプレッドシートで日付順に並べる基本的な方法は?
スプレッドシートで日付順に並べるには、データ範囲の選択、並べ替えメニューの使用、フィルタ機能の活用、SORT関数での自動化という4つの方法があり、データの規模や更新頻度に応じて最適な方法を選択できます。
日付順の並べ替えは、時系列でのデータ分析やレポート作成において不可欠な機能です。
データメニューからの標準的な並べ替え
最も基本的な日付順の並べ替えは、「データ」メニューを使用する方法です。まず、並べ替えたいデータ範囲全体を選択します。ヘッダー行がある場合は、それも含めて選択することが重要です。次に、メニューバーから「データ」→「範囲を並べ替え」を選択します。
並べ替えダイアログが表示されたら、「データにヘッダー行が含まれている」にチェックを入れ、並べ替えの基準となる日付列を選択します。昇順(古い日付から新しい日付)または降順(新しい日付から古い日付)を選択し、「並べ替え」ボタンをクリックします。
この方法の利点は、複数の条件で並べ替えができることです。例えば、まず日付で並べ替え、同じ日付内では金額順に並べるといった設定が可能です。「並べ替え条件を追加」をクリックして、第2、第3の条件を追加できます。
フィルタ機能を使った並べ替え
フィルタ機能を使用すると、データを表示したまま何度でも並べ替えを変更できます。データ範囲を選択し、「データ」→「フィルタを作成」(またはCtrl+Shift+L)を実行すると、各列のヘッダーにフィルタアイコンが表示されます。
日付列のフィルタアイコンをクリックし、表示されるメニューから「日付順に並べ替え」または「日付の降順に並べ替え」を選択します。フィルタが適用されている間は、新しいデータを追加しても、フィルタアイコンから簡単に再並べ替えできます。
フィルタビューを作成することで、他のユーザーの表示に影響を与えずに、個人用の並べ替え設定を保存できます。「データ」→「フィルタビュー」→「新しいフィルタビューを作成」から、「日付順表示」などの名前を付けて保存します。
SORT関数による自動並べ替え
SORT関数を使用すると、元データを変更せずに、別の場所に並べ替えた結果を表示できます。この方法は、元データの順序を保持したい場合や、常に最新の並べ替え結果を表示したい場合に有効です。
基本的なSORT関数の構文:
=SORT(A2:D100, 1, TRUE)
この例では、A2:D100の範囲を、1列目(A列)を基準に昇順(TRUE)で並べ替えます。日付が2列目にある場合は:
=SORT(A2:D100, 2, FALSE)
このように、2を指定し、FALSEで降順(新しい日付が上)に並べ替えます。
複数条件での並べ替えも可能です。
=SORT(A2:D100, 2, TRUE, 3, FALSE)
これは、2列目(日付)で昇順、同じ日付の場合は3列目で降順に並べ替えます。
クイック並べ替えのショートカット
選択した範囲を素早く並べ替えるショートカットとして、日付列の任意のセルを選択し、右クリックメニューから「列を並べ替え A→Z」(昇順)または「列を並べ替え Z→A」(降順)を選択する方法があります。
キーボード操作で並べ替えダイアログを開く確実なショートカットは標準で用意されていませんので、メニューから「データ」→「範囲を並べ替え」を選択するのが確実な方法もあります。
ただし、この方法を使用する際の注意点。
- 選択した列のみが並べ替えられる可能性がある
- 関連データとの整合性が崩れる危険性がある
- 事前にデータ全体を選択することが推奨される
- ヘッダー行の扱いに注意が必要
- 取り消し(Ctrl+Z)で元に戻せることを確認
QUERY関数での並べ替え
QUERY関数を使用すると、SQL風の構文で複雑な並べ替えを実現できます。
=QUERY(A:D, “SELECT * WHERE A IS NOT NULL ORDER BY A ASC”, 1)
この例では、A列(日付列)でデータを昇順に並べ替えます。日付の範囲を指定することも可能です。
=QUERY(A:D, “SELECT * WHERE A >= DATE ‘2024-01-01’ AND A <= DATE ‘2024-12-31’ ORDER BY A DESC”, 1)
QUERY関数の利点は、並べ替えと同時にフィルタリングや集計も行えることです。
スプレッドシートの複数条件で日付順に並べるには?
複数条件での日付順並べ替えは、メインの日付でソートした後、サブ条件で詳細な順序を制御でき、月別・部署別・優先度別などの複雑なデータ整理を効率的に実現できます。
実務では単純な日付順だけでなく、複数の要素を組み合わせた並べ替えが必要になることが多くあります。
並べ替えダイアログでの複数条件設定
「データ」→「範囲を並べ替え」ダイアログでは、[並べ替え列を追加]で複数条件を追加できます。5件に限定されているわけではありません。データ量や要件に応じて必要な数だけ条件を追加してください。例えば、プロジェクト管理表で「期限日」→「優先度」→「担当者」の順で並べ替える場合の設定方法を説明します。
まず、第1条件として期限日の列を選択し、昇順(近い期限が上)に設定します。次に「並べ替え条件を追加」をクリックし、第2条件として優先度列を選択、降順(高優先度が上)に設定します。さらに第3条件として担当者列を選択し、昇順(アルファベット順)に設定します。
この設定により、同じ期限日のタスクは優先度順に、同じ優先度のタスクは担当者名順に整理されます。
年月でグループ化した並べ替え
日付を年月単位でグループ化して並べ替える場合、補助列を作成する方法が効果的です。例えば、E列に以下の数式を入力します。
=TEXT(A2, “yyyy-MM”) (※必要に応じてロケール設定をご確認ください)
これにより、「2024-04」のような年月形式のテキストが作成されます。この補助列を第1条件、元の日付列を第2条件として並べ替えることで、月ごとにまとまった表示が可能になります。
さらに高度な方法として、年、月、日を別々の列に分割することもできます。
年:=YEAR(A2)
月:=MONTH(A2)
日:=DAY(A2)
これらの列を使用して、より細かい制御が可能になります。
カテゴリ別の日付順並べ替え
部署別やプロジェクト別に日付順で並べ替える場合、以下のような優先順位を設定します。
- 部署名(昇順)- アルファベット順または指定順
- 日付(昇順)- 各部署内で古い順
- 金額(降順)- 同日の場合は金額が大きい順
- カスタムリストを作成(例:「営業部」「開発部」「管理部」)
- MATCH関数で順序番号を生成
- その番号を基準に並べ替え
=MATCH(B2, {“営業部”,”開発部”,”管理部”}, 0)
SORT関数での動的な複数条件並べ替え
(Googleスプレッドシート)複数条件の動的並べ替えは SORT で実現します。
例:B列(日付)昇順 → C列降順
=SORT(A2:D100, 2, TRUE, 3, FALSE)
もしくは列参照で:
=SORT(A2:D100, B2:B100, TRUE, C2:C100, FALSE)
※ Excel での SORTBY に相当する機能は Sheets では SORT + 必要に応じて仮想キー列(ARRAYFORMULA/IF など)で代替します。
条件付き並べ替えの実装
特定の条件を満たすデータを優先的に表示する並べ替えも可能です。例えば、期限切れのタスクを最上位に表示する場合:
=SORT(A2:D100,
ARRAYFORMULA(IF(B2:B100<TODAY(), 0, 1)), TRUE,
B2:B100, TRUE)
この数式では、期限切れ(今日より前の日付)のタスクに0、それ以外に1を割り当て、まず期限切れを表示してから日付順に並べます。
スプレッドシートで日付が正しく並べ替えられない原因は?
日付が正しく並べ替えられない主な原因は、文字列として認識された日付、不統一な日付形式、空白や特殊文字の混入、地域設定の相違などがあり、それぞれに対応した修正方法があります。
日付の並べ替えトラブルは非常に多く、原因を正確に特定することが解決の第一歩です。
文字列として認識された日付の問題
最も一般的な問題は、日付が文字列(テキスト)として認識されていることです。この場合、「2024/1/9」が「2024/1/10」より後に来るなど、文字列のアルファベット順で並べ替えられてしまいます。
- セル内で左寄せになっている(日付は通常右寄せ)
- セルの左上に緑の三角マークが表示される
- 数式バーに’(アポストロフィ)が表示される
- TEXT関数やIMPORTDATA関数の結果である
- CSVファイルからインポートしたデータ
確認方法として、問題のセルを選択し、「表示形式」→「数値」→「日付」を適用してみます。正しく日付形式に変換されない場合は、文字列として保存されています。
日付形式の不統一による問題
異なる形式の日付が混在していると、正しく並べ替えられません。
- 2024/04/15
- 2024-04-15
- 24/4/15
- 4月15日
- April 15, 2024
- 15.04.2024
これらが混在すると、Googleスプレッドシートは一部を日付として認識できず、並べ替えが正常に機能しません。
統一する方法として、まずすべてのデータを確認し、最も多い形式を標準とします。次に、異なる形式のデータを特定し、手動またはSUBSTITUTE関数で修正します。
=DATEVALUE(SUBSTITUTE(A2, “.”, “/”))
空白セルと非表示文字の影響
データ内に空白セルや非表示文字(スペース、改行、タブなど)が含まれていると、並べ替えに影響します。
- TRIM関数で前後の空白を削除:=TRIM(A2)
- CLEAN関数で制御文字を削除:=CLEAN(A2)
- SUBSTITUTE関数で特定文字を削除:=SUBSTITUTE(A2, CHAR (160), “”)
- LEN関数で文字数を確認:=LEN(A2)
- ISBLANK関数で空白チェック:=ISBLANK(A2)
これらの関数を組み合わせて、クリーンなデータを作成します。
=DATEVALUE(TRIM(CLEAN(A2)))
地域設定と言語の影響
スプレッドシートの地域設定により、日付の解釈が異なることがあります。例えば、「01/02/2024」は、アメリカでは1月2日、ヨーロッパでは2月1日と解釈されます。
- 「ファイル」→「設定」を開く
- 「全般」タブで地域設定を確認
- 必要に応じて「日本」または適切な地域を選択
- タイムゾーンも確認・調整
- 「設定を保存」をクリック
地域設定を変更すると、既存の日付データの解釈が変わる可能性があるため、注意が必要です。
数式と手入力の値が混在している
同じ列に直接入力した日付と、数式で生成した日付が混在していると、並べ替えに問題が生じることがあります。
例えば、一部のセルに=TODAY()や=DATE(2024,4,15)などの数式があり、他のセルに直接日付を入力している場合です。
解決方法として、すべてを値に変換する方法があります。
- 日付列全体を選択
- コピー(Ctrl+C)
- 「編集」→「特殊貼り付け」→「値のみ貼り付け」
または、すべてを数式に統一することも可能です。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
WORKDAY関数の使い方をわかりやすく解説
WORKDAY関数は、ビジネスにおける日付計算を効率的に行うための便利なツールです。本記事では、WORKDAY関数の基本的な使い方から、利用シーンや土日、祝日を除外した計算方法までを詳しく解説します。また、結果がズレてしまう場合の原因や対処…
詳しくみるFALSE関数の使い方:論理値を扱う基本関数をマスターしよう
Excel の FALSE関数は、論理値「FALSE」を返すシンプルな関数です。単体では使用頻度が低いものの、IF関数やAND関数などの論理関数と組み合わせることで、条件分岐や判定処理において重要な役割を果たします。本記事では、FALSE関…
詳しくみるスプレッドシートでカレンダーを作成するには?日付自動生成からGoogle連携まで
Googleスプレッドシートを使えば、シフト表や進捗管理表などをカレンダー形式で自由に設計できます。独自カレンダーを作成して自社の運用に合わせたり、Googleカレンダーと連携して予定を同期したりすることで、より効率的なスケジュール管理が可…
詳しくみるスプレッドシートでスマホから改行するには?セル内改行の手順と改行できない場合の対処法
スマートフォンでGoogleスプレッドシートを使用する際、セル内で改行したいと思っても、パソコンのように簡単にはいかないことがあります。外出先や移動中でもデータ入力を効率的に行うためには、スマホでの改行方法をマスターすることが重要です。 本…
詳しくみるスプレッドシートでプルダウンを複数選択する方法と活用例
タスク管理表で担当者を複数選びたい、アンケートで複数の選択肢にチェックを入れたい、そんなときに便利なのがプルダウンの複数選択機能です。実は、Googleスプレッドシートでは2024年のアップデートで、プルダウンから複数の項目を選択できるよう…
詳しくみるHOUR関数の使い方:時刻データから時間を抽出する方法
HOUR関数は、時刻データから「時」の部分だけを取り出す関数です。勤怠管理での労働時間計算、スケジュール管理での時間帯別集計、24時間営業の売上分析など、時間に関するデータ処理で頻繁に使用されます。例えば、「14:30:45」という時刻から…
詳しくみる