跳至頁尾內容
EXCEL 工具

如何在Excel中鎖定行:您需要了解的一切

在Microsoft Excel中,如果您知道點擊的位置,對某一列進行A到Z排序大約需要三秒鐘。 點擊您想要排序的列中的任何一個單元格。 這將根據該列對整個資料範圍進行排序,確保每一行保持完整,相鄰列中的相應資料一起移動。請小心不要只選擇單列而不選擇其餘資料,因為這可能會使您的資訊錯位。

單擊能夠處理大約80%的真實Excel排序任務。 其餘20%更為有趣:如一次排序多個列、在行而不是列中按字母順序排序、處理阻塞排序的合併單元格以及在不同領域中選擇升序或降序,或跨數百個Excel表自動執行相同工作。 本指南涵蓋了每一種可靠的字母排序方法,包括排序對話框、右鍵上下文選單、鍵盤快捷鍵、Excel 365中的動態SORT函式、VBA宏以及針對使用IronXL的開發者的編程選項。

大多數使用者永遠不需要離開GUI介面。 前八種方法全部在Microsoft Excel本身內運行,並且每種都有逐步說明。 最後一節專為需要在應用程式或計劃的工作中對電子表格進行排序的開發者編寫,這是Iron Suite .NET文件工具之類的庫發揮作用的地方。

如何在Excel中字母排序:涵蓋每個用例的8種方法:圖像1——Excel功能區中突出顯示的資料選項卡和紅色圓圈中的A→Z按鈕

方法1:一鍵A→Z按鈕(最快)

大多數辦公室工作者使用此方法而從未學過其他任何東西,這對於大多數用例來說完美無缺。 預設行為基於活動單元格所在的列對整個表進行排序。

步驟:

  1. 點擊該列中的任意單元格進行排序。 不要手動突出顯示整列。
  2. 前往功能區上的資料選項卡。

  3. 點擊A→Z以按升序排序,或者Z→A以按降序排序。 這將根據選定的列按字母順序排序。

Excel會自動檢測資料邊界,識別第一行是否為標題行,並根據使用者點擊的列對表中的每一行進行排序。 名稱、產品、城市,任何基於文字的項目會在瞬間重新排序,所有相鄰列中的相關資料點與已排序列一起移動。

如何在Excel中字母排序:涵蓋每個用例的8種方法:圖像2——排序前的顧客姓名列和點擊A→Z後的同一列

最重要的是要理解:點擊單個單元格告訴Excel排序該列所屬的表。 如果通過點擊頂部的列字母手動選擇整列,Excel顯示"排序警告"對話框,詢問是否擴展當前選擇。 總是選擇擴展選擇以保持行資料相互連結。 只排序一列而不選擇擴展會永久打亂記錄,損害在一個Ctrl+Z之後很少可以修復。

方法2:排序對話框(多列)

A→Z按鈕僅基於一列排序。 對於涉及多列的更複雜的工作,如先按部門排序然後在各部門內按姓氏排序,排序對話框是合適的工具。 它允許您基於多個條件或列進行排序,提供靈活和定制的排序。 您可以定義一次操作跨多列的自定義排序順序。

步驟:

  1. 點擊資料中的任意單元格。
  2. 前往Data > Sort(或者按下Alt + A + S + S)。

  3. 在對話框中,從Sort by下拉列表中選擇要排序的列。

  4. 將順序設置為A到ZZ到A

  5. 點擊新增層級以新增第二、第三或第四個排序條件。 每一層級可以獨立以升序或降序排序列。

  6. 點擊 OK

如何在Excel中字母排序:涵蓋每個用例的8種方法:圖像3——排序對話框顯示兩個層級,部門(A到Z)和姓氏(A到Z)

對話框右上角的我的資料有標題複選框應在第一行包含列標題時勾選。 Excel通常會自動檢測到這一點,但混合格式的標題行(如標題中的日期或數字)有時會使自動檢測混淆。

