Accessテーブルで並べ替えする方法 複数条件と保存の基本

概要

この記事の結論
Accessのテーブルはデータシートビューで対象フィールドを選び、昇順または降順を指定すると並べ替えできます。複数条件では優先順位を明確にし、繰り返し使う一覧は選択クエリへ保存すると管理しやすくなります。テーブルにも最後の並べ替えを保存できますが、それは表示設定であり、他のクエリや帳票の順番を保証するものではありません。同じ値の行にはIDなどの条件を追加しましょう。
テーブルの並べ替えとは、保存されたレコードを指定フィールドの値に従って画面上へ並べて表示する操作です

この記事でわかること

  • 昇順と降順でテーブルを並べ替える
  • 並べ替えを解除して保存と再表示を確認する
  • 複数フィールドの優先順位を決める
  • 繰り返す並べ替えを選択クエリへ保存する
  • 数字 日付 空白が想定順にならない原因を調べる

この記事の主な内容

  1. 昇順と降順でテーブルを並べ替える
  2. 並べ替えを解除して保存と再表示を確認する
  3. 複数フィールドの優先順位を決める
  4. 繰り返す並べ替えを選択クエリへ保存する
  5. 数字 日付 空白が想定順にならない原因を調べる
  6. 業務で再現できる並び順を設計する
  7. よくある質問

想定読了時間:約13分~17分


昇順と降順でテーブルを並べ替える

Accessのテーブルは、データシートビューで対象フィールドを選び、[ホーム]の[並べ替えとフィルター]から昇順または降順を指定すると並べ替えできます。値を探したり、同じ種類のレコードを近くへ集めたりしたいときに便利です。[1]

昇順と降順はデータ型によって意味が変わる

昇順は数値なら小さい順、日付なら古い順です。降順はその逆になります。文字列は照合順序などに従って並びます。「新しい受注を上へ出す」なら受注日の降順、「単価が安い商品から見る」なら単価の昇順を選びます。

データ昇順の例降順の例
数値1、2、1010、2、1
日付2026/10/01、2026/10/152026/10/15、2026/10/01
英字の文字列A、B、CC、B、A
数字を含む文字列文字列として比較数値の大小とは別

数字に見える商品コードと、計算対象の数量では適切な型が異なります。先頭にゼロがあるコードを数値として扱うと、元の意味が変わる場合があります。並び順が違うと感じたら、まず何を比較したい列なのか確認しましょう。

数値と日付の昇順と降順の違いを説明した図

テーブルを1列で並べ替える手順

1. ナビゲーションウィンドウで対象テーブルを開きます。
2. データシートビューで、並べ替えたい列の中のセルをクリックします。
3. [ホーム]→[並べ替えとフィルター]から昇順または降順を選びます。
4. 列見出しの表示と、先頭・末尾の値を確認します。
5. 別の列を確認するときは、必要に応じて並べ替えを解除してから設定します。

列の右クリックメニューや見出しのメニューから、対応する並べ替えを選べる場合もあります。表示名はデータ型やAccessのバージョンで異なりますが、対象の列と昇順・降順の組み合わせを確認する点は同じです。

並べ替えは行全体へ適用される

テーブルの並べ替えでは、同じレコードの各フィールドはひとまとまりとして移動します。氏名だけが別の住所と組み合わさるような操作ではありません。ただし、データシート上で値を直接入力すると、その変更はデータ更新になります。並べ替え操作とセルの編集を混同しないようにしてください。

テーブルのデータシートで列を選び並べ替える手順

並べ替えを解除して保存と再表示を確認する

現在の並べ替えを解除する場合は、[ホーム]の[並べ替えの解除]を使います。ただし、解除すれば必ず最初に入力した順番へ戻るわけではありません。順番を指定しない状態の表示や取得順を、業務上の決まりとして使わないことが大切です。

解除と元の順番への復元は別

「元の順番」が必要なら、何を基準にした順番なのかを定義します。登録日時順なのか、伝票番号順なのか、担当者が決めた表示順なのかで、必要なフィールドが変わります。最後にIDを加えると同じ値の行同士も並べやすくなります。

オートナンバーは識別子です。欠番があること自体は異常ではなく、削除後に番号を詰める必要もありません。IDの大小を登録時刻そのものと見なさず、業務で必要なら登録日時や表示順を別に保存します。

テーブルにも最後の並べ替えを保存できる

テーブルの並べ替えは保存できない、という理解は正確ではありません。Accessでは、最後に適用した並べ替えをオブジェクトとともに保存できます。次に開いたとき適用するかは、Order By On Loadに相当する[読み込み時に並べ替え]などの設定を確認します。[2]

