Note: The other languages of the website are Google-translated. Back to English

Excel 排序:按文本、日期、數字或顏色對數據進行排序

在 Excel 中對數據進行排序是一項常見且簡單的任務,它有助於根據您選擇的排序類型對數據進行重新排序。 通常,通過內置的排序功能,您可以對一列或多列中的數字、文本字符串、日期和時間進行排序; 您還可以根據您創建的自定義列表或單元格格式(例如字體顏色、背景顏色或圖標)快速輕鬆地對數據進行排序。

除了這些簡單的排序之外,您在日常工作中可能還需要更多有用和復雜的排序。 本教程將介紹一些不同種類的排序來解決您在 Excel 中的問題。

目錄:

1. 訪問 Excel 中的排序選項

2. 排序的基本用法

3.排序的高級用法

4.輸入或更改數據時自動排序數據

5. 其他排序案例


訪問 Excel 中的排序選項

為了應用排序功能,Excel 提供了多種訪問排序選項的方法。

1.1 功能區中的排序按鈕

應用排序功能的最快方法是使用功能區中的排序按鈕。

單擊包含要排序的值的列中的任何單元格,然後單擊 數據 標籤,在 排序和過濾 部分,點擊 將A到Z排序 or 將Z排序到A 按鈕以按字母順序升序或降序對數據進行排序。 看截圖:

備註:如果數據范圍內有空白行,應用這些按鈕後,只有選中的單元格位於空白行上方或下方的數據范圍才能成功排序。


1.2 排序對話框

排序和過濾 一組 數據 標籤,還有一個 分類 按鈕,請參見屏幕截圖:

點擊後 分類 按鈕,一個 分類 彈出對話框如下圖所示:

那麼,在 分類 對話框中,您可以根據需要選擇相應的數據排序規則。

保養竅門: 也可以用快捷鍵打開這個 分類 對話框,請按 Alt + A + S + S 鍵盤上的連續鍵。


1.3 篩選菜單中的排序選項

如果您對數據范圍應用了過濾器,您還可以找到排序選項和過濾器選項。 單擊任何列中的過濾器圖標,您可以在展開的列表中看到排序選項,如下圖所示:

備註:這些排序選項會根據列中的數據而變化:如果列中有文本,它將顯示 將A到Z排序, 將Z排序到A; 如果列中有數字,它會顯示 最小到最大排序, 排序最大到最小; 如果列中有日期,它將顯示 從最舊到最新排序, 按最新到最舊排序.


1.4 右鍵排序選項

在 Excel 中,您還可以使用右鍵排序選項快速輕鬆地對數據進行排序,右鍵單擊要排序值的列中的任何單元格,在上下文菜單中,您可以看到有六個排序選項可用,請選擇你需要的那個,看截圖:


排序的基本用法

Excel Sort 功能可以幫助您進行一些簡單的排序,例如按升序或降序對數字、文本字符串、日期進行排序,根據字體或背景顏色對單元格進行排序。 本節將討論這種排序功能的一些基本用法。


2.1 按文本、數字或日期對數據進行排序

要根據文本、數字或日期按升序或降序對一系列數據進行排序,請執行以下步驟:

1. 選擇要排序的數據范圍,然後單擊 數據 > 分類,請參見屏幕截圖:

2。 在 分類 對話框中,進行以下操作:

  • 部分,選擇要基於的列名稱;
  • 排序 部分,選擇 單元格值 選項;
  • 訂購 部分,指定排序順序。 (要對文本字符串進行排序,請選擇 A到Z or Z到A; 要對號碼列表進行排序,請選擇 最小到最大 or 最大到最小; 要對日期單元格進行排序,請選擇 最舊到最新 or 最新到最舊.)
  • 保養竅門:如果您的數據中有標題,請確保 我的數據有標題 被檢查。 如果您的數據沒有標題,請取消選中它。

3。 然後,點擊 OK 按鈕,所選數據將根據您一次指定的列進行排序。


2.2 按單元格顏色、字體顏色、單元格圖標對數據進行排序

如果您想根據單元格顏色、字體顏色或條件格式圖標對數據范圍進行排序,排序功能可以快速解決此任務。

假設您有一個數據范圍,其格式為一些單元格顏色,如下圖所示,如果您需要根據單元格顏色重新排列數據,例如,您想將淺紅色行放在頂部,然後是淺色黃色和淺藍色行,要按單元格顏色對行進行排序,請執行以下操作:

1. 選擇要根據單元格顏色排序的數據范圍,然後單擊 數據 > 分類分類 對話框。

2。 在 分類 對話框,指定以下操作:

2.1)像這樣在頂部設置第一個單元格顏色:

  • 部分,選擇 姓名 或其他帶有彩色單元格的列。 在這個例子中,我在所有列中都有彩色單元格,你可以選擇任何列名;
  • 排序 部分,請選擇 電池顏色 選項;
  • 訂購 部分,選擇一種要放在頂部或底部的單元格顏色;

2.2) 然後,單擊 添加關卡 按鈕添加第二個和其他規則級別,重複上述步驟設置第二個和其他單元格顏色。

  • 保養竅門:如果您的數據中有標題,請確保 我的數據有標題 被檢查。 如果您的數據沒有標題,請取消選中它。

3。 完成設置後,單擊 OK 按鈕,並且數據范圍已按您指定的單元格顏色排序,請參見屏幕截圖:

保養竅門:根據上述步驟,您也可以選擇根據字體顏色或單元格圖標對數據進行排序 字體顏色 or 條件格式圖標 在排序對話框中。


2.3 按多列對數據進行排序

如果你有一個如下截圖所示的大數據集,現在你想要執行多級數據排序以更清晰地讀取數據,例如,先按 Region 列排序,然後按 State 列,最後按 Sales 列排序。 你怎麼能在Excel中進行這種排序?

要按多列對數據進行排序,請執行以下步驟:

1. 選擇要排序的數據范圍,然後單擊 數據 > 分類分類 對話框。

2。 在 分類 對話框,單擊 添加關卡 按鈕兩次,因為您要使用三列進行排序。 然後你可以看到兩個 然後 規則級別已添加到列錶框中:

保養竅門:如果您的數據中有標題,請確保 我的數據有標題 被檢查。 如果您的數據沒有標題,請取消選中它。

3。 來自 排序然後 下拉列表,選擇要基於的列名稱,然後選擇 單元格值 來自 排序 部分分別為每個選定的列,最後,根據需要選擇排序順序。

4。 然後,點擊 OK,您將得到如下圖所示的排序結果:


2.4 基於自定義列表對數據進行排序

此排序功能還為您提供自定義列表排序,而不是按字母或數字順序對數據進行排序。 例如,您希望按照您定義的狀態 - 未開始、進行中、已完成對以下數據范圍進行排序。 在這裡,我將介紹如何處理這種類型的排序。

1. 選擇要排序的數據范圍,然後單擊 數據 > 分類分類 對話框。

2。 在 分類 對話框中,選擇要排序的列 部分,然後選擇 單元格值 來自 排序 部分,在 訂購 部分,點擊 自訂清單 選項,請參見屏幕截圖:

保養竅門:如果您的數據中有標題,請確保 我的數據有標題 被檢查。 如果您的數據沒有標題,請取消選中它。

