テキスト フィールドに保存されている数値に基づいてレコードを並べ替える

適用先
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Access の短いテキスト (テキスト) フィールドまたは長いテキスト (メモ) フィールドに保存されている数値と文字列は、アルファベット順に並べ替えられます。 つまり、数値は、数値ではなく、値を構成する個々の桁に基づいて並べ替えられます。 たとえば、次の表に示すように、値 11 は 2 の前に表示され、値 12 は 3 の前に表示されます。

学生名 学生番号
安田 1
Maria 10
William 11
メアリー 12
Jane 2
リン 3
Jason 4
メアリー 5

数値がアルファベット順ではなく数値に基づいて並べ替えられるようにするには、次のいずれかの操作を行います。

  • フィールドに数値のみが含まれる場合は、フィールドのデータ型を [数値] または [通貨] に変更することを検討してください。

  • 次の場合は、次の手順に従います。

    • フィールドには数値のみが含まれていますが、フィールドのデータ型は変更しない場合。
    • このフィールドには数値と文字列の両方が含まれていますが、並べ替え時に文字列値を無視します。

この手順では、 Val 関数を使用して、文字列として格納されている数値を取得します。 また、 IIf 関数を使用して、並べ替えフィールドに含まれる可能性のある null 値を処理します。

  1. [ホーム] タブの [並べ替えとフィルター] で [詳細設定] をクリックし、ショートカット メニューの [フィルター/並べ替えの編集] をクリックします。
  2. 最初の列のフィールド行に式 Expr1: IIf([フィールド名] は null, 0, val([フィールド名])) を入力します。
    IIf 関数は、フィールド値が null かどうかをチェックし、null の場合は 0 として処理します。 値が null でない場合、 IIf 関数は Val 関数を呼び出して同等の数値を取得します。
  3. [ 並べ替え ] セルで、[ 昇順 ] または [降順] を選びます。
    昇順で並べ替えでは、値が小さいレコードが上、最大のレコードが下に表示されます。 降順の並べ替えでは、その逆が行われます。
  4. [ホーム] タブの [並べ替えとフィルター] で、[フィルターの切り替え] をクリックします。

上記の手順がうまくいかない場合は、テーブル構造の変更を回避する方法を試すことができます。 これには、先頭に 0 があるより少ない桁数を含む値の "パディング" が含まれます。 たとえば、並べ替えを適用する前に、値 11、2、2000、および 3 を 0011、0002、2000、および 0003 に変更します。

ページの先頭へ