テーブルをデザインビューで開き、F4でテーブル全体のプロパティを表示して確認します。個々のフィールドのプロパティと取り違えないようにしてください。保存後は一度閉じ、開き直して期待した順番になっているか確かめます。

設定の種類用途注意点
現在の並べ替えいま表示中の一覧を整理操作で変わる
最後の並べ替えの保存次回も同じ表示を使う後の並べ替え保存で変わり得る
選択クエリの条件業務で使う順番を定義別の利用者向けに名前を分けられる

保存されるのは表示に関する設定です。元テーブルの物理的な格納順を利用者が固定したことにはならず、このテーブルを使う別クエリやレポートの順番まで決まるわけでもありません。必要な出力先で条件を明示します。

並べ替えは表示設定でありデータ更新ではないことを示した図

複数フィールドの優先順位を決める

複数条件では「どの列を最初に比較し、同じ値のときに次の何を比較するか」を決めます。例えば顧客別に新しい受注を見たい場合は、顧客IDの昇順、受注日の降順、受注IDの昇順という順番を定義できます。

優先順位を具体例で確認する

次の例では、顧客ID10の行を先に集め、その中で新しい受注日から並べます。同じ顧客で同じ日付の行は受注IDで順番を確定します。顧客をまたいで全体の日付順にしたい場合とは、優先順位が異なります。

優先順位項目方向役割
1顧客ID昇順顧客ごとにまとめる
2受注日降順同じ顧客の新しい受注を先にする
3受注ID昇順同じ日時の受注の順番を決める

画面操作の順番と条件の優先順位を混同しない

データシートで列ごとに順次並べ替える場合は、一般に内側の条件から先に、最も優先したい条件を最後に適用します。隣接する複数列をまとめて選ぶ方法では、左側の列を外側の条件として扱うため、列の位置も関係します。[1]

このように操作方法で考え方が変わるため、毎回確実に同じ複合条件を使いたいなら、クエリのデザインまたはORDER BYで条件を見える形にします。何回クリックしたかを覚えるより、顧客、日付、IDの優先順位を保存する方が引き継ぎやすくなります。

途中の並べ替えを残さない

試行錯誤した後は、いったん並べ替えを解除し、決めた手順で適用し直します。列見出しだけでは複数条件の全体像が読み取りにくいことがあります。顧客が同じで日付が違う行、顧客も日付も同じ行を用意し、優先順位ごとに結果を確認してください。

顧客と日付とIDで並び順の優先順位を決める図

繰り返す並べ替えを選択クエリへ保存する

日次の確認一覧や担当者別の作業一覧は、選択クエリへ条件を保存すると再利用しやすくなります。選択クエリは、元テーブルから必要な列と行を取り出す仕組みです。並べ替えだけを設定しても、元の保存値を書き換える処理にはなりません。[2][3]

デザインビューで作成する

1. [作成]→[クエリデザイン]を開き、T_受注を追加します。
2. 顧客ID、受注日、受注ID、金額など必要なフィールドを配置します。
3. 並べ替えの優先順に、顧客ID、受注日、受注IDを左から並べます。
4. [並べ替え]行を、順に昇順、降順、昇順へ設定します。
5. データシートビューで確認し、「Q_受注_顧客別新しい順」などの名前で保存します。

並べ替えにだけ使うフィールドは、必要に応じて[表示]のチェックを外せます。結果に見せる列順と並べ替えの優先順位を分けたい場合は、非表示のソート用列を使う方法があります。集計や重複排除を加える場合は、そのクエリの条件も別途確認します。

SQLで条件を明確にする

以下は、T_受注に該当フィールドがある場合のAccess SQL例です。SQLビューに表示すると、どの条件が先かを1か所で確認できます。先頭のSELECTは取得する列、FROMは元テーブル、ORDER BYは並べ替えを指定します。

SELECT [受注ID], [顧客ID], [受注日], [金額]
FROM [T_受注]
ORDER BY [顧客ID] ASC, [受注日] DESC, [受注ID] ASC;

ASCは昇順、DESCは降順です。左の条件が先に適用され、同じ値なら次の条件で比べます。全顧客を通して新しい順にしたい場合は、受注日を先頭へ置くなど、業務の要求に合わせて順序を変えます。[3]

読みやすい名前で用途を残す

「クエリ1」のままでは何の一覧か分かりません。「顧客別新しい順」「納期順」「担当別未処理」など、確認目的が伝わる名前にします。ただし、クエリの名前に書いた条件が実際のSQLと一致しているかも確認してください。

同じテーブルから、用途別に複数の選択クエリを作ることはできます。テーブル自体を並べ替え用に複製してデータを二重管理する必要はありません。元データを共通に保ちながら、見る順番を分けることがクエリの利点です。