一個常見的例子:銷售團隊希望每個客戶按區域分組,各區域內的公司按字母順序排列。 兩個排序層級能夠在一次操作中建立此佈局。 同一對話框還有一個選項按鈕,其可打開另一個排序選項對話框,用於區分大小寫的排序、自定義列表和方向設置。

方法3:右鍵上下文選單

對於喜歡不離開單元格區域操作的人來說,右鍵上下文選單提供了一條比返回功能區更短的路徑。 此方法產生與功能區按鈕相同的結果,但省了幾秒鐘的滑鼠移動。

步驟:

  1. 右鍵單擊要排序的列中的任何單元格。
  2. 在上下文選單中將滑鼠懸停在排序上。

  3. 選擇A到Z排序Z到A排序或其中之一的單元格顏色或字體顏色選項。

如何在Excel中字母排序:涵蓋每個用例的8種方法:圖像4——Excel中的右鍵上下文選單,帶有展開的排序子選單

右鍵選單還顯示了功能區中隱藏的一些排序選項,包括"將選定的單元格顏色放在最上面"和"將選定的字體顏色放在最上面"。當處理顏色編碼的電子表格並希望在字母排序之前將所有黃色加亮的行移至列表頂部時,這些選項有所幫助。

方法4:鍵盤快捷鍵

對於熟悉鍵盤的人,Excel有一系列的Alt鍵快捷鍵,可以在不觸碰滑鼠的情況下觸發排序。

快捷鍵:

  • Alt + A + S + A:升序排序(A到Z)
  • Alt + A + S + D:降序排序(Z到A)
  • Alt + A + S + S:打開完整的排序對話框

按下這些鍵時請按順序,而不是一起按住。 按下Alt後,觀察功能區:每個標籤和按鈕上顯示的小字母覆蓋可啟動它。 Excel將這些稱為"鍵提示",並使每個功能區命令都能通過鍵盤存取。

如何在Excel中字母排序:涵蓋每個用例的8種方法:圖像5——Excel功能區在按下Alt後顯示鍵提示,顯示每個標籤上的字母覆蓋

對於像每天早上對日報進行字母排序這樣的重複任務,鍵盤途徑比用滑鼠尋找按鈕快大約一倍。

方法5:通過過濾器下拉選單進行排序

當工作表已經應用了篩選器時,每個列標題中的篩選箭頭還起到了排序控制的作用。 篩選器組位於資料選項卡內的排序按鈕旁邊。

步驟:

  1. 通過前往資料 > 篩選器(功能區的篩選器組內)或者按Ctrl + Shift + L來應用篩選器。

  2. 點擊列標題中的小箭頭以進行字母排序。
  3. 在下拉選單頂部選擇A到Z排序Z到A排序,點擊排序並應用順序。

此方法有一個低估的優點:篩選器下拉選單可以按顏色排序、按自定義列表排序,並在同一工作流程中進行篩選和排序。 對於整天都在切片電子表格的分析師來說,將篩選器永久保持並從標題進行排序是可用的最有效的方法。 它還提供了一個快捷的視覺確認,即標題在排序記錄上方保持在正確的位置。

方法6:SORT函式(Excel 365和Excel 2021)

較新的Excel版本引入了動態陣列函式,包括SORT函式,它能在不修改原始資料的情況下按字母順序進行排序。 結果是一個活的公式,當源值更改時會更新。

基本語法:

=SORT(array, [sort_index], [sort_order], [by_col])
=SORT(array, [sort_index], [sort_order], [by_col])
=SORT(array, [sort_index], [sort_order], [by_col])
$vbLabelText   $csharpLabel

要將單元格A2:A100中的姓名列表按字母順序排序,並將排序結果從單元格C2開始列出,鍵入以下公式:

=SORT(A2:A100)
=SORT(A2:A100)
The provided C# code appears to be a fragment or possibly a misinterpretation of an Excel formula rather than actual C# code. If you intended to provide a C# code snippet, please check and provide the correct C# code for conversion to VB.NET.
$vbLabelText   $csharpLabel

要建立相同列表的逆字母順序版本:

=SORT(A2:A100, 1, -1)
=SORT(A2:A100, 1, -1)
The provided code appears to be a formula from a spreadsheet application like Excel, rather than C# code. If you have C# code that needs conversion to VB.NET, please provide that code.
$vbLabelText   $csharpLabel

相關函式SORTBY根據單獨一列中的值將某一列按字母順序排序。 要按部門按字母順序列出員工,其中姓名位於A列,部門位於B列:

=SORTBY(A2:A100, B2:B100)
=SORTBY(A2:A100, B2:B100)
The provided code appears to be an Excel formula rather than C# code. If you have C# code that you would like converted to VB.NET, please provide it, and I will be happy to assist with the conversion.
$vbLabelText   $csharpLabel

最大優勢:原始資料保持在原地。 排序版本是一個單獨的、實時的視圖。 當新名字被新增到源列表中,排序的輸出會自動更新。 這是儀表板和實時資料分析報告的理想選擇。

需要注意的是:SORT和SORTBY僅存在於Excel 365和Excel 2021中。早期版本,包括Excel 2019和2016,會返回#NAME? 錯誤。

方法7:重複任務的VBA宏

每週按字母順序排列同一報告的人可以通過在當前工作簿中保存一個簡短的VBA宏來自動處理整個工作。 這是非開發者最接近編寫程式碼的地方,對於重複性工作來說快速見效。

步驟:

  1. 按Alt + F11打開Visual Basic編輯器。
  2. 點擊插入 > 模塊
  3. 粘貼此程式碼以建立宏:
Sub AlphabetizeColumn()
    Range("A1").CurrentRegion.Sort _
        Key1:=Range("A2"), _
        Order1:=xlAscending, _
        Header:=xlYes
End Sub
Sub AlphabetizeColumn()
    Range("A1").CurrentRegion.Sort _
        Key1:=Range("A2"), _
        Order1:=xlAscending, _
        Header:=xlYes
End Sub
Sub AlphabetizeColumn()
    Range("A1").CurrentRegion.Sort( _
        Key1:=Range("A2"), _
        Order1:=xlAscending, _
        Header:=xlYes)
End Sub
$vbLabelText   $csharpLabel
  1. 關閉編輯器並通過開發者 > 宏將宏指派給按鈕或鍵盤快捷鍵。 要在以后刪除宏,返回同一對話框並將其從列表中刪除。

每次執行宏時,從A1開始的資料就會按第一列的字母順序排序。 調整單元格引用和列鍵以匹配工作表的實際佈局。 對於一把工作來說,這種方法可能太過,但對於每日、每週或每月報告來說卻是真正的時間節省。

方法8:按行而不是按列字母排序

大多數Excel中的排序是垂直進行的,但有時資料需要水平排序,從左到右。 排序對話框通過大多數使用者未注意到的單個核取方塊支持這一操作。

步驟:

  1. 突出顯示當前行要排序的單元格選擇範圍。
  2. 打開排序對話框(資料 > 排序)。
  3. 點擊對話框右上方的選項按鈕。

  4. 選擇從左到右排序
  5. 點擊確定,然後選擇要排序的行並選擇升序或降序。

這對於時間序列資料非常有用,因為每列代表一個月或一個類別,並且重新組織需要在行而不是列上發生。

常見問題和排除故障

Excel的排序在可預測的方式中會出現問題。 以下是最常出現的問題,以及如何解決每一個。

數字排序順序錯誤。當數字以1, 10, 11, 2, 20, 3的順序排序而不是1, 2, 3, 10, 11, 20時,這表示值是作為文字而不是數字儲存的。 選擇該列,點擊出現的小綠色警告三角,然後選擇轉換為數字。 然後重新排序。

相鄰的列沒有與排序一起移動。當排序之前只選擇了一列而不是單元格中的某一單個格時,就會發生這種情況。 Excel只排序當前選擇的內容,而將其他列中的相應資料遺留在後面。 總是立即撤銷(Ctrl + Z),點擊表內的單一單元格,再重新排序,以使每個相鄰列中的相關資料與已排序的記錄一起移動。

