儲存在簡短文字 (文字) 或長文字 (Access 中備忘) 字段中的數位和字串會依字母順序排序。 換句話說,數位會根據組成值的個別數位來排序,而不是根據數值來排序。 例如,值 11 會出現在 2 之前,而值 12 會出現在 3 之前,如下表所示。
學生名稱 |
學生否 |
立民 |
1 |
Maria |
10 |
威廉 |
11 |
Mary |
12 |
簡 |
2 |
林恩 |
3 |
傑森 |
4 |
Mary |
5 |
若要確保數字是根據其數值排序,而不是依字母順序排序,請執行下列其中一項操作:
-
如果欄位只包含數值,請考慮將欄位的數據類型變更為 [數位 ] 或 [ 貨幣]。
-
如果發生下列情況,請使用下列程式:
-
欄位只包含數值,但您不想變更欄位的數據類型。
-
欄位包含數值和字串值,但您想要在排序時忽略字串值。
-
此程式使用 Val 函數取得儲存為文字之數位的數值。 表達式也會使用 If 函數處理可能在排序欄位中的Null值。
-
在 [常 用] 索引 標籤的 [ 排序 & 篩選 ] 群組中,按兩下 [ 進階 ],然後按下快捷方式功能表上的 [ 進階篩選/排序 ]。
-
輸入表達式 表達式表達式1:IIf ([Fieldname] 是 Null, 0, Val ([Fieldname]) ) 在第一欄的 [功能 變數] 列中。
IIf 函數會檢查域值是否為 Null,如果是,則會將其視為 0。 如果值不是 Null,IIf 函數會呼叫 Val 函數以取得相等數值。
-
在 [ 排序 ] 儲存格中,選取 [ 遞增 ] 或 [遞減]。
遞增排序會顯示頂端最小值的記錄,以及底部有最大值的記錄。 遞減排序則相反。
-
在 [常 用] 索引 標籤的 [ 排序 & 篩選 ] 群組中,按兩下 [ 切換篩選]。
如果上述程式不適合您,還有另一種方法可避免變更數據表的結構。 這涉及包含較少位數及前置零的「邊框距離」值。 例如,您在套用排序之前,先將 11、2、2000 和 3 的值變更為 0011、0002、2000 和 0003。