3。 和a 自定義列表 會彈出框,請進行以下操作:

  • 點擊 新清單習俗 列錶框;
  • 然後,按照您需要排序的順序輸入文本字符串到 列表條目 盒子; (輸入文字時,請按 Enter 分隔條目的鍵。)
  • 最後點擊 加入 按鈕,新列表被添加到 自定義列表 立即開箱。

4。 然後,點擊 OK 按鈕返回到 分類 對話框。 新的自定義項目列表現在顯示在 訂購 下拉列表。

5。 然後,單擊 OK 按鈕關閉對話框,結果,數據范圍已按您定義的自定義列表排序,請參見截圖:


2.5 從左到右對數據進行排序(水平排序)

通常,您總是從上到下對數據表進行垂直排序,但有時,您可能希望根據行值對數據進行排序(從左到右排序)。 例如,在下面的數據范圍中,我想根據 Name 行中的值對其進行排序。

在這種情況下,排序功能有一個內置功能,允許您從左到右排序。 請按照以下步驟操作:

1. 選擇要排序的數據范圍(不包括標題),然後單擊 數據 > 分類 轉到“排序”對話框。

2。 在彈出的 分類 對話框,單擊 選項 按鈕,然後,在 排序選項 對話框中選擇 從左到右排序 選項,請參見屏幕截圖:

3。 點擊 OK 回到排序對話框,現在,在 部分,指定要基於的行號對數據進行排序,然後選擇 單元格值排序 部分,最後,在 訂購 你需要的部分,看截圖:

4。 然後,點擊 OK,您的數據按以下屏幕截圖排序:


2.6 區分大小寫的數據排序

通常,數據排序不以區分大小寫的順序執行,如下面的第一個屏幕截圖所示。 但是,如果您想讓排序區分大小寫,如下面的第二個屏幕截圖所示,您如何在 Excel 中解決此任務?

要在 Excel 中執行區分大小寫的排序,請執行以下操作:

1. 選擇要排序的數據范圍,然後單擊 數據 > 分類分類 對話框。

2。 在 分類 對話框中 部分,指定要基於的列名稱對數據進行排序,然後選擇 單元格值排序 部分,最後,在 訂購 你需要的部分,看截圖:

保養竅門:如果您的數據中有標題,請確保 我的數據有標題 被檢查。 如果您的數據沒有標題,請取消選中它。

3. 繼續點擊 選項 此對話框中的按鈕,以及 排序選項 提示框,選中 區分大小寫 選項,請參見屏幕截圖:

4。 點擊 OK > OK 要關閉對話框,數據將按區分大小寫的順序排序,當文本相同時,先小寫然後大寫。 看截圖:


排序的高級用法

在日常工作中,你可能會遇到其他更複雜、更實際、更具體的排序問題,本節將討論excel中的多種排序任務。

3.1 根據頻率對數據進行排序

假設您有一列數據列表,現在您想按數據出現頻率的降序對該列進行排序,如下圖所示。 在這裡,我將介紹兩種方法來解決這個任務。

 使用輔助列根據頻率對數據進行排序

在Excel中,沒有直接根據出現次數對數據進行排序的方法,這裡可以創建一個輔助公式來獲取每個文本的出現頻率,然後按照輔助列進行排序,得到你需要的排序結果。

1. 在與原始數據相鄰的空白單元格中鍵入以下公式,例如 B2,然後將填充手柄向下拖動到單元格以應用此公式,請參見屏幕截圖:

=COUNTIF($A$2:$A$16,A2)

備註:在以上公式中, A2:A16 是包含要按頻率排序的數據的列表,以及 A2 是這個列表的第一個數據。

2. 然後,繼續選擇公式單元格,然後單擊 數據 > 將A到Z排序 or 將Z排序到A 根據需要,在彈出窗口中 排序警告 提示框,選擇 擴大選擇,請參見屏幕截圖:

3。 然後,點擊 分類 按鈕,現在原始列已按頻率排序,如下圖所示:

提示:

1.得到結果後,您可以根據需要刪除幫助列。

2. 如果存在出現次數相同的文本字符串,則相同的文本可能不會排序在一起。 在這種情況下,你應該去 分類 對話框,首先按幫助列排序,然後按文本排序,如下圖所示:


 使用方便的功能根據頻率對數據進行排序

如果你有 Excel的Kutools,其 高級排序 功能,您可以快速輕鬆地根據出現頻率對數據進行排序,而無需任何輔助列。

安裝後 Excel的Kutools,請這樣做:

1. 選擇要排序的數據列表,然後單擊 Kutools 加 > 分類 > 高級排序,請參見屏幕截圖:

2。 在 高級排序 對話框中,選擇要排序的列 部分,然後選擇 頻率 排序 下拉列表,最後,指定排序順序 訂購 部分,請參見屏幕截圖:

保養竅門:如果您的數據中有標題,請確保 我的數據有標題 被檢查。 如果您的數據沒有標題,請取消選中它。

3。 然後,點擊 OK 按鈕,數據列表已經一次按出現次數排序,見截圖:


3.2 根據字符長度對數據進行排序

如果您有一個包含不同長度文本字符串的數據列表,現在您可能需要按字符長度對數據進行排序,以使列看起來整潔。 本節將討論如何按字符數對數據進行排序。

 使用輔助列根據字符長度對數據進行排序

要按字符長度對列進行排序,應使用 LEN 函數計算每個單元格的字符數,然後應用 Sort 函數對數據列表進行排序,請按以下步驟操作:

1。 輸入此公式 = LEN(A2) 到與原始數據相鄰的空白單元格中,例如,B2,然後將填充手柄向下拖動到單元格以應用此公式,請參見屏幕截圖:

2. 然後,繼續選擇公式單元格,然後單擊 數據 > 將A到Z排序 or 將Z排序到A 根據需要,在彈出窗口中 排序警告 提示框,選擇 擴大選擇,請參見屏幕截圖:

3。 然後,點擊 分類 按鈕,字符串已按字符長度排序。 您可以根據需要刪除輔助列 B。 看截圖:


 使用簡單選項根據字符長度對數據進行排序

為了快速輕鬆地按字符數對數據進行排序,在這裡,我將推荐一個方便的工具—— Excel的Kutools,其 高級排序 功能,您可以輕鬆處理此任務。

安裝後 Excel的Kutools,請這樣做:

1. 選擇要排序的數據列表,然後單擊 Kutools 加 > 分類 > 高級排序.

2。 在 高級排序 對話框中,選擇要排序的列 部分,然後選擇 文字長度 來自 排序 下拉列表,最後,指定您需要的排序順序 訂購 部分。 看截圖:

保養竅門:如果您的數據中有標題,請確保 我的數據有標題我已檢查。 如果您的數據沒有標題,請取消選中它。

3。 然後,點擊 OK 按鈕,列表中的文本字符串已按字符長度排序,如下圖所示:


3.3 按姓氏排序全名

在對全名列表進行排序時,Excel 會使用姓名的第一個字符進行排序,但是如果要按姓氏對數據進行排序呢? 在這裡,我將為您帶來一些技巧,讓您輕鬆地在 Excel 中按姓氏對全名進行排序。

 使用幫助列按姓氏對全名進行排序

根據姓氏對全名進行排序,您應該將姓氏提取到一個新列中,然後應用排序功能根據分開的姓氏的字母順序對全名進行排序。 請按照以下步驟操作:

1. 將以下公式輸入或複製到與原始數據相鄰的空白單元格中,例如 B2,然後將填充手柄向下拖動到單元格以應用此公式,請參見屏幕截圖:

=RIGHT(A2,LEN(A2)-FIND("@",SUBSTITUTE(A2," ","@",LEN(A2)-LEN(SUBSTITUTE(A2," ","")))))

2. 繼續選擇公式單元格,然後單擊 數據 > 將A到Z排序 or 將Z排序到A 根據需要,在彈出窗口中 排序警告 提示框,選擇 擴大選擇,請參見屏幕截圖:

3。 然後,點擊 分類 按鈕,您將獲得根據姓氏排序的全名,完成後,您可以根據需要刪除幫助列。 看截圖:


 使用快速方法按姓氏對全名進行排序

如果您不熟悉公式,要在沒有任何公式的情況下按姓氏對全名進行排序, 高級排序 的特點 Excel的Kutools 可以幫你一個忙。

安裝後 Excel的Kutools,請這樣做:

1. 選擇要排序的全名單元格,然後單擊 Kutools 加 > 分類 > 高級排序.

2。 在 高級排序 對話框中,選擇要排序的列 部分,然後選擇 姓氏 來自 排序 下拉列表,最後,根據需要在 訂購 部分。 看截圖:

保養竅門:如果您的數據中有標題,請確保 我的數據有標題 被檢查。 如果您的數據沒有標題,請取消選中它。

3。 然後,點擊 OK 按鈕,全名列已立即按姓氏排序。


3.4 按域對電子郵件地址進行排序

如果您有一個要按域排序的電子郵件地址列表,而不僅僅是按地址的第一個字母排序,那麼您在 Excel 中怎麼辦? 本節將討論按域對電子郵件地址進行排序的一些快速方法。

 使用幫助列按域對電子郵件地址進行排序

在這裡,您可以創建一個公式將電子郵件域提取到另一列中,然後根據新域列對原始電子郵件地址進行排序。

1. 在您的電子郵件地址旁邊的空白單元格中鍵入以下公式,在此示例中,我將在單元格 C2 中輸入此公式,然後將填充手柄拖動到要應用此公式的範圍。 然後將從地址中提取所有電子郵件域,請參見屏幕截圖:

=RIGHT(B2,LEN(B2)-FIND("@",B2))

2. 保持選中公式單元格,然後單擊 數據 > 將A到Z排序 or 將Z排序到A 根據需要,在 排序警告 對話框,檢查 擴大選擇,請參見屏幕截圖:

3。 然後,單擊 分類 按鈕按您指定的升序或降序按電子郵件域對數據進行排序。

4. 排序後,您可以根據需要刪除輔助列。


 只需單擊幾下,即可按域對電子郵件地址進行排序

如果你有 Excel的Kutools,其 高級排序 功能,只需單擊幾下,即可按域名的字母順序對電子郵件地址進行排序。

安裝後 Excel的Kutools,請這樣做:

1. 選擇要排序的整個數據范圍,然後單擊 Kutools 加 > 分類 > 高級排序.

2。 在 高級排序 對話框中,選擇要排序的列 部分,然後選擇 郵件域 來自 排序 下拉列表,最後,指定您需要的排序順序 訂購 部分。 看截圖:

保養竅門:如果您的數據中有標題,請確保 我的數據有標題 被檢查。 如果您的數據沒有標題,請取消選中它。

3。 點擊 OK,並且數據范圍已按電子郵件域排序,如下圖所示:


3.5 對一列進行排序以匹配另一列

如果您有兩列數據完全相同或幾乎相同,但順序不同,現在您可能需要對兩列進行排序,以便相同的值在兩列中的相同行上對齊。 本節,我將介紹這種排序的兩種情況。

 對具有完全相同項目的兩列進行排序以進行匹配

例如,我有兩列包含相同的項目但順序不同,在這裡,我想對第二列進行排序以匹配第一列,如下圖所示。

1. 在原始數據旁邊的空白單元格中鍵入以下公式,然後拖動填充柄以將此公式應用於列表中的所有單元格,這將返回 B 列中每個值的位置與 A 列中的每個值的位置,見截圖:

=MATCH(B2,$A$2:$A$10,0)

2. 然後,選擇 B 列和新的輔助列,然後單擊 數據 > 分類分類 對話框中 分類 對話框中,進行以下操作:

  • 部分;
  • 然後,選擇 單元格值排序 部分;
  • 最後選擇 最小到最大 在選項 訂購 部分。

3。 然後,單擊 OK 按鈕。 現在,您將獲得完全匹配的兩列,如下面的屏幕截圖所示。 您可以根據需要刪除公式列。


 對不完全相同項目的兩列進行排序以進行匹配

有時,兩列中的項目可能不完全相同。 例如,我想對第二列中的數據進行排序以匹配第一列中的數據,以便使相同的值在相同的行上對齊,如下面的屏幕截圖所示。

1. 在兩列之間插入一個新的空白列。

2. 在單元格 B2 中輸入以下公式,然後拖動填充手柄將此公式填充到您需要的單元格。 現在,您可以看到 C 列中的數據已排序以匹配 A 列中的數據。

=IF(ISNA(MATCH(A2,$C$2:$C$8,0)),"",INDEX($C$2:$C$8,MATCH(A2,$C$2:$C$8,0)))


3.6 從數據列表中排序和提取唯一值

如果您有一個包含一些重複項的值列表,現在,您只想提取唯一值並按字母順序對它們進行排序,如下面的屏幕截圖所示,在這裡,我將介紹一些用於處理此類排序的公式。

1. 請在空白單元格中輸入以下公式 - C2,然後按 Ctrl + Shift + Enter 獲得第一個結果的鍵,見截圖:

=IFERROR(INDEX($A$2:$A$12,MATCH(0,COUNTIF($A$2:$A$12,"<"&$A$2:$A$12)-SUM(COUNTIF($A$2:$A$12,"="&C$1:C1)),0)),"")

備註: 在公式, A2:A12 是您要從中提取唯一值的數據列表, C1 是您輸入的公式上方的單元格。 請根據您的需要更改它們。

2. 然後拖動填充手柄提取值,直到出現空白單元格,所有唯一值將被提取並按升序排序,見截圖:

保養竅門:

1.如果您希望提取的唯一值按降序排序,請應用以下公式:(記得按 Ctrl + Shift + Enter 鍵)

=IFERROR(INDEX($A$2:$A$12,MATCH(0,COUNTIF($A$2:$A$12,">"&$A$2:$A$12)-SUM(COUNTIF($A$2:$A$12,"="&C$1:C1)),0)),"")

2. 如果數據列表包含空格單元格、數值,上面的公式將不起作用,在這種情況下,您應該使用以下公式:(記得按 Ctrl + Shift + Enter 鍵)

=IFERROR(SMALL(IF((COUNTIF($C$1:C1,$A$2:$A$12)=0)*ISNUMBER($A$2:$A$12),$A$2:$A$12,"A"),1),INDEX($A$2:$A$12,MATCH(SMALL(IF(ISTEXT($A$2:$A$12)*(COUNTIF(C1:$C$1,$A$2:$A$12)=0),COUNTIF($A$2:$A$12,"<"&$A$2:$A$12),""),1),IF(ISTEXT($A$2:$A$12),COUNTIF($A$2:$A$12,"<"&$A$2:$A$12),""),0)))