合併單元格阻礙排序。 Excel拒絕排序包含合併單元格的範圍,返回錯誤"此操作需要合併單元格具有相同的大小。" 在範圍內取消合併任何合併的單元格(首頁 > 合併及置中 > 取消合併單元格),排序,並在需要時重新應用格式。

標題被包括在排序中。 如果列標題最終被排序進了資料中,這表示Excel沒有識別到標題行。 打開排序對話框,並在排序前勾選我的資料有標題,以保持標題在正確的位置。

隱藏的行被重新排序。 隱藏的行即使不可見,也會參與排序,這可能會產生令人困惑的結果。 如果資料必須保持在特定的過濾視圖中,請在排序前取消隱藏所有內容(Ctrl + A,然後格式 > 取消隱藏行)。

領先的空格打破字母順序。 以" Smith"而不是"Smith"開頭的名字,在任何沒有空格的名字之前排序,因為空格字元的ASCII值低於字母。 在輔助列中應用TRIM函式(即原始列旁的新列),將結果粘貼為值、刪除輔助列,然後進行排序。

非字母列表的自定義排序順序。 自然日的名稱按字母排序會返回周五、周一、周六、周日、周四、週二、週三,這通常不是任何人期望的。 打開排序對話框,點擊順序下拉列表,選擇自定義列表,然後選擇星期幾。 Excel預設包含幾個自定義列表,自定義排序可以儲存以供將來跨其他工作簿使用。

區分大小寫的排序。 預設情況下,Excel忽略大小寫。 要強制執行大小寫敏感的排序(其中Apple位於apple之前),打開排序對話框,點擊選項,並勾選區分大小寫

Excel忽略帶重音字母的字元。 排序如Élise、Ana和Ömer的列表,根據區域設置可能產生意想不到的結果。 在文件 > 選項 > 語言下驗證檔案的地區,並考慮臨時更改系統地區,如果排序需要遵循特定國家的排序規則。

針對開發人員:在程式碼中對Excel文件進行字母排序

以上內容對於非開發者已經足夠。 本節其餘部分是為需要在應用程式、後端作業或自動化流水線中對電子表格進行排序的工程師編寫的,在這種情況下手動打開Microsoft Excel不是一個選項。

IronXL是一個.NET庫,能夠以編程方式讀取、寫入和操作Excel文件。 它不需要Microsoft Office或Excel互操作,這意味著它可以在伺服器上、Docker容器中和雲函式內清晰運行。 按字母順序排序列需要三行程式碼:

using IronXL;
WorkBook workbook = WorkBook.Load("employees.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();
sheet["A2:A100"].SortAscending();
workbook.SaveAs("employees-sorted.xlsx");
using IronXL;
WorkBook workbook = WorkBook.Load("employees.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();
sheet["A2:A100"].SortAscending();
workbook.SaveAs("employees-sorted.xlsx");
Imports IronXL

Dim workbook As WorkBook = WorkBook.Load("employees.xlsx")
Dim sheet As WorkSheet = workbook.WorkSheets.First()
sheet("A2:A100").SortAscending()
workbook.SaveAs("employees-sorted.xlsx")
$vbLabelText   $csharpLabel

這就處理了整項工作。 相同的模式可擴展到批量處理的數千個文件、每晚運行的計劃作業,以及任何需要在無人干預的情況下重新組織Excel資料的工作流程。 逆字母順序使用SortDescending()在同一範圍上。

最後說明

在Excel中進行字母排序是一項看似微不足道的任務,直到當某個電子表格拒絕正確排序時,它就會成為工作日中最讓人沮喪的五分鐘。 幾乎所有問題都可以追溯到上面提到的問題:合併單元格、混合資料型別、領先空格或在單擊排序之前選擇太多(或太少)。

對於絕大多數的辦公室工作來說,資料選項卡上的A→Z按鈕是正確的方法。 對於多列排序,選擇排序對話框。 對於可重複的工作,選擇簡短的VBA宏。 對於自動化、大規模或基於伺服器的工作流程,IronXL可以從C#、F#或VB.NET幾行程式碼中執行相同操作。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話