繰り返し利用する並べ替えを選択クエリへ保存する図

検索一覧とデータ設計の改善を検討している方へ

まずは記事の手順をコピー上で試し、設定と結果を確認してください。複数の画面や利用者に影響する、保存や集計の仕組みから見直したい場合は、対象ファイルの形式・症状・期待する動作を整理してご相談ください。


数字 日付 空白が想定順にならない原因を調べる

並べ替えの方向が正しくても、データ型や保存内容が想定と違うと、期待する順番になりません。表示形式を変える前に、テーブルの型、クエリの式、未入力、見えている値と保存値の関係を確認します。

症状考えられる原因確認の方向
1 10 2になる数字が文字列数量かコードかを判断
日付の順が不自然日付が文字列、年が欠落元の日付/時刻型を使う
空欄が先頭に集まるNullが含まれる未入力の配置ルールを決める
名前順に見えないルックアップ表示と保存IDの違い表示名の列を明示したクエリを使う
日本語の順が期待と違う読みが保存されていない、照合順序フリガナ列の利用を検討
並べ替えが使えない添付型やOLEなど管理用の日時や名称で並べる

数値への変換は元データを確認してから

数量の列に文字列で数値が入っている場合は、データの整理が必要です。ただし、空文字、単位付きの値、全角文字などが混ざっていると、一律の数値変換でエラーや意図しない結果が発生します。まずコピー上で変換できない値を抽出し、修正方針を決めます。[5]

商品コードや郵便番号など、数として計算しないものは、文字列のまま保持する方が適する場合があります。「001」を「1」へ変えると別のコードになる可能性もあります。並びを整えるために識別情報を失わないよう、表示順専用の数値列を持つ方法も検討できます。

Nullを末尾へ置くルールを作る

未入力の日付を末尾へまとめたいなら、選択クエリに「未入力順: IIf(IsNull([受注日]),1,0)」のような列を追加します。未入力順を昇順、次に受注日を必要な方向、最後に受注IDを指定すれば、未入力の行を別のまとまりとして扱えます。

未入力を仮の日付で埋める方法は、納期や経過日数の計算に影響します。順番のためだけなら、元データの意味を保ち、補助列で配置を決める方が安全です。Nullが入力漏れなのか、業務上まだ決まっていない値なのかも区別しておきます。

ルックアップと日本語の読みを確認する

ルックアップでは、画面に顧客名が見えていても、実際には顧客IDを保存している場合があります。表示と保存を分けて確かめ、顧客名順が必要なら顧客マスターと結合したクエリで、その名前の列を並べ替えに指定します。

漢字の氏名を期待する五十音順へ並べたい場合は、フリガナを別に保持し、読みの列で並べます。表記揺れや空白、全角・半角の扱いもルール化します。状態名を「未着手、処理中、完了」の順にしたい場合は、文字順に頼らず順序番号を設ける方法が適しています。[4]

データ型とNullとルックアップが並び順に影響することを示した図

業務で再現できる並び順を設計する

業務用の一覧は、誰が開いても必要な順番を再現できることが重要です。テーブルの手動操作だけに依存せず、並べ替えの対象、方向、優先順位、同じ値の扱いを明示します。印刷や外部出力へ使う場合は、その出力先でも条件を確認します。

完成後に確認すること

  • 同じ顧客で日付が異なる行を用意し、第1条件と第2条件を確認します。
  • 顧客も日付も同じ行を用意し、IDによる追加条件を確認します。
  • Null、文字列の数字、前ゼロのコードを含めて確認します。
  • 保存して閉じ、同じ入口から開き直します。
  • フィルターで一部の行が隠れていないか確認します。
  • レポートやCSVなどの出力先でも対象と順番を確認します。

並べ替えとフィルターは役割が違う

並べ替えは行の順番を変え、フィルターは対象行を絞ります。並べ替えを直した後に件数が減ったように見える場合は、同時にフィルターが残っていないかを確認してください。現在表示されている件数だけで、元データが消えたと判断しないことが大切です。

また、選択クエリをフォームへ使っていても、フォーム側のOrderByなどの設定が別に適用される場合があります。レポートではグループ化と並べ替えを確認します。元のテーブルで並んでいるという理由だけで、すべての画面が同じ順になるとは考えないでください。

件数が増えて遅くなった場合

データが多くなると、並べ替えの処理が重くなる場合があります。頻繁に検索や並べ替えへ使う列のインデックスは検討候補ですが、追加すれば常に改善するわけではなく、更新時の負荷も増えます。まず不要な行や列を取得していないか、計算式で毎回変換していないかを確認します。

