Excel 排序:按文字、日期、數字或顏色排序數據
在 Excel 中排序數據是一項常見且簡單的任務,這可以根據您選擇的排序類型重新排列數據。通常,使用內建的排序功能,您可以對一個或多個列中的數字、字串、日期和時間進行排序;您還可以根據您創建的自訂列表或單元格格式(例如字體顏色、背景色或圖標)快速輕鬆地排序數據。
除了這些簡單的排序之外,您在日常工作中可能需要更多有用且複雜的排序。本教程將介紹一些不同類型的排序,以解決您在 Excel 中的問題。
在 Excel 中訪問排序選項
Excel 提供多種方式來訪問排序功能及其選項。
1.1 功能區中的排序按鈕
最快速的方式來應用排序功能是使用功能區中的排序按鈕。
點擊包含要排序值的列中的任意單元格,然後點擊數據選項卡,在排序和篩選部分,點擊升序或降序按鈕以按字母順序升序或降序排序數據。請參見截圖:
備註:如果資料區域中有空白行,應用這些按鈕後,只有選取單元格的資料區域在空白行上方或下方才能排序完成。
1.2 排序對話框
在 資料選項卡的排序及篩選群組中,有另一個排序按鈕,請參見截圖:
點擊此排序按鈕後,將彈出一個排序對話框,如下圖所示:
然後,在排序對話框中,您可以根據需要選擇相應的規則來排序數據。
提示:您也可以使用快捷鍵來開啟此排序對話框,請在鍵盤上連續按下 Alt + A + S + S 鍵。
1.3 篩選選單中的排序選項
如果您已在資料區域中應用篩選,您也可以在篩選選項中找到排序選項。點擊任何列中的篩選圖標,您可以在展開的列表中看到排序選項,如下圖所示:
備註:這些排序選項會根據列中的數據而改變:如果列中有文字,則顯示升序排序、降序排序;如果列中有數字,則顯示小到大排序、大到小排序;如果列中有日期,則顯示從最早到最新排序、從最新到最早排序。
1.4右鍵排序選項
在 Excel 中,您也可以使用右鍵選單中的排序選項來快速輕鬆地排序數據。右鍵點擊要排序的列中的任意單元格,在上下文選單中,您可以看到有六個可用的排序選項,請選擇您需要的選項,請參見截圖:
排序的基本用法
此 Excel 排序功能可以幫助您進行一些簡單的排序,例如按升序或降序排序數字、文字字串、日期,或根據字體或背景色排序單元格。本節將介紹此排序功能的一些基本用法。
2.1 根據文字、數字或日期排序數據
要根據文字、數字或日期以升序或降序排序資料區域,請按照以下步驟操作:
1. 選擇您要排序的資料區域,然後點擊 數據 > 排序,請參閱截圖:
2. 在排序對話框中,執行以下操作:
- 在列區域中,選擇您要排序的列名稱;
- 在排序依據部分,選擇值選項;
- 在排序部分中,指定排序順序。(要排序文字字串,請選擇升序或降序;要排序數字列表,選擇小到大或大到小;要排序日期單元格,選擇最早到最新或最新到最早。)
- 提示:如果您的數據包含標題,請確保已勾選“數據包含標題”選項。如果您的數據沒有標題,請取消勾選此選項。
3. 然後,點擊 OK 按鈕,選擇的數據將立即根據您指定的列進行排序。
2.2 根據單元格顏色、字體顏色、單元格圖標排序數據
如果您想根據單元格顏色、字體顏色或使用條件格式的圖示來排序資料區域,排序功能可以快速解決這項任務。
假設您有一個以單元格顏色格式化的資料區域,如下圖所示,如果您需要根據單元格顏色重新排列資料,例如,您希望將淺紅色行放在最上面,接著是淺黃色和淺藍色行,請按照以下步驟根據單元格顏色排序行:
1. 選擇您想要根據單元格顏色排序的資料區域,然後點擊數據 > 排序以進入排序對話框。
2. 在排序對話框中,指定以下操作:
2.1) 將第一個單元格的顏色設置在頂部,如下所示:
- 在列部分,選擇名稱或其他包含彩色單元格的列。在此示例中,我在所有列中都有彩色單元格,您可以選擇任何列名稱;
- 在排序依據部分,請選擇顏色選項;
- 在排序依據部分,選擇一個您想要放在頂部或底部的單元格顏色;
2.2) 然後,點擊新增條件按鈕以添加第二個及其他規則級別,重複上述步驟以設定第二個及其他單元格顏色。
- 提示:如果您的數據包含標題,請確保已勾選數據包含標題選項。如果您的數據沒有標題,請取消勾選。
3. 完成設定後,點擊 OK 按鈕,資料區域將根據您指定的單元格顏色進行排序,請參見截圖:
提示:根據上述步驟,您也可以通過選擇字體顏色或單元格圖標來排序數據 顏色 或 使用條件格式圖示 在排序對話框中。
2.3 按多列排序數據
如果您有一個如下面截圖所示的大型數據集,現在,您希望進行多級數據排序以更清晰地閱讀數據,例如,首先按區域列排序,然後按州列排序,最後按銷售列排序。您如何在 Excel 中完成這個排序?
要按多列排序資料,請按照以下步驟操作:
1. 選擇您要排序的資料區域,然後點擊數據 > 排序以進入排序對話框。
2. 在排序對話框中,點擊添加級別按鈕兩次,因為您想使用三列進行排序。然後您可以看到列表框中添加了兩個然後依據規則級別:
提示:如果您的數據包含標題,請確保已勾選數據包含標題選項。如果您的數據沒有標題,請取消勾選。
3. 從排序依據和接著依據的下拉列表中,選擇您要排序的列名稱,然後在 排序依據部分分別選擇每個選定列的單元格值,最後根據需要選擇排序順序。
4. 然後,點擊 OK,您將獲得如下截圖所示的排序結果:
2.4 根據自定義列表排序數據
除了按字母或數字順序排序資料外,此排序功能還提供自訂列表排序。例如,您希望按狀態排序以下資料區域 - 未開始、進行中、已完成。這裡,我將介紹如何處理這種類型的排序。
1. 選擇您要排序的資料區域,然後點擊數據 > 排序以進入排序對話框。
2. 在排序對話框中,從列部分選擇您要排序的列,然後在排序依據部分選擇值,在排序方式部分,點擊自訂列表選項,請參閱截圖:
提示:如果您的數據包含標題,請確保已勾選“數據包含標題”選項。如果您的數據沒有標題,請取消勾選。
3. 然後會彈出一個自訂列表框,請執行以下操作:
- 在自訂列表框中點擊 NEW LIST;
- 在列表項目框中按您希望排序的順序輸入文字字串;(輸入文字時,請按Enter鍵以分隔項目。)
- 最後,點擊添加按鈕,新列表立即添加到自訂列表框中。
4. 然後,點擊 OK 按鈕返回到 排序 對話框。新的自訂列表項目現在顯示在 排序依據 下拉列表中。
5. 然後,點擊 OK 按鈕關閉對話框,結果,資料區域已按照您定義的自訂列表進行排序,請參見截圖:
2.5 從左到右排序資料(水平排序)
通常,您總是從上到下垂直排序資料表,但有時您可能希望根據行值進行排序(從左到右排序)。例如,在下面的資料區域中,我想根據名稱行的值進行排序。
在這種情況下,排序功能具有內建的功能,允許您從左到右排序。請按照以下步驟進行:
1. 選擇您要排序的資料區域(不包括標題),然後點擊數據 > 排序以進入排序對話框。
2. 在彈出的排序對話框中,點擊選項按鈕,然後在排序選項對話框中,選擇從左到右排序選項,請參閱截圖:
3. 點擊 OK 返回排序對話框,現在,在行部分,指定您要根據的排序行號,然後在排序依據部分選擇單元格值,最後在排序順序部分選擇您需要的排序順序,請參見截圖:
4. 然後,點擊確定,您的數據將按如下截圖顯示進行排序:
2.6 按區分大小寫順序排序數據
通常,資料排序不會區分大小寫,如下第一個截圖所示。但是,如果您想要進行區分大小寫的排序,如下第二個截圖所示,您該如何在 Excel 中解決這個問題?
要在 Excel 中執行區分大小寫的排序,請按以下步驟操作:
1. 選擇您要排序的資料區域,然後點擊數據 > 排序以進入排序對話框。
2. 在排序對話框中,在列部分指定您要排序數據的列名稱,然後在排序依據部分選擇單元格值,最後在排序順序部分選擇您需要的排序順序,請參見截圖:
提示:如果您的數據包含標題,請確保已勾選“數據包含標題”選項。如果您的數據沒有標題,請取消勾選。
3. 繼續在此對話框中點擊選項按鈕,在排序選項提示框中,勾選區分大小寫選項,請參閱截圖:
4. 點擊確定 > 確定以關閉對話框,數據將按區分大小寫的順序排序,當文字相同時,先小寫後大寫。請參見截圖:
排序的高級用法
在日常工作中,您可能會遇到其他更複雜、實用、具體的排序問題,本節將討論 Excel 中的多種類型排序任務。
3.1 根據出現頻率排序數據
假設您有一列數據,現在您希望根據數據出現頻率的降序來排序此列,如下圖所示。這裡,我將介紹兩種方法來解決這個任務。
使用輔助列根據出現頻率排序資料
在 Excel 中,沒有直接的方法可以根據出現次數對數據進行排序。這裡,您可以創建一個輔助公式來獲取每個文本的出現頻率,然後根據輔助列進行排序,以獲得所需的排序結果。
1. 在原始數據旁邊的空白單元格中輸入以下公式,例如 B2,然後向下拖動填充手柄到其他單元格以應用此公式,請參閱截圖:
=COUNTIF($A$2:$A$16,A2)
備註:在上述公式中,A2:A16 是您想要按出現頻率排序的資料列表,而 A2 是此列表中的第一個資料。
2. 然後,繼續選擇公式單元格,接著,根據需要點擊數據 > 升序排序或降序排序,在彈出的排序警告提示框中,選擇展開選擇範圍,請參見截圖:
3. 然後,點擊排序按鈕,現在原始列已按出現頻率排序,如以下截圖所示:
1. 獲得結果後,您可以根據需要刪除輔助列。
2. 如果有文字字串出現的次數相同,相同的文字可能不會被排序在一起。在這種情況下,您應該定位至 排序 對話框中,首先按助手列排序,然後按文字排序,如下圖所示:
使用方便的功能根據出現頻率排序數據
如果您擁有 Kutools for Excel,使用其高級排序功能,您可以在不需要輔助列的情況下,快速且輕鬆地根據出現頻率排序數據。
1. 選擇您要排序的資料列表,然後點擊 Kutools Plus > 排序 > 高級排序,請參閱截圖:
2. 在高級排序對話框中,從列部分選擇您要排序的列,然後在 排序依據下拉列表中選擇出現頻率,最後在排序依據部分指定排序順序,請參閱截圖:
提示:如果您的數據包含標題,請確保已勾選數據包含標題選項。如果您的數據沒有標題,請取消勾選。
3. 然後,點擊 OK 按鈕,數據列表將立即按出現次數排序,請參見截圖:
3.2 根據字元長度排序資料
如果您有一份包含不同長度字串的數據列表,現在您可能需要根據字元長度排序數據,以使列看起來整齊。此部分將討論如何根據字元數排序數據。
使用輔助列根據字元長度排序數據
要按字元長度排序一列,您應該使用 LEN 函數來計算每個單元格的字元數,然後應用排序功能來排序數據列表,請按照以下步驟操作:
1. 在原始資料旁的空白儲存格中輸入公式 =LEN(A2),例如 B2,然後向下拖曳填充柄至其他儲存格以應用此公式,請參閱螢幕截圖:
2. 然後,保持選擇公式單元格,接著根據需要點擊數據 > 升序或降序,在彈出的排序警告提示框中,選擇展開選擇,請參見截圖:
3. 然後,點擊排序按鈕,字串已按字元長度排序。您可以根據需要刪除輔助列B。請參閱截圖:
使用簡單選項根據字元長度排序資料
要快速輕鬆地按字元數排序資料,我推薦一個方便的工具—— Kutools for Excel。使用其高級排序功能,您可以輕鬆完成這項任務。
1. 選擇您要排序的數據列表,然後點擊 Kutools Plus > 排序 > 高級排序。
2. 在高級排序對話框中,選擇您要排序的列,然後在 排序依據下拉列表中選擇文字長度,最後在排序方式中指定您需要的排序順序。請參閱截圖:
提示:如果您的數據包含標題,請確保勾選數據包含標題。如果您的數據沒有標題,請取消勾選。
3. 然後,點擊 OK 按鈕,列表中的文字字串已按字元長度排序,如下圖所示:
3.3 按姓氏排序全名
在排序全名列表時,Excel會使用名字的第一個字符進行排序,但如果您想按姓氏排序資料呢?在這裡,我將為您提供一些技巧,讓您輕鬆在Excel中按姓氏排序全名。
使用輔助列按姓氏排序全名
要根據姓氏對全名進行排序,您應該將姓氏提取到新列中,然後使用排序功能按姓氏的字母順序排列全名。請按照以下步驟進行:
1. 在原始數據旁邊的空白單元格中輸入或複製以下公式,例如 B2,然後向下拖動填充柄到其他單元格以應用此公式,請參閱截圖:
=RIGHT(A2,LEN(A2)-FIND("@",SUBSTITUTE(A2," ","@",LEN(A2)-LEN(SUBSTITUTE(A2," ","")))))
2. 繼續選擇公式單元格,然後根據需要點擊數據 > 升序排序或降序排序,在彈出的排序警告提示框中,選擇展開選擇範圍,請參見截圖:
3. 然後,點擊排序按鈕,您將獲得根據姓氏排序的全名,完成後,您可以根據需要刪除輔助列。請參閱截圖:
使用快速方法按姓氏排序全名
如果您不熟悉公式,想要在不使用任何公式的情況下按姓氏排序全名,Kutools for Excel 的高級排序功能可以幫助您。
1. 選擇您想要排序的全名單元格,然後點擊 Kutools Plus > 排序 > 高級排序。
2. 在高級排序對話框中,選擇您要排序的列,然後從排序依據的下拉列表中選擇 姓氏,最後在排序順序中指定您需要的排序方式。請參見截圖:
提示:如果您的數據包含標題,請確保已勾選數據包含標題選項。如果您的數據沒有標題,請取消勾選。
3. 然後,點擊 OK 按鈕,完整名稱列會立即按姓氏排序。
3.4 按郵箱域名排序電子郵件地址
如果您有一個電子郵件地址列表需要按域名而不是僅按地址的第一個字母進行排序,您如何在 Excel 中實現這一點?本節將介紹一些快速的方法來按域名排序電子郵件地址。
使用輔助列按域名排序郵箱地址
在這裡,您可以創建一個公式以將郵箱域名提取到另一列,然後根據新的域名列對原始郵箱地址進行排序。
1. 在您的郵箱地址旁邊的空白單元格中輸入以下公式,在此示例中,我將此公式輸入到單元格C2,然後拖動填充柄到您想要應用此公式的區域。所有的郵箱域名將從地址中提取,請參閱截圖:
=RIGHT(B2,LEN(B2)-FIND("@",B2))
2. 保持公式單元格選中,然後根據需要點擊數據 > 排序 A 到 Z 或 排序 Z 到 A,在排序警告對話框中,勾選展開選擇,請參見截圖:
3. 然後,點擊排序按鈕以您指定的升序或降序方式按郵箱域名排序資料。
4. 排序後,您可以根據需要刪除輔助列。
只需幾次點擊即可按域名排序郵箱地址
如果您擁有 Kutools for Excel,使用其高級排序功能,只需幾次點擊即可按字母順序對郵箱地址的域名進行排序。
1. 選擇您想要排序的整個資料區域,然後點擊 Kutools Plus > 排序 > 高級排序。
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. 繼續選擇公式單元格,然後根據需要點擊數據 > 升序或降序。在彈出的排序警告提示框中,選擇展開選擇範圍,請參見截圖:
3. 然後,點擊排序按鈕,數據列表將立即被打亂,請參見截圖:
使用驚人的功能隨機排序單元格、行或列
Kutools for Excel 支援一個強大的功能——隨機排序,使用此功能,您可以在一個區域內的儲存格中隨機排列數據,或在選擇的每一列/行中隨機排列,甚至可以一次隨機排列整行或整列。
1. 選擇您想要隨機排序的資料區域,然後點擊 Kutools Plus > 排序 > 隨機排序。請參見截圖:
2. 在隨機排序或選擇對話框中,於排序標籤下,選擇您需要的以下選項之一:
- 整列排序:隨機排序選定區域中的整列。
- 整欄排序:隨機排列選擇區域中的整欄。
- 排序在每一列:單獨隨機排列每一列中的單元格。
- 排序在每一欄:單獨隨機排列每一欄中的單元格。
- 選區內的所有單元格:隨機排列選定區域內的所有單元格。
3. 然後,點擊 確定按鈕,數據會立即隨機化。
3.9 根據月、日或月和日排序日期列表
在 Excel 中排序日期時,排序功能會預設按年、月、日排序日期列表,但在某些情況下,您可能需要按月或日,或按月和日排序而忽略年份。如何在 Excel 中解決這個問題?
使用輔助列按月或日排序日期列表
若要僅根據月或日對日期進行排序,您可以從日期中提取月或日的數字,然後根據提取的月或日數字列對日期進行排序。
1. 請在數據旁邊的空白單元格中輸入以下公式,然後向下拖動填充柄以將此公式複製到其他單元格,請參見截圖:
=MONTH(B2) (提取月份數字)
=日(B2) (提取日期數字)
2. 返回月份或日期數字後,繼續選擇公式單元格,然後根據需要點擊數據 > 升序排序或 降序排序。在彈出的排序警告提示框中,選擇展開選擇,請參見截圖:
3. 然後,點擊排序按鈕,日期現在已按月排序,忽略了年份和日。請參見截圖:
只需幾次點擊即可按月或日排序日期列表
如果您擁有 Kutools for Excel,使用其 高級排序功能,您可以僅用幾次點擊就按月或日排序日期列表。
Kutools for Excel - 包含超過 300 種 Excel 必備工具。永久免費享受 AI 功能!立即下載!
1. 選擇您要排序的資料區域,然後點擊 Kutools Plus > 排序 > 高級排序。
2. 在高級排序對話框中,選擇您要排序的列,並從排序依據下拉列表中選擇月或 日,最後在排序方式區域中指定您需要的排序順序。
提示:如果您的數據包含標題,請確保已勾選數據包含標題選項。如果您的數據沒有標題,請取消勾選。
3. 然後,點擊 OK 按鈕,數據已根據您指定的月份或日期進行排序,忽略年份,請參見截圖:
使用輔助列按月和日排序日期列表
現在,如果您需要僅按月和日排序日期列表而不包含年份,可以使用 TEXT 函數將日期轉換為指定格式的文字字串,然後根據需要應用排序功能。
1. 在您的數據旁邊的空白單元格中輸入以下公式,然後將此公式複製到數據底部,月份和日期已被提取為文字字串,如下圖所示:
=TEXT(B2,"MMDD")
2. 保持公式單元格選中,然後根據需要點擊 數據 > 升序或降序,在彈出的排序警告提示框中,選擇展開選擇,如截圖所示:
3. 然後,點擊排序按鈕,現在,您的數據僅按月和日排序。
3.10 根據星期幾排序日期列表
要根據星期幾對日期列表進行排序,也就是將日期從星期一到星期日或從星期日到星期六排序。在本節中,我將介紹兩種在 Excel 中完成此任務的方法。
使用輔助列按星期幾排序日期列表
按星期幾排序日期時,您還需要一個輔助列來返回與星期幾相對應的數字,然後根據輔助列對日期進行排序。
1. 請在空白單元格中輸入或複製以下公式,然後向下拖動填充柄以將此公式複製到其他單元格,請參見截圖:
=WEEKDAY(B2) (從星期日 (1) 開始到星期六 (7))
=WEEKDAY(B2,2) (從星期一(1)到星期日(7)開始)
2. 保持公式單元格選中,然後根據需要點擊數據 > 升序或降序,在彈出的排序警告提示框中,選擇展開選擇,請參見截圖:
3. 然後,點擊排序按鈕以獲得所需的排序結果,請參閱截圖:
使用簡單選項按星期幾排序日期列表
借助 Kutools for Excel 的高級排序功能,您可以在不使用任何輔助公式的情況下快速解決此問題。
1. 選擇您要排序的資料區域,然後點擊 Kutools Plus > 排序 > 高級排序。
2. 在高級排序對話框中,選擇您要排序的列,然後從排序依據下拉列表中選擇星期幾,最後在排序順序部分指定您需要的排序順序。
提示:如果您的數據包含標題,請確保已勾選數據包含標題選項。如果您的數據沒有標題,請取消勾選。
3. 然後,點擊 OK 按鈕,數據已按星期幾排序。請參見截圖:
3.11 根據季度排序日期列表
本節將介紹如何在忽略年份的情況下,按季度排序日期列表,並為您提供兩個技巧。
使用輔助列按季度排序日期列表
就像上述解決方案一樣,您應該創建一個公式助手列以從給定日期中提取季度號,然後根據這個新的助手列對日期進行排序。
1. 請在空白單元格中輸入或複製以下公式,然後向下拖動填充柄以將此公式複製到其他單元格,請參見截圖:
=ROUNDUP(MONTH(B2)/3,0)
2. 繼續選擇公式單元格,然後根據需要點擊數據 > 升序或降序,在彈出的排序警告提示框中,選擇展開選擇,請參閱截圖:
3. 然後,點擊 排序按鈕,資料區域已按季度排序,如下圖所示:
使用方便的功能按季度排序日期列表
如果您已安裝 Kutools for Excel,使用高級排序功能可以幫助您輕鬆完成這項任務,只需幾次點擊。
1. 選擇您要排序的資料區域,然後點擊 Kutools Plus > 排序 > 高級排序。
2. 在高級排序對話框中,選擇您要排序的列,然後從排序依據下拉列表中選擇季度,最後在排序方式中指定您需要的排序順序。
提示:如果您的數據包含標題,請確保選中“數據包含標題”選項。如果您的數據沒有標題,請取消選中該選項。
3. 最後,點擊 OK 按鈕,選擇的區域將按季度排序。
3.12 根據月份名稱或工作日名稱排序資料
如果您有一個月份名稱的清單作為文字,排序時會按字母順序排列,而不是按1月到12月的月份順序。如果您需要從1月到12月排序月份名稱,自訂排序功能可能會幫助您。
1. 選擇您要根據月份名稱排序的資料區域,然後點擊數據 > 排序以進入排序對話框。
2. 在 排序對話框中,在列部分,選擇包含月份名稱的列名,在排序依據部分,選擇單元格值,最後在 排序順序部分,選擇自訂列表,請參見截圖:
提示:如果您的數據包含標題,請確保已勾選數據包含標題選項。如果您的數據沒有標題,請取消勾選。
3. 然後,在彈出的自訂列表對話框中,根據工作表中月份的列出方式,選擇完整月份名稱(1月、2月、3月,…)或簡短名稱(1月、2月、3月…),請參閱截圖:
4. 然後,點擊確定 > 確定以關閉對話框,現在,您的數據已按月份名稱按時間順序排序,如下圖所示:
提示:若要按工作日名稱排序,請在自訂列表對話框中選擇完整名稱(星期日、星期一、星期二……)或簡稱(週日、週一、週二……)以符合您的需求。
3.13 根據奇偶數排序數據
在 Excel 中,我們可能很容易將數字按升序或降序排序,但您是否曾嘗試過在列表中將數字從奇數排序到偶數或從偶數排序到奇數呢?在本節中,我將介紹一些完成此任務的方法。
使用輔助列按奇偶數排序數據
要按奇數或偶數排序數字列表,您應該創建一個公式來識別奇數或偶數,然後應用排序功能。
1. 在數字列表旁邊的空白儲存格中輸入公式 =ISODD(A2),然後拖曳以將公式複製到其他儲存格。現在,您可以看到顯示 TRUE 和 FALSE,TRUE 表示奇數,FALSE 表示偶數。
2. 繼續選擇公式單元格,然後根據需要點擊數據 > 升序排序或降序排序,在彈出的排序警告提示框中,選擇展開選擇,請參閱截圖:
3. 然後點擊 排序按鈕,所有偶數將被排序在一起,然後是奇數,或反之亦然。請參見截圖:
使用實用功能按奇數或偶數排序數據
借助 Kutools for Excel 的高級排序功能,您可以快速將數字從奇數排序為偶數,或反之亦然。
1. 選擇您要排序的資料區域,然後點擊 Kutools Plus > 排序 > 高級排序。
2. 在高級排序對話框中,點擊您想要排序的列,然後從排序依據部分選擇奇偶數,接著指定排序順序(升序從偶數到奇數,降序從奇數到偶數),請參見截圖:
提示:如果您的數據包含標題,請確保已勾選“數據包含標題”選項。如果您的數據沒有標題,請取消勾選。
3. 然後點擊 OK 按鈕,您將獲得以下結果:
3.14 根據絕對值排序數據
如果列中同時存在正數和負數,Excel 在排序時會默認將數字按升序或降序排列。但是,在某些情況下,您可能希望在排序數據時忽略負號,也就是說按絕對值排序數字。如何在 Excel 中實現此任務?
使用輔助列按絕對值排序數據
要按絕對值排序數字,通常應先創建一個公式將所有值轉換為絕對值,然後應用排序功能來排序數字。
1. 在相鄰的空白單元格中,例如 B2,輸入此公式 =ABS(A2),然後拖動填充柄將此公式複製到其他單元格。現在,您可以看到所有的值都已轉換為絕對值:
2. 保持公式單元格選中,然後,根據需要點擊數據 > 升序或降序,在彈出的排序警告提示框中,選擇展開窗格,見截圖:
3. 然後點擊排序按鈕,所有數字已按絕對值排序,如下圖所示:
使用方便的選項按絕對值排序數據
如果您厭倦了創建輔助列,我在這裡推薦 Kutools for Excel,使用其高級排序功能,您可以直接且簡單地按絕對值排序數字。
Kutools for Excel - 包含超過 300 種 Excel 必備工具。永久免費享受 AI 功能!立即下載!
1. 選擇您要排序的資料區域,然後點擊 Kutools Plus > 排序 > 高級排序。
2. 在高級排序對話框中,點擊您想要排序的列,然後在排序依據部分選擇絕對值,接著指定排序順序,請參見截圖:
提示:如果您的數據包含標題,請確保已勾選數據包含標題。若您的數據沒有標題,請取消勾選。
3. 然後,點擊 OK,所有數字將被排序為從小到大或從大到小的值,忽略負號。
自動排序資料當輸入或更改資料時
Excel中的排序功能不是動態的,每次數據更改或添加新數據後,您都需要重新排序。在本節中,我將討論如何在數據區域中每次添加新值時自動排序您的數據。
4.1 使用公式自動排序列中的數字值
要自動將數字列表按升序或降序排序,可以使用基於 LARGE、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. 然後保存並關閉此代碼,返回到您的工作表。接著,在一個空白單元格中輸入此公式 =SortCellContents(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
運行此代碼後,行中的數據已水平反向排序,請參見截圖:
只需一鍵即可反轉或翻轉列或行中的數據順序
如果您擁有 Kutools for Excel,利用其垂直翻轉範圍和水平翻轉選區功能,您只需點擊一次即可垂直和水平翻轉單元格範圍。
垂直翻轉選區內的數據順序
1. 選擇您想要反轉的資料區域,然後點擊 Kutools > 區域 > 垂直翻轉範圍 > 全部 / 僅翻轉內容,請參見截圖:
提示:如果選擇全部選項,所有的單元格格式將同時反向;如果選擇僅翻轉內容,則只有單元格的內容會被反向。
2. 然後,資料區域將立即垂直反轉。
水平翻轉選區內的數據順序
1. 選擇資料區域,然後點擊 Kutools > 區域 > 水平翻轉選區 > 全部 / 僅翻轉內容,請參見截圖:
提示:如果選擇全部選項,所有單元格格式將同時反向;如果選擇僅翻轉內容,只有單元格內容會被反向。
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 鍵以執行此宏,在接下來的提示框中,點擊 Yes,所有工作表將按升序字母排序;點擊 No,所有工作表將按降序字母排序,根據您的需要。
使用強大的功能按字母或字母數字順序排序工作表標籤
Kutools for Excel 提供了一個強大的功能——排序所有表,使用此功能,您可以按字母或精確排序工作表,根據標籤顏色排序工作表,或根據需要反向排序工作表標籤。
Kutools for Excel - 包含超過 300 種 Excel 必備工具。永久免費享受 AI 功能!立即下載!
1. 打開您想要排序工作表標籤的工作簿,然後點擊 Kutools Plus > 工作表 > 排序所有表,請參見截圖:
2. 在排序所有表對話框中,選擇您需要的排序類型,例如字母排序、精確排序。請參見截圖:
3. 然後,點擊 Ok 按鈕,所有工作表將根據您指定的排序類型進行排序。請參閱截圖:
使用 VBA代碼根據標籤顏色排序工作表標籤
在 Excel 中,我們通常會按字母順序排序工作表標籤,但您是否嘗試過根據標籤顏色排序工作表標籤?以下的 VBA代碼可能有助於解決此問題,請按以下步驟操作:
1. 按住 ALT + F11 鍵以開啟 Microsoft Visual Basic for Applications 視窗。
2. 點擊 插入 > 模組,然後將以下宏粘貼到模組視窗中。
VBA:根據工作表標籤(B)顏色排序所有表
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 鍵來執行此代碼,具有相同標籤顏色的工作表將會被一起排序。請參閱截圖:
使用一個驚人的功能根據標籤顏色排序工作表標籤
使用 Kutools for Excel 的排序所有表功能,您也可以快速輕鬆地按顏色排序工作表標籤。
1. 點擊 Kutools Plus > 工作表 > 排序所有表,進入排序所有表對話框,在排序所有表對話框中,點擊右側窗格的顏色排序按鈕,請參見截圖:
2. 然後,點擊確定按鈕,具有相同標籤顏色的工作表將會如以下截圖所示地排列在一起:
最佳辦公效率工具
🤖 | Kutools AI 助手:基於智能執行方式革新數據分析:智能執行 | 生成代碼 | 創建自訂公式 | 分析數據並生成圖表 | 調用 Kutools 函數… |
熱門功能:查找、標記重複值或識別重複項 | 刪除空行 | 合併列或單元格而不丟失數據 | 四捨五入無需公式 ... | |
高級 LOOKUP: 多條件 VLookup | 多值 VLookup | 多表查找 | 模糊查找 .... | |
高級下拉列表:快速創建下拉列表 | 依賴下拉列表 | 多選下拉列表 .... | |
列管理器: 添加特定數量的列 | 移動列 | 切換隱藏列的可見狀態 | 比較區域和列 ... | |
特色功能:網格聚焦 | 設計檢視 | 增強編輯欄 | 工作簿與工作表管理器 | 資源庫(自動文本) | 日期提取器 | 合併資料 | 加密/解密儲存格 | 按列表發送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體/斜體/刪除線...) ... | |
頂級 15 種工具集: 12 個文本工具(添加文本、刪除特定字符、...) | 50+ 圖表 類型(甘特圖、...) | 40+ 實用 公式(基於生日計算年齡、...) | 19 個插入工具(插入QR碼、根據路徑插入圖片、...) | 12 個轉換工具(金額轉大寫、匯率轉換、...) | 7 個合併與分割工具(高級合併行、分割儲存格、...) | ... 還有更多 |
使用 Kutools for Excel 提升您的 Excel 技巧,體驗前所未有的高效。 Kutools for Excel 提供超過 300 種高級功能來提高生產力並節省時間。 點擊這裡獲取您最需要的功能...
Office Tab 將標籤式界面帶到 Office,讓您的工作更加輕鬆
- 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中啟用標籤式編輯和閱讀。
- 在同一窗口的新標籤中打開和創建多個文檔,而不是在新窗口中。
- 將您的生產力提高 50%,每天為您減少數百次鼠標點擊!