3.7 一次對多行或多列進行獨立排序

我們很容易根據一行或一列對一系列數據進行排序,但有時您可能希望獨立地按字母順序排列範圍內的每一行或每一列,您如何在 Excel 中完成此任務?

 單獨對多行進行排序

假設您有一系列數據應該在每一行中按字母順序重新排列,如下面的屏幕截圖所示,為了解決這個問題,這裡有兩個快速技巧供您使用。

使用公式一次獨立排序多行

1. 將行標籤複製到要獲得排序結果的另一個位置。

2. 然後,將以下公式複製或輸入到空白單元格 - H2 中,然後按 Ctrl + Shift + Enter 鍵在一起以獲得第一個結果,請參見屏幕截圖:

=INDEX($B2:$E2, MATCH(COLUMNS($B2:B2), COUNTIF($B2:$E2, "<="&$B2:$E2), 0))

3. 然後,選擇公式單元格H2,向右拖動填充手柄,將公式複製到第一行的其他單元格,在本例中,拖動到單元格K2,見截圖:

4. 繼續選擇第一行 (H2:K2) 中的公式單元格,然後向下拖動填充手柄以將公式複製到其他行。 現在,您可以看到每行中的值已按升序單獨排序。


使用VBA代碼一次獨立地對多行進行排序

以下 VBA 代碼還可以幫助您輕鬆地按字母順序對每一行中的數據進行排序。 請按照以下步驟操作:

1. 在每一行中選擇要排序的數據。

2。 按住 ALT + F11 鍵打開 Microsoft Visual Basic for Applications 窗口。

3。 然後,點擊 插入 > 模塊,然後將以下代碼粘貼到 模塊 窗口。

VBA代碼:一次獨立排序多行

Sub SortIndividualR()
'Updateby Extendoffice
    Dim xRg As Range, yRg As Range
    If TypeName(Selection) <> "Range" Then Exit Sub
    Set xRg = Selection
    If xRg.Count = 1 Then
        MsgBox "Select multiple cells!", vbExclamation, "Kutools for Excel"
        Exit Sub
    End If
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
        .Calculation = xlCalculationManual
    End With
    Application.ScreenUpdating = False
    For Each yRg In xRg.Rows
        yRg.Sort Key1:=yRg.Cells(1, 1), _
        Order1:=xlAscending, _
        Header:=xlNo, _
        Orientation:=xlSortRows
    Next yRg
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
        .Calculation = xlCalculationAutomatic
    End With
    Application.ScreenUpdating = True
End Sub

4。 然後按 F5 運行此代碼的關鍵,每行中的數據立即按升序排序,請參見截圖:


 單獨對多列進行排序

要單獨對每列中的數據進行排序,以下兩種方法可以幫到您。

使用公式一次獨立對多列進行排序

1. 將列標籤複製到要獲得排序結果的另一個位置。

2. 然後,在空白單元格中輸入以下公式 - F3,然後按 Ctrl + Shift + Enter 鍵一起獲得第一個結果,然後,向下拖動填充手柄以將此公式複製到其他行,請參見屏幕截圖:

=INDEX(A$3:A$6,MATCH(ROWS(A$3:A3),COUNTIF(A$3:A$6,"<="&A$3:A$6),0))

3. 繼續選擇第一行 (F3:F6) 中的公式單元格,然後向右拖動填充手柄以將公式複製到其他列。 現在,每列中的值已按升序單獨排序,如下圖所示:


使用VBA代碼一次獨立地對多列進行排序

要對多列數據進行獨立排序,下面的VBA代碼也可以幫到你,請這樣做:

1。 按住 ALT + F11 鍵打開 Microsoft Visual Basic for Applications 窗口。

2。 然後,點擊 插入 > 模塊,然後將以下代碼粘貼到 模塊 窗口。

VBA代碼:一次獨立排序多列

Sub SortIndividualJR()
'Updateby Extendoffice
    Dim xRg As Range
    Dim yRg As Range
    Dim ws As Worksheet
    Set ws = ActiveSheet
    On Error Resume Next
    Set xRg = Application.InputBox(Prompt:="Range Selection:", _
                                    Title:="Kutools for excel", Type:=8)
    Application.ScreenUpdating = False
    For Each yRg In xRg
        With ws.Sort
            .SortFields.Clear
            .SortFields.Add Key:=yRg, Order:=xlAscending
            .SetRange ws.Range(yRg, yRg.End(xlDown))
            .Header = xlNo
            .MatchCase = False
            .Apply
        End With
    Next yRg
    Application.ScreenUpdating = True
End Sub

3。 然後按 F5 鍵運行此代碼,彈出提示框,請選擇要排序的數據范圍,看截圖:

4。 然後,單擊 OK,每一列都已快速單獨排序。


3.8 Excel中隨機排序數據

我們通常會按字母順序對數據進行升序或降序排序,但您是否嘗試過對選定範圍內的數據進行隨機排序? 本節,我將討論如何以隨機順序打亂一系列單元格。

 使用輔助列對一列數據進行隨機排序

通常,您可以使用 RAND 函數來獲取隨機數,然後根據這個隨機列表對數據進行排序,請按以下步驟操作:

1。 輸入以下公式: = RAND() 進入數據旁邊的空白單元格,然後向下拖動填充手柄以填充隨機數列表,如下圖所示:

2. 繼續選擇公式單元格,然後單擊 DATA > 將A到Z排序 or 將Z排序到A 根據需要,在彈出窗口中 排序警告 提示框,選擇 擴大選擇,請參見屏幕截圖:

3。 然後,單擊 分類 按鈕,數據列表已經被一次洗牌,看截圖:


 使用驚人的功能對單元格、行或列進行隨機排序

Excel的Kutools 支持一個強大的功能—— 隨機排序範圍,使用此功能,您可以隨機化單元格範圍內、選擇的每一列/行中的數據,或一次隨機化整行或整列。

安裝後 Excel的Kutools,請這樣做:

1. 選擇要隨機排序的數據范圍,然後單擊 Kutools 加 > 分類 > 隨機排序範圍。 看截圖:

2。 在 隨機排序/選擇範圍 對話框中的 分類 選項卡,選擇您需要的以下選項之一:

  • 整行:隨機打亂所選範圍內的整行。
  • 整列:隨機打亂所選範圍內的整列。
  • 每行中的單元格:單獨隨機排列每行中的單元格。
  • 每列中的單元格: 單獨洗牌每列中的單元格。
  • 範圍內的所有單元格:隨機化選定範圍內的所有單元格。

3。 然後,點擊 Ok 按鈕,數據立即隨機化。


3.9 根據月、日或月日對日期列表進行排序

在 Excel 中對日期進行排序時,排序功能將默認按年、月、日對日期列表進行排序,但在某些情況下,您可能需要按月或日或月和日排列日期,而忽略年。 如何在Excel中解決這個問題?

 使用輔助列按月或日對日期列表進行排序

要僅根據月或日對日期進行排序,您可以從日期中提取月或日編號,然後按提取的月或日編號列對日期進行排序。

1. 請在您的數據旁邊的空白單元格中輸入以下公式,然後向下拖動填充手柄以將此公式複製到其他單元格,請參見屏幕截圖:

=MONTH(B2)        (extract month number)
= DAY(B2)             
(提取天數)

2. 返回月或日數字後,繼續選擇公式單元格,然後單擊 數據 > 將A到Z排序 or 將Z排序到A 根據需要,在彈出窗口中 排序警告 提示框,選擇 擴大選擇,請參見屏幕截圖:

3。 然後,點擊 分類 按鈕,日期現在按月排序,忽略年和日。 看截圖:


 通過幾次單擊按月或日對日期列表進行排序

如果你有 Excel的Kutools,其 高級排序 功能,您可以通過幾次單擊僅按月或日對日期列表進行排序。

安裝後 Excel的Kutools,請執行以下步驟:

1. 選擇要排序的數據范圍,然後單擊 Kutools 加 > 分類 > 高級排序.

2。 在 高級排序 對話框中,選擇要排序的列 部分,然後選擇 or 來自 排序 下拉列表,最後,指定您需要的排序順序 訂購 部分。

保養竅門:如果您的數據中有標題,請確保 我的數據有標題 被檢查。 如果您的數據沒有標題,請取消選中它。

3。 然後,點擊 OK 按鈕,數據已根據您指定的月份或日期排序,而忽略年份,請參見屏幕截圖:


 使用輔助列按月和日對日期列表進行排序

現在,如果您只需要按月和日對日期列表進行排序而不需要年份,TEXT 函數可以幫助將日期轉換為指定格式的文本字符串,然後根據需要應用排序功能。

1. 在數據旁邊的空白單元格中輸入以下公式,然後將此公式複製到數據的底部,月份和日期已被提取為文本字符串,如下圖所示:

=TEXT(B2,"MMDD")

2. 保持公式單元格處於選中狀態,然後單擊 數據 > 將A到Z排序 or 將Z排序到A 根據需要,在彈出窗口中 排序警告 提示框,選擇 擴大選擇,請參見屏幕截圖:

3。 然後,點擊 分類 按鈕,現在,您的數據僅按月和日排序。


3.10 根據星期幾對日期列表進行排序

根據星期幾對日期列表進行排序,這意味著將日期從周一到週日或週日到週六排序。 在本節中,我將介紹兩種在 Excel 中完成此任務的方法。

 使用輔助列按星期幾對日期列表進行排序

按星期幾對日期進行排序,您還需要一個輔助列來返回一個與星期幾對應的數字,然後按輔助列對日期進行排序。

1. 請將以下公式輸入或複製到空白單元格中,然後向下拖動填充手柄以將此公式複製到其他單元格,請參見屏幕截圖:

=WEEKDAY(B2)           (Start from Sunday (1) to Saturday(7))
=星期(B2,2)       
(從星期一 (1) 到星期日 (7))

2. 保持公式單元格處於選中狀態,然後單擊 數據 > 將A到Z排序 or 將Z排序到A 根據需要,在彈出窗口中 排序警告 提示框,選擇 擴大選擇,請參見屏幕截圖:

3。 然後,點擊 分類 按鈕來獲得你需要的排序結果,看截圖:


 使用簡單選項按星期幾對日期列表進行排序

的幫助下 Excel的Kutools高級排序 功能,您可以在沒有任何輔助公式的情況下盡快解決此問題。

安裝後 Excel的Kutools,請這樣做:

1. 選擇要排序的數據范圍,然後單擊 Kutools 加 > 分類 > 高級排序.

2。 在 高級排序 對話框中,選擇要排序的列 部分,然後選擇 一周中的天 來自 排序 下拉列表,最後,指定您需要的排序順序 訂購 部分。

保養竅門:如果您的數據中有標題,請確保 我的數據有標題 被檢查。 如果您的數據沒有標題,請取消選中它。

3。 然後,點擊 OK 按鈕,數據已根據需要按星期幾排序。 看截圖:


3.11 根據季度對日期列表進行排序

本節將討論如何在不考慮年份的情況下按季度對日期列表進行排序,為您提供兩個技巧。

 使用輔助列按季度對日期列表進行排序

就像上面的解決方案一樣,您應該創建一個公式輔助列來從給定日期中提取季度數,然後根據這個新的輔助列對日期進行排序。

1. 請將以下公式輸入或複製到空白單元格中,然後向下拖動填充手柄以將此公式複製到其他單元格,請參見屏幕截圖:

=ROUNDUP(MONTH(B2)/3,0)

2. 繼續選擇公式單元格,然後單擊 數據 > 將A到Z排序 or 將Z排序到A 根據需要,在彈出窗口中 排序警告 提示框,選擇 擴大選擇,請參見屏幕截圖:

3。 然後,點擊 分類 按鈕,數據范圍已按季度排序,如下圖所示:


 使用方便的功能按季度對日期列表進行排序

如果你有 Excel的Kutools 安裝好了 高級排序 功能可以幫助您通過幾次點擊來解決這個任務。

1. 選擇要排序的數據范圍,然後單擊 Kutools 加 > 分類 > 高級排序.

2。 在 高級排序 對話框中,選擇要排序的列 部分,然後選擇 來自 排序 下拉列表,最後,指定您需要的排序順序 訂購 部分。

保養竅門:如果您的數據中有標題,請確保 我的數據有標題 被檢查。 如果您的數據沒有標題,請取消選中它。

3。 最後點擊 OK 按鈕,所選範圍根據您的需要按季度排序。


3.12 根據月份名稱或工作日名稱對數據進行排序

假設您有一個月份名稱列表作為文本,在對月份名稱進行排序時,它們將按字母順序排列,而不是從一月到十二月按月份順序排列。 如果您需要對從一月到十二月的月份名稱進行排序,排序功能中的自定義排序可能會對您有所幫助。

1. 選擇要根據月份名稱排序的數據范圍,然後單擊 數據 > 分類分類 對話框。

2。 在 分類 對話框中 部分,選擇包含月份名稱的列名,在 排序 部分中,選擇 單元格值,最後,在 訂購 部分,選擇 自訂清單,請參見屏幕截圖:

保養竅門:如果您的數據中有標題,請確保 我的數據有標題 被檢查。 如果您的數據沒有標題,請取消選中它。

3。 然後,在彈出 自訂清單 對話框中,根據月份在工作表中的列出方式選擇完整的月份名稱(一月、二月、三月...)或簡稱(一月、二月、三月...),請參見屏幕截圖:

4。 然後,單擊 OK > OK 關閉對話框,現在,您的數據已按時間順序按月份名稱排序,如下圖所示:

保養竅門:要按工作日名稱排序,請在 自定義列表 您需要的對話框。


3.13 根據奇數或偶數對數據進行排序

我們可能很容易在 Excel 中按升序或降序對數字進行排序,但是,您是否嘗試過將列表中的數字從奇數到偶數或偶數到奇數排序? 本節,我將介紹一些完成此任務的方法。

 使用輔助列按奇數或偶數對數據進行排序

按奇數或偶數對數字列表進行排序,您應該創建一個公式來識別奇數或偶數,然後應用排序功能。

1. 在數字列表旁邊,請輸入此公式 = ISODD(A2) 在空白單元格中,然後拖動以將公式複製到其他單元格,現在,您可以看到顯示 TRUEs 和 FALSEs,TRUE 表示奇數,FALSE 表示偶數。

2。 繼續選擇公式單元格,然後單擊 數據 > 將A到Z排序 or 將Z排序到A 根據需要,在彈出窗口中 排序警告 提示框,選擇 擴大選擇,請參見屏幕截圖:

3。 然後點擊 分類 按鈕,所有偶數都已排序在一起,然後是奇數,反之亦然。 看截圖:


 使用有用的功能按奇數或偶數對數據進行排序

的幫助下 Excel的Kutools高級排序 功能,您可以快速將數字從奇數排序到偶數,反之亦然。

安裝後 Excel的Kutools,請這樣做:

1. 選擇要排序的數據范圍,然後單擊 Kutools 加 > 分類 > 高級排序.

2。 在 高級排序 對話框中,單擊要在其下排序的列 部分,然後選擇 奇偶數 來自 排序 部分,然後指定排序順序 (A到Z 從偶數到奇數排序,和 Z到A 從奇數到偶數排序),見截圖:

保養竅門:如果您的數據中有標題,請確保 我的數據有標題 被檢查。 如果您的數據沒有標題,請取消選中它。

3。 然後點擊 OK 按鈕,您將獲得以下結果:


3.14 根據絕對值對數據進行排序

如果列中同時存在正數和負數,則在排序時,Excel 中默認按升序或降序排列數字。 但是,在某些情況下,您可能希望在對數據進行排序時忽略負號,這意味著按絕對值對數字進行排序。 如何在 Excel 中完成此任務?

 使用輔助列按絕對值對數據進行排序

要按絕對值對數字進行排序,通常應先創建一個公式將所有值轉換為絕對值,然後應用 Sort 函數對數字進行排序。

1。 在相鄰的空白單元格(例如B2)中,輸入以下公式 = ABS(A2),然後拖動填充柄以將此公式複製到其他單元格。 現在,您可以看到所有值都已轉換為絕對值:

2. 保持公式單元格處於選中狀態,然後單擊 數據 > 將A到Z排序 or 將Z排序到A 根據需要,在彈出窗口中 排序警告 提示框,選擇 擴大選擇,請參見屏幕截圖:

3。 然後點擊 分類 按鈕,所有數字都按絕對值排序,如下圖所示:


 使用方便的選項按絕對值對數據進行排序

如果你厭倦了創建輔助欄,這裡,我會推薦 Excel的Kutools,其 高級排序 功能,您可以直接簡單地按絕對值對數字進行排序。

安裝後 Excel的Kutools,請執行以下步驟:

1. 選擇要排序的數據范圍,然後單擊 Kutools 加 > 分類 > 高級排序.

2。 在 高級排序 對話框中,單擊要在其下排序的列 部分,然後選擇 絕對 價值來自 排序 部分,然後,指定排序順序,看截圖:

保養竅門:如果您的數據中有標題,請確保選中我的數據有標題。 如果您的數據沒有標題,請取消選中它。

3。 然後,點擊 OK,所有數字將從最小到最大或從最大到最小值排序,忽略負號。


輸入或更改數據時自動對數據進行排序

Excel 中的排序功能不是動態的,每次更改或添加新數據時都必須重新排序數據。 在本節中,我將討論每次在數據范圍中添加新值時如何自動對數據進行排序。


4.1 用公式對列中的數值進行自動排序

要自動按升序或降序對數字列表進行排序,您可以使用基於 LERGE、SMALL 和 ROW 函數的公式。

1. 請將以下公式輸入或複製到源數據旁邊的空白單元格中,然後將填充手柄向下拖動到要應用此公式的單元格,然後數字將從小到大排列,請參見截圖:

=IFERROR(SMALL($A$2:$A$100,ROWS(B$2:B2)),"")

備註:在此公式中, A2:A100 是您要自動排序的數字列表,包括一些用於新條目的空單元格, B2 是您輸入公式的單元格。

2. 現在,當更改源數據或輸入新數據時,排序列表將自動刷新,如下圖所示:

保養竅門:要自動按降序對數字進行排序,請應用以下公式:

=IFERROR(LARGE($A$2:$A$100,ROWS(B$2:B2)),"")


4.2 使用公式對列中的文本值進行自動排序

如果您想自動對列中的文本值進行排序,上面的公式將不起作用,這裡,另一個公式可以幫助您,請按以下步驟操作:

1. 將以下公式輸入或複製到數據列旁邊的空白單元格中,然後按 Ctrl + Shift + Enter 鍵一起獲取第一個文本,然後選擇公式單元格,並將填充手柄向下拖動到要排序的單元格,請參閱截圖:

=IFERROR(INDEX($A$2:$A$100,MATCH(ROWS($A$2:A2),COUNTIF($A$2:$A$100,">="&$A$2:$A$100),0)),"")

2. 從現在開始,在A列輸入值或更改原始數據時,B列中的文本字符串將自動按升序排列,見下面的演示:

保養竅門:要自動按降序對文本字符串進行排序,請應用以下公式(記得按 Ctrl + Shift + Enter 鍵):

=IFERROR(INDEX($A$2:$A$100,MATCH(ROWS($A$2:A2),COUNTIF($A$2:$A$100,">="&$A$2:$A$100),0)),"")


4.3 使用 VBA 代碼自動排序列中數字和文本值的混合

如果列中有數值和文本值,要自動對數據列表進行排序,下面的 VBA 代碼可能會對您有所幫助。

1. 右鍵單擊要自動對數據進行排序的工作表選項卡,然後選擇 查看代碼 從上下文菜單中,在彈出窗口中 Microsoft Visual Basic for Applications 窗口,請複制以下代碼並將其粘貼到空白處 模塊 窗口,請參見屏幕截圖:

VBA 代碼:按升序輸入或更改數據時自動排序:

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    On Error Resume Next
    If Application.Intersect(Target, Application.Columns(1)) Is Nothing Then Exit Sub
    If Target.Count > 1 Then Exit Sub
    Range("A1").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes, _
                                        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub

備註:在上面的代碼中,輸入的數據會自動在A列進行排序。 A1 是標題,並且 A2 是數據列表的第一個單元格。

2. 然後,保存並關閉代碼窗口。 現在,當您在 A 列中輸入新數據或更改原始數據時,數據將自動按升序排序。 見下面的演示:

保養竅門:如果要按降序對數據列表進行排序,請應用以下代碼:

VBA 代碼:按降序輸入或更改數據時自動排序:

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    On Error Resume Next
    If Application.Intersect(Target, Application.Columns(1)) Is Nothing Then Exit Sub
    If Target.Count > 1 Then Exit Sub
    Range("A1").Sort Key1:=Range("A2"), Order1:=xlDescending, Header:=xlYes, _
                                        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub

其他排序案例

您在日常工作中可能會遇到其他各種分揀需求。 在本節中,我將介紹一些其他的排序類型,例如對單元格內的數據進行排序,對列或行中的數據進行逆序排序等。


5.1 對單元格內的數據進行排序

按字母順序對單個單元格內的文本字符串進行排序,例如將文本“HDAW”排序為“ADHW”; 或者在一個單元格中對多個以逗號分隔的單詞進行排序,例如將“word、outlook、excel、access”排序為“access、excel、outlook、word”。 本節將講如何解決Excel中的這種排序。

 按字母順序對單元格內的字符串值進行排序

按字母順序對單元格內的字符串值進行排序,您應該創建一個用戶定義的函數。 請這樣做:

1。 按住 ALT + F11 鍵打開 Microsoft Visual Basic for Applications 窗口。

2。 點擊 插入 > 模塊,然後將以下代碼粘貼到 模塊 窗口。

VBA 代碼:對單元格內的文本值進行排序

Function SortCellContents(xRange As Range)
'Updateby Extendoffice
Dim xArr
Dim xF1, xF2 As Integer
Dim xStrValue As String
Dim xStrT As String
If xRange.Count <> 1 Then
    Exit Function
End If
xStrValue = xRange.Value
ReDim xArr(1 To Len(xStrValue))
For xF1 = 1 To UBound(xArr)
    xArr(xF1) = Mid(xStrValue, xF1, 1)
Next
For xF1 = 1 To UBound(xArr)
    For xF2 = xF1 To UBound(xArr)
        If Asc(xArr(xF2)) < Asc(xArr(xF1)) Then
            xStrT = xArr(xF2)
            xArr(xF2) = xArr(xF1)
            xArr(xF1) = xStrT
        End If
    Next xF2
Next xF1
SortCellContents = Join(xArr, "")
End Function

3. 然後保存並關閉此代碼,返回到您的工作表。 然後輸入這個公式 =排序單元內容(A2) 到返回結果的空白單元格中,向下拖動填充手柄將公式複製到其他單元格,然後單元格中的所有文本值將按字母順序排序,見截圖:


 按字母順序對單元格內由分隔符分隔的文本字符串進行排序

如果一個單元格中有多個由特定分隔符分隔的單詞,要在單元格內按字母順序對它們進行排序,下面的用戶定義函數可以幫助您。

1。 按住 ALT + F11 鍵打開 Microsoft Visual Basic for Applications 窗口。

2。 點擊 插入 > 模塊,然後將以下代碼粘貼到 模塊 窗口。

VBA代碼:對單元格內以逗號分隔的文本字符串進行排序

Function SortCellWithSeparator(CellAddress As Range, DelimiterChar As String, IncludeSpaces As Boolean) As String
'Updateby Extendoffice
Dim xRg As Range
Dim xString As String
Dim xF1, xF2 As Integer
Dim xSArr
Dim xStrT As String
Dim xStrValue As String
Set xRg = CellAddress
xStrValue = WorksheetFunction.Substitute(xRg.Value, " ", "")
xSArr = Split(xStrValue, DelimiterChar)
    For xF1 = 0 To UBound(xSArr)
        For xF2 = xF1 + 1 To UBound(xSArr)
                If xSArr(xF2) < xSArr(xF1) Then
                    xStrT = xSArr(xF2)
                    xSArr(xF2) = xSArr(xF1)
                    xSArr(xF1) = xStrT
                End If
        Next xF2
    Next xF1
xStrValue = ""
For xF1 = 0 To UBound(xSArr)
    xStrValue = xStrValue & xSArr(xF1) & DelimiterChar
Next xF1
SortCellWithSeparator = xStrValue
SortCellWithSeparator = Left(SortCellWithSeparator, Len(SortCellWithSeparator) - 1)
If IncludeSpaces = True Then SortCellWithSeparator = WorksheetFunction.Substitute(SortCellWithSeparator, ",", ", ")
End Function

3. 然後保存並關閉此代碼,返回到您的工作表,輸入此公式 =SortCellWithSeparator(A2,",",TRUE) 到返回結果的空白單元格中,然後向下拖動填充手柄將公式複製到其他單元格,單元格中的所有文本字符串將按字母順序排序,見截圖:

備註: 如果你的文本字符串被其他分隔符分隔,你只需要將這個公式中的逗號更改為你自己的分隔符。


5.2 反轉/翻轉列或行中數據的順序

有時,您可能需要顛倒垂直數據范圍內的數據順序或水平數據范圍內的從左到右的數據順序。 本節將介紹三種在 Excel 中解決此任務的方法。

 使用公式反轉/翻轉列或行中數據的順序

以下公式可以幫助翻轉列或行中數據的順序,請這樣做:

翻轉列中數據的順序

請將以下公式輸入或複製到要放置結果的空白單元格中,然後將填充手柄向下拖動到單元格以相反順序返回單元格值,請參見屏幕截圖:

=OFFSET($A$10,-(ROW(A1)-1),0)

備註:在以上公式中, A1 是第一個單元格並且 A10 是列中的最後一個單元格。


翻轉一行中的數據順序

應用以下公式在一行中水平翻轉數據的順序:

=OFFSET($A$1,,COUNTA(1:1)-COLUMN(A1),)

備註:在以上公式中, A1 是該行中的第一個單元格,並且 1:1 是您的數據所在的行號。 如果數據在第 10 行,則應將其更改為 10:10。

然後,將填充手柄向右拖動到單元格,直到提取所有值,您將獲得所有數據水平反轉,請參見屏幕截圖:


 使用 VBA 代碼反轉/翻轉多列或多行中的數據順序

上述公式僅適用於單列或單行,如果有多個列或行需要反轉數據,以下 VBA 代碼可以幫助您。

垂直翻轉一系列單元格中的數據順序

1. 首先,您應該備份您的原始數據,然後按住 ALT + F11 鍵打開 Microsoft Visual Basic for Applications 窗口。

2。 點擊 插入 > 模塊,然後將以下代碼粘貼到 模塊 窗口。

VBA代碼:垂直翻轉一系列單元格

Sub Flipvertically()
'updateby Extendoffice
Dim Rng As Range
Dim WorkRng As Range
Dim Arr As Variant
Dim i As Integer, j As Integer, k As Integer
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Arr = WorkRng.Formula
For j = 1 To UBound(Arr, 2)
    k = UBound(Arr, 1)
    For i = 1 To UBound(Arr, 1) / 2
        xTemp = Arr(i, j)
        Arr(i, j) = Arr(k, j)
        Arr(k, j) = xTemp
        k = k - 1
    Next
Next
WorkRng.Formula = Arr
End Sub

3。 然後按 F5 鍵運行這段代碼,會彈出一個提示框,讓你選擇要垂直反轉的數據范圍,看截圖:

4。 然後,點擊 OK 按鈕,數據范圍將垂直反轉,如下圖所示:


水平翻轉一系列單元格中的數據順序

要按水平順序反轉數據范圍,請應用以下VBA代碼:

VBA代碼:垂直翻轉一系列單元格

Sub Fliphorizontally()
'updateby Extendoffice
Dim Rng As Range
Dim WorkRng As Range
Dim Arr As Variant
Dim i As Integer, j As Integer, k As Integer
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Arr = WorkRng.Formula
For i = 1 To UBound(Arr, 1)
    k = UBound(Arr, 2)
    For j = 1 To UBound(Arr, 2) / 2
        xTemp = Arr(i, j)
        Arr(i, j) = Arr(i, k)
        Arr(i, k) = xTemp
        k = k - 1
    Next
Next
WorkRng.Formula = Arr
End Sub

運行這段代碼後,行中的數據已經被水平反轉了,看截圖:


 只需單擊一下,即可反轉/翻轉列或行中的數據順序

如果你有 Excel的Kutools,其 翻轉垂直範圍翻轉水平範圍 功能,只需單擊一下即可在垂直和水平方向上反轉單元格的範圍。