同じテーブルに用途別のコピーを増やすより、必要な列を取り出すクエリと明確な条件で整理します。共有環境で遅い場合は、データ量だけでなくネットワークやバックエンドの構成も含めて調べると、並べ替え設定以外の原因を見落としにくくなります。

並べ替え条件を明示し再表示と出力まで確認する図

よくある質問

通常の昇順・降順の操作は、レコードの表示順を変えるもので、フィールドの保存値を書き換える更新処理ではありません。同じレコードの顧客名や住所が別々になることもありません。ただし、データシート上でセルへ入力すると、それはデータの編集になります。また、並べ替えの設定を保存することと、値を更新することは別です。業務用ファイルで試す前にコピーを用意し、対象列と操作内容を確認すると、誤編集を防ぎながら練習できます。

はい。最後に適用した並べ替えを、テーブルなどのオブジェクトとともに保存できます。次回開いた際に適用するかは、読み込み時の並べ替え設定も確認します。ただし、後から別の並べ替えを保存すると表示設定が変わり得ます。毎日使う業務一覧は、条件を明示した選択クエリとして名前を付ける方が用途を伝えやすくなります。保存されるのは表示の設定であり、他のクエリや帳票が同じ順番で取得することまで保証するものではありません。

必ず戻るとは限りません。解除は現在の並べ替えを外す操作であり、過去に入力した時刻を復元する機能ではないためです。登録順で見る必要があるなら、登録日時を保持してその列で並べ、同じ日時の行にはIDを追加します。オートナンバーは識別用で、欠番や後からの取り込みもあるため、業務上の時系列と完全に一致するとは限りません。「元の順番」を何で定義するかを決め、表示順を指定しない状態に依存しないことが重要です。

クエリのデザインでは、並べ替えを指定した列の左側から優先され、SQLのORDER BYでも左から順に比較します。データシートの列ごとの操作では、内側の条件から先に適用するなど、操作方法を意識する必要があります。例えば顧客別の日付順なら、顧客を最優先にし、その中で日付、最後にIDを使います。繰り返し使う順番は、クリックの履歴に頼らずクエリへ保存してください。同じ顧客・同じ日付の行を用意すると優先順位を確認しやすくなります。

数字が数値型ではなく文字列として保存・計算されている可能性があります。文字列順では、数値の大小と異なる結果になります。元テーブルの型と、クエリでFormatなどを使っていないか確認してください。ただし、商品コードの001などは前ゼロが必要な識別情報かもしれません。並びを直すためだけに数値へ変換すると意味が変わります。数量なら数値型への整理を検討し、コードなら文字列を保持したまま順序用の列を別に持つ方法も考えます。

テーブルで並べ替えたからといって、別のフォームやレポートの順番まで自動的に保証されるわけではありません。フォームにはOrderByなどの条件があり、レポートにはグループ化と並べ替えの設定があります。業務で必要な順番は、最終的に利用する画面や帳票でも明示してください。クエリから取得する場合も、表示時に別の条件が適用されていないか確認します。保存して開き直し、印刷やCSV出力まで同じ対象と順番になるか確かめると安心です。

まとめ

テーブルの並べ替えは、対象列を選び昇順・降順を指定するところから始めます。繰り返す条件はクエリへ保存し、同じ値にはIDなどの追加条件を設けましょう。表示順、保存値、フィルターを区別し、データ型と出力先まで確認すると、業務で再現しやすい一覧になります。

検索一覧とデータ設計の改善を検討している方へ

まずは記事の手順をコピー上で試し、設定と結果を確認してください。複数の画面や利用者に影響する、保存や集計の仕組みから見直したい場合は、対象ファイルの形式・症状・期待する動作を整理してご相談ください。


関連記事

Accessクエリの作成方法と失敗しない確認手順

Accessレポートで並べ替えする方法

Accessクエリでグループ化して集計

Accessレポートを印刷プレビューからPDFで出力する方法

参考情報

[1] Microsoft 文字列 数値 日付の並べ替え
https://support.microsoft.com/en-us/access/sort-records-on-text-numeric-or-date-values

[2] Microsoft 並べ替え順の保存
https://support.microsoft.com/en-us/access/save-a-sort-order-with-a-table-query-form-or-report

[3] Microsoft ORDER BY句
https://support.microsoft.com/en-us/access/order-by-clause

[4] Microsoft 独自の順序で並べ替え
https://support.microsoft.com/en-us/access/sort-records-in-custom-order

[5] Microsoft データ型の変更
https://support.microsoft.com/en-us/access/modify-or-change-the-data-type-setting-for-a-field

TOP