安裝後 Excel的Kutools,請這樣做:

垂直翻轉一系列單元格中的數據順序

1. 選擇要反轉的數據范圍,然後單擊 庫工具 > 範圍 > 翻轉垂直範圍 > 全部 / 僅翻轉值,請參見屏幕截圖:

保養竅門:如果你選擇 全部 選項,所有單元格格式將同時反轉; 如果你選擇 僅翻轉值,只有單元格值將被反轉。

2. 然後,數據范圍將立即垂直反轉。


水平翻轉一系列單元格中的數據順序

1。 選擇數據范圍,然後單擊 庫工具 > 範圍 > 翻轉水平範圍 > 所有/僅翻轉值,請參見屏幕截圖:

保養竅門:如果你選擇 全部 選項,所有單元格格式將同時反轉; 如果你選擇 僅翻轉值,只有單元格值將被反轉。

2. 然後,選擇中的所有單元格值將立即水平反轉,如下圖所示:


5.3 在 Excel 中按字母順序或選項卡顏色對工作表選項卡進行排序

假設您的工作簿中有大量工作表,如果您需要按字母順序對工作表標籤進行排序,或者根據標籤顏色對工作表標籤進行排序,那麼通常的方法——拖放工作表標籤會浪費很多時間。 在本節中,我將討論一些按升序或降序排列工作表標籤的技巧。

 使用 VBA 代碼按字母順序對工作表選項卡進行排序

以下 VBA 代碼可以幫助按字母順序按升序或降序對工作表選項卡進行排序,請執行以下操作:

1。 按住 ALT + F11 鍵打開 Microsoft Visual Basic for Applications 窗口。

2。 點擊 插入 > 模塊,然後將以下宏粘貼到 模塊 窗口。

VBA:按字母順序對所有工作表進行排序

Sub SortWorkBook()
'Updateby Extendoffice
Dim xResult As VbMsgBoxResult
xTitleId = "KutoolsforExcel"
xResult = MsgBox("Click Yes to sort sheets in ascending order;" & Chr(10) & "Click No will sort in descending order", vbYesNoCancel + vbQuestion + vbDefaultButton1, xTitleId)
For i = 1 To Application.Sheets.Count
    For j = 1 To Application.Sheets.Count - 1
        If xResult = vbYes Then
            If UCase$(Application.Sheets(j).Name) > UCase$(Application.Sheets(j + 1).Name) Then
                Sheets(j).Move after:=Sheets(j + 1)
            End If
            ElseIf xResult = vbNo Then
                If UCase$(Application.Sheets(j).Name) < UCase$(Application.Sheets(j + 1).Name) Then
                    Application.Sheets(j).Move after:=Application.Sheets(j + 1)
            End If
        End If
    Next
Next
End Sub

3. 然後,按 F5 運行這個宏的鍵,在下面的提示框中,點擊 ,所有工作表將按字母升序排列; 點擊 沒有,所有工作表都將根據您的需要按字母順序降序排列。


 使用強大的功能按字母/字母數字順序對工作表選項卡進行排序

Excel的Kutools 提供強大的功能– 排序表,使用此功能,您可以按字母順序或字母數字順序對工作表進行排序、根據標籤顏色對工作表進行排序或根據需要反轉工作表標籤。

安裝後 Excel的Kutools,請執行以下步驟:

1. 打開要對工作表標籤進行排序的工作簿,然後單擊 Kutools 加 > 下載學習單 > 排序表,請參見屏幕截圖:

2。 在 排序表 對話框中,在右側窗格中選擇所需的一種排序類型,例如 字母排序, 字母數字排序。 看截圖:

3。 然後,點擊 Ok 按鈕,所有工作表將根據您指定的排序類型進行排序。 看截圖:


 使用 VBA 代碼根據標籤顏色對工作表標籤進行排序

我們在 Excel 中按字母順序對工作表選項卡進行排序是很常見的,但是您是否嘗試過根據選項卡顏色對工作表選項卡進行排序? 下面的 VBA 代碼可能有助於解決這個問題,請這樣做:

1。 按住 ALT + F11 鍵打開 Microsoft Visual Basic for Applications 窗口。

2。 點擊 插入 > 模塊,然後將以下宏粘貼到 模塊 窗口。

VBA:根據標籤顏色對所有工作表進行排序

Sub SortWorkBookByColor()
'Updateby20140624
Dim xArray1() As Long
Dim xArray2() As String
Dim n As Integer
Application.ScreenUpdating = False
If Val(Application.Version) >= 10 Then
    For i = 1 To Application.ActiveWorkbook.Worksheets.Count
        If Application.ActiveWorkbook.Worksheets(i).Visible = -1 Then
            n = n + 1
            ReDim Preserve xArray1(1 To n)
            ReDim Preserve xArray2(1 To n)
            xArray1(n) = Application.ActiveWorkbook.Worksheets(i).Tab.Color
            xArray2(n) = Application.ActiveWorkbook.Worksheets(i).Name
        End If
    Next
    For i = 1 To n
        For j = i To n
            If xArray1(j) < xArray1(i) Then
                temp = xArray2(i)
                xArray2(i) = xArray2(j)
                xArray2(j) = temp
                temp = xArray1(i)
                xArray1(i) = xArray1(j)
                xArray1(j) = temp
            End If
        Next
    Next
    For i = n To 1 Step -1
        Application.ActiveWorkbook.Worksheets(CStr(xArray2(i))).Move after:=Application.ActiveWorkbook.Worksheets(Application.ActiveWorkbook.Worksheets.Count)
    Next
End If
Application.ScreenUpdating = True
End Sub

3。 然後按 F5 執行此代碼的鍵,具有相同標籤顏色的工作表將被排序在一起。 看截圖:


 根據標籤顏色對工作表標籤進行排序,具有驚人的功能

這款獨特的敏感免洗唇膜採用 Moisture WrapTM 技術和 Berry Mix ComplexTM 成分, Excel的Kutools排序表 功能,您還可以快速輕鬆地按顏色對工作表選項卡進行排序。

安裝後 Excel的Kutools,請這樣做:

1. 點擊 Kutools 更多 > 下載學習單 > 排序表排序表 對話框中 排序表 對話框,單擊 顏色分類 右側窗格中的按鈕,請參閱屏幕截圖:

2。 然後,點擊 Ok 按鈕,具有相同標籤顏色的工作表將排列在一起,如下圖所示:


  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 和保存數據; 拆分單元格內容; 合併重複的行和總和/平均值...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 收藏并快速插入公式,範圍,圖表和圖片; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 數據透視表分組依據 週號,週幾等 顯示未鎖定的單元格 用不同的顏色 突出顯示具有公式/名稱的單元格...
kte選項卡201905
  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!
officetab底部
按評論排序
留言 (1)
4中的5評分 · 1評級
網站主持人對此評論進行了最小化
Cho mình hỏi Cách tạo thanh công ngày và giờ đến ngày và giờ
Và xuất dữ liệu
4中的5評分
這裡還沒有評論
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點

關注我們

版權所有©2009 - 萬維網。extendoffice.com。 | 版權所有。 供電 ExtendOffice。 |
Microsoft和Office徽標是Microsoft Corporation在美國和/或其他國家的商標或註冊商標。
受Sectigo SSL保護