KutoolsforOffice — 一套方案,五大工具。事半功倍。三月特賣:20% 折扣

Excel 排序:依文字、日期、數字或色彩排序資料

作者曉陽修改日期

在 Excel 中排序資料是一項常見又簡單的任務,能協助您根據所選的排序方式重新排列資料。一般來說,透過內建排序功能,您可以針對一個或多個欄位中的數字、文字、日期與時間進行排序;也能快速輕鬆地依照自訂列表,或依據儲存格格式(例如字體顏色、背景色彩或圖示)來排序資料。

除了這些基本排序方式外,日常工作中還常需要更實用且複雜的排序方法。本教學將介紹幾種高效排序技巧,助您輕鬆解決 Excel 中的排序難題。

目錄:

1. 在 Excel 中存取排序選項

2. 排序的基本用法

3. 排序的進階用法

4. 輸入或變更資料時自動排序

5. 其他排序情境


在 Excel 中存取排序選項

Excel 提供多種方式,讓您輕鬆存取排序功能及其相關選項。

1.1 功能區中的排序按鈕

最快套用排序功能的方式,就是使用功能區中的排序按鈕。

按一下欲排序欄位中的任一儲存格,接著點選資料索引標籤,在排序與篩選區段中,按下升序Z 到 A 排序按鈕,即可依字母順序將資料遞增或遞減排序。請參閱下圖:

Excel「資料」索引標籤中「排序與篩選」群組的「由小到大排序」和「由大到小排序」按鈕截圖

注意:若數據區域中包含空白列,套用這些按鈕後,僅會對所選儲存格上方或下方、位於空白列之間的數據區域完成排序。


1.2 排序對話方塊

排序與篩選群組的資料索引標籤中,還有另一個排序按鈕,請參閱下圖:

Excel「資料」索引標籤中「排序與篩選」群組的「排序」按鈕截圖

按一下此排序按鈕後,將會彈出如下圖所示的排序對話方塊:

Excel 中的「排序」對話框截圖,包含依欄、排序依據及順序等選項

接著,在排序對話方塊中,您可依需求選擇相應的排序規則。

提示:您也可以使用快速鍵開啟此排序對話方塊——只需連續按下鍵盤上的 Alt + A + S + S 鍵!


1.3 篩選功能表中的排序選項

若您已對數據區域套用篩選,排序選項也會出現在篩選功能中。只需點擊任一欄位的篩選圖示,即可在展開的清單中看到排序選項,如下圖所示:

Excel「篩選」功能表中顯示排序選項的截圖

注意:這些排序選項會根據欄位中的資料類型而變化——若欄位為文字,將顯示升序Z 到 A 排序;若欄位為數字,將顯示排序小到大排序大到小;若欄位為日期,則顯示最早到最新排序最新到最早排序


1.4 以滑鼠右鍵存取排序選項

在 Excel 中,您也可以使用右鍵排序選項快速輕鬆地排序資料:在要排序之欄位的任一儲存格上按一下滑鼠右鍵,在出現的快捷選單中即可看到六種排序選項,請選擇您需要的那一項,請參閱截圖:

Excel 右鍵快捷功能表截圖,顯示六種排序選項


排序的基本用法

此 Excel 排序功能可協助您輕鬆執行基本排序作業,例如將數字、文字字串或日期依遞增或遞減順序排列,甚至能根據字型顏色或儲存格背景色進行排序。本節將介紹此功能的幾種基本用法。


2.1 依文字、數字或日期排序資料

若要依文字、數字或日期將資料範圍以遞增或遞減順序排序,請依照下列步驟操作:

1. 選取您要排序的資料範圍,然後點擊資料> 排序,請參閱截圖:

Excel「資料」索引標籤中「排序與篩選」群組的「排序」按鈕截圖

2. 在排序對話方塊中,進行下列操作:

  • 欄位區段中,選取您要據以排序的欄位名稱;
  • 排序依據區段中,選取儲存格值選項;
  • 排序順序區段中,指定您要的排序方式。(文字字串請選 )A 到 ZZ 到 A;數字清單請選小到大大到小;日期儲存格則請選最早到最新最新到最早。)
  • 提示:若您的資料包含標題列,請務必勾選包含標題選項;若不含標題列,則請取消勾選此選項。

Excel 中的「排序」對話框截圖,包含依欄、值及順序排序資料的選項

3. 接著,點擊確定按鈕,系統將立即根據您指定的欄位完成排序!


2.2 依儲存格顏色、字體顏色或儲存格圖示排序資料

若您希望根據儲存格顏色、字體顏色,或套用條件格式圖示來排序資料區域,排序功能可迅速完成這項任務。

假設您有一份數據區域已套用儲存格色彩格式(如下方截圖所示),若需依儲存格顏色重新排列資料,例如希望將淺紅色列置於最上方,其後依序為淺黃色與淺藍色列,請依照下列方式依儲存格顏色排序列:

Excel 表格截圖,為排序目的而以不同儲存格色彩格式化

1. 選取您要依儲存格顏色排序的資料範圍,然後點擊資料> 排序,即可開啟排序對話方塊。

2. 在排序對話方塊中,進行下列設定:

2.1)將第一個儲存格顏色設定在最上方,如下所示:

  • 區段中,選取名稱或其他包含已上色儲存格的欄位。在此範例中,所有欄位皆含有上色儲存格,您可以任選一個欄位名稱;
  • 排序依據區段中,選擇請選擇儲存格色彩選項;
  • 排序順序區段中,選擇一種您希望置於頂端或底端的儲存格色彩;

2.2)接著,點擊新增條件按鈕,以新增第二層及其他排序規則,並重複上述步驟設定其他儲存格顏色。

  • 提示:若您的資料包含標題列,請務必勾選包含標題選項;若不含標題列,則請取消勾選此選項。

Excel 中的「排序」對話框截圖,已新增多個層級以依儲存格色彩排序

3. 在完成設定後,點擊確定按鈕,數據區域就會依照您指定的儲存格顏色完成排序,請參閱截圖:

Excel 表格截圖,顯示依指定順序以儲存格色彩排序的結果

提示:依照上述步驟,您還可在排序對話方塊中選擇字體顏色使用條件格式圖示,輕鬆依字體顏色或儲存格圖示排序資料!
Excel「排序」對話框截圖,設定為依字型色彩或條件式格式圖示排序資料


2.3 依多個欄位排序資料

若您擁有如下方截圖所示的大型資料集,並希望執行多層級排序以更清晰地檢視資料——例如先依「地區」欄位排序,再依「州別」欄位排序,最後依「銷售額」欄位排序——該如何在 Excel 中完成此操作?

Excel 中的大型資料集截圖,將依「區域」、「州/省」及「銷售額」欄位排序

若要依多個欄位排序資料,請依照下列步驟操作:

1. 選取您要排序的資料範圍,然後點擊資料> 排序,即可開啟排序對話方塊。

2. 在排序對話方塊中,點擊新增條件按鈕兩次(因需使用三個欄位進行排序),即可在清單框中看到已新增兩個次要排序依據規則層級:

提示:若您的資料包含標題列,請務必勾選包含標題選項;若不含標題列,請取消勾選。

Excel「排序」對話框截圖,已新增多個層級以依三個欄位排序

3. 在主要排序依據次要排序依據的下拉清單中,分別選取您要排序的欄位名稱,並於儲存格值排序方式區段中,為每個選定欄位選擇「儲存格值」,最後再依需求設定排序順序。

Excel「排序」對話框截圖,已選取多層級排序所需的欄位、排序值及順序

4. 接著點擊確定,即可獲得如下方截圖所示的排序結果:

Excel 資料集截圖,已依「區域」、「州/省」及「銷售額」欄位完成排序


2.4 依自定義列表排序資料

除了依字母或數字順序排序外,此功能還支援自訂列表排序。例如,您可將下方資料區域依狀態排序—「未開始」、「進行中」、「已完成」(順序由您自訂)。以下說明如何執行此類排序。

Excel 資料集截圖,將依自訂清單(狀態:未開始、進行中、已完成)排序

1. 選取您要排序的資料範圍,然後點擊資料 > 排序,即可開啟排序對話方塊。

2. 在排序對話方塊中,先從欄位區段選取要排序的欄位,再於儲存格值排序方式區段中,點擊順序區段下的自定義列表選項,請參閱截圖:

提示:若您的資料包含標題列,請務必勾選包含標題選項:若資料不含標題列,請取消勾選。

Excel「排序」對話框截圖,顯示已選取「自訂清單」選項以進行自訂排序

3. 此時會彈出一個自訂列表對話方塊,請執行下列操作:

  • 按一下新增清單位於自訂清單方塊中;
  • 請依照您希望的排序順序,將文字字串輸入至清單項目方塊中;(輸入時,每項文字請按下 )Enter 鍵分隔。)
  • 最後,點擊新增按鈕,新清單就會立即加入至自訂列表方塊中!

Excel「自訂清單」對話框截圖,正在建立新的清單以供自訂排序使用

4. 接著點擊確定按鈕,即可返回排序對話方塊,您自訂的項目順序將立即顯示於順序下拉列表中!

Excel「排序」對話框截圖,在「順序」區段中顯示新建立的自訂清單

5. 接著點擊確定按鈕關閉對話方塊,數據區域便會依照您定義的自訂列表完成排序,請參閱截圖:

Excel 資料集截圖,將依自訂清單(狀態:未開始、進行中、已完成)排序


2.5 橫向排序資料從左到右(水平排序)

一般情況下,您會將資料表垂直排序(由上至下),但有時也可能需要根據列的值進行橫向排序(即由左至右)。例如,在下方的資料區域中,我希望依據「姓名」欄位中的值來排序。

Excel 資料集截圖,將依「名稱」列進行水平排序

在此情況下,排序功能內建支援由左至右的排序。請依照下列步驟操作:

1. 選取您要排序的資料範圍(不含標題列),然後點擊資料> 排序,即可開啟排序對話方塊。

2. 在彈出的排序對話方塊中,點擊選項按鈕,然後於排序選項對話方塊中選取由左至右排序選項,請參閱截圖:

Excel「排序選項」對話框截圖,已選取「由左至右排序」選項

3. 按一下確定以返回「排序」對話方塊。在區段中,指定您要據以排序資料的列號;於排序依據區段中,選取儲存格值;最後,在順序區段中選擇所需的排序順序。請參閱螢幕截圖:

Excel「排序」對話框截圖,設定為依特定列水平排序資料

4. 接著,點擊確定,您的資料就會如以下螢幕截圖所示完成排序:

Excel 資料集截圖,已依「名稱」列中的值完成水平排序


2.6 以區分大小寫的方式排序資料

一般來說,資料排序預設不會區分大小寫,如下方第一張螢幕截圖所示。但若您希望在排序時區分大小寫(如下方第二張螢幕截圖所示),該如何在 Excel 中實現?

Excel 資料集截圖,顯示不區分大小寫與區分大小寫的排序結果

若要在 Excel 中執行區分大小寫排序,請依照下列步驟操作:

1. 選取您要排序的資料範圍,然後點選資料 > 排序,即可開啟排序對話方塊。

2. 在排序對話方塊中,於區段指定您要據以排序資料的欄名,接著在排序依據區段中選取儲存格值,最後於順序區段選擇所需的排序順序,請參閱螢幕截圖:

提示:若您的資料包含標題,請務必勾選包含標題選項;若無標題,則請取消勾選。

Excel「排序」對話框截圖

3. 在出現的排序選項提示方塊中,繼續按一下此對話方塊中的選項按鈕,並勾選區分大小寫選項,請參閱螢幕截圖:

Excel「排序選項」對話框截圖,已選取「區分大小寫」選項

4. 按一下確定> 確定 以關閉對話方塊。資料將以區分大小寫的方式排序:當文字相同時,小寫字串會排在全大寫之前。請參閱螢幕截圖:

Excel 資料集截圖,以區分大小寫的方式排序,小寫字母排在大寫字母之前


進階排序應用

在日常工作中,您可能會遇到更複雜、實用且具體的排序需求,本節將為您介紹 Excel 中多種排序任務。

3.1 依出現頻率排序資料

假設您有一欄資料清單,現在希望根據各筆資料的出現頻率,以遞減順序排序該欄位(如下方螢幕截圖所示)。以下將為您介紹兩種方法來完成這項任務。

Excel 欄位截圖,顯示未排序的資料,需依出現頻率排序

使用輔助欄位依出現頻率排序資料

Excel 並未內建依出現次數排序的功能。不過,您可以透過建立輔助公式來計算每筆文字的出現頻率,再根據該輔助欄位進行排序,即可輕鬆達成所需的排序效果。

1. 在緊鄰原始資料的空白儲存格(例如 B2)中輸入下列公式,然後向下拖曳填滿控點至其他儲存格以套用此公式,請參閱螢幕截圖:

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

備註:在上述公式中,A2:A16 是您要依頻率排序的資料清單,而 A2 則為該清單中的第一筆資料。

Excel 資料集截圖,附有使用 COUNTIF 公式計算出現次數的輔助欄位

2. 接著,保持選取公式儲存格,然後按一下資料> 升序由大到小排序(依需求選擇)。在彈出的排序警告提示方塊中,選取擴充選取範圍,請參閱螢幕截圖:

Excel「排序警告」提示截圖,詢問是否在依輔助欄位排序時擴充選取範圍

3. 接著,點擊排序按鈕,原始欄位就會依照出現頻率自動排序,如下方螢幕截圖所示:

Excel 欄位截圖,已透過輔助欄位依數值出現頻率完成排序

提示:

1. 取得結果後,您可依需求刪除輔助欄。

2. 若有文字字串出現次數相同,則相同文字可能不會被排序在一起。此時,請前往排序對話方塊,先依輔助欄位排序,再依文字排序,如下圖所示:
Excel「排序」對話框截圖,設定為先依輔助欄位再依文字值排序


使用實用功能依出現頻率排序資料

若您已安裝 Kutools for Excel,只需運用其高級排序功能,即可輕鬆快速依出現頻率排序資料,無需額外使用輔助欄位!

Kutools for Excel 提供超過 300 項進階功能,簡化複雜作業,提升創造力與效率。整合 AI 功能,Kutools 能精準自動化各項任務,讓資料管理輕鬆無負擔。Kutools for Excel 的詳細資訊……         免費試用……

1. 選取您要排序的資料清單,然後按一下 KUTOOLS PLUS> 排序> 高級排序,請參閱下方螢幕截圖:

Excel 中 Kutools Plus「進階排序」選項的截圖

2. 在高級排序對話方塊中,先從區段選取您要排序的欄位,接著於頻率排序依據下拉清單中進行選擇,最後在順序區段指定排序順序,請參閱螢幕截圖:

提示:如果您的資料包含標題,請務必勾選包含標題選項;若資料不含標題,則請取消勾選。

Excel 中 Kutools for Excel 的「進階排序」對話框截圖,設定為依出現頻率排序資料

3. 接著,按一下確定按鈕,資料清單便會立即依出現次數完成排序,詳情請參閱螢幕截圖:

Excel 資料截圖,顯示使用 Kutools 依出現頻率排序的結果


3.2 依字元長度排序資料

若您有一份包含不同長度文字字串的資料清單,現在或許想依字元數排序,讓欄位看起來更整齊美觀。本節將說明如何依字元數量排序資料。

使用輔助欄位依字元長度排序資料

若要依字元長度排序欄位,請先使用 LEN 函數計算每個儲存格的字元數,再套用排序功能對資料清單進行排序。請依照下列步驟操作:

1. 在緊鄰原始資料的空白儲存格(例如 B2)中輸入公式 =LEN(A2),再向下拖曳填滿控點至其他儲存格以套用此公式,請參閱螢幕截圖:

Excel 資料集截圖,附有使用 LEN 函數計算字元長度的輔助欄位

2. 接著,保持選取公式儲存格,然後按一下資料> 升序由大到小排序(依需求選擇)。在彈出的排序警告提示方塊中,選取擴充選取範圍,請參閱螢幕截圖:

Excel「排序警告」對話框截圖,於依字元長度輔助欄位排序時出現

3. 接著,按一下排序按鈕,字串便會依字元長度完成排序。您可視需要刪除輔助欄位 B。請參閱螢幕截圖:

Excel 字串截圖,顯示透過輔助欄位依字元長度排序後的結果


使用簡易選項依字元長度排序資料

想要快速又輕鬆地依字元數量排序資料?我強力推薦這款實用工具——Kutools for Excel!透過其高級排序功能,您能輕鬆搞定這項任務。

Kutools for Excel 提供超過 300 項進階功能,簡化複雜作業,提升創造力與效率。整合 AI 功能,Kutools 能精準自動化各項任務,讓資料管理輕鬆無負擔。Kutools for Excel 的詳細資訊……         免費試用……

1. 選取您要排序的資料清單,然後按一下 KUTOOLS PLUS> 排序> 高級排序

2. 在高級排序對話方塊中,於區段選取您要排序的欄,從排序依據下拉清單中選擇文字長度,並在順序區段指定所需的排序順序。請參閱以下截圖:

提示:若您的資料包含標題列,請務必勾選包含標題列選項;若不含標題列,請取消勾選。

Kutools「進階排序」對話框截圖,設定為在 Excel 中依文字長度排序資料

3. 接著,按一下確定按鈕,清單中的文字字串便會依字元長度排序,如下方截圖所示:

Excel 資料截圖,顯示使用 Kutools 依文字長度排序的結果


3.3 依姓氏排序全名

當您在 Excel 中排序一組全名時,Excel 會根據姓名的第一個字元進行排序;但若您希望改依姓氏來排序資料,該怎麼做呢?這裡為您介紹幾個簡單技巧,讓您輕鬆在 Excel 中依姓氏排序全名。

使用輔助欄依姓氏排序全名

若要依姓氏對全名進行字母排序,請先將姓氏提取至新欄,再使用排序功能。請依照下列步驟操作:

1. 在原始資料旁的空白儲存格(例如 B2)中輸入或複製下方公式,再向下拖曳填滿控點,即可將公式套用至其他儲存格。詳情請參閱以下截圖:

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

Excel 資料集截圖,附有從全名中提取姓氏的輔助欄位

2. 繼續選取包含公式的儲存格,然後點選資料 > 升序由大到小排序(依您的需求)。在跳出的排序警告提示方塊中,請選擇擴充選取範圍。請參閱以下截圖:

Excel「排序警告」對話框截圖,於依姓氏排序時提示擴充選取範圍

3. 接著,按一下排序按鈕,即可取得依姓氏排序完成的全名。完成後,您可視需要刪除輔助欄位。請參閱以下截圖:

Excel 全名截圖,顯示透過輔助欄位依姓氏字母順序完成排序


使用快速方法依姓氏排序全名

若您不熟悉公式,卻又希望在不使用任何公式的情況下依姓氏排序全名,可善用高級排序功能——透過 Kutools for Excel 輕鬆達成目標!

Kutools for Excel 提供超過 300 項進階功能,簡化複雜作業,提升創造力與效率。整合 AI 功能,Kutools 能精準自動化各項任務,讓資料管理輕鬆無負擔。Kutools for Excel 的詳細資訊……         免費試用……

1. 選取您要排序的全名儲存格,然後按一下 KUTOOLS PLUS> 排序> 高級排序

2. 在高級排序對話方塊中,於區段選取您要排序的欄位,並從姓氏排序依據下拉式清單中選擇排序方式,最後在順序區段指定所需的排序順序。請參閱以下截圖:

提示:若您的資料包含標題列,請務必勾選包含標題選項;若不含標題列,請取消勾選。

Kutools「進階排序」對話框截圖,設定為在 Excel 中依姓氏排序資料

3. 接著,按一下確定按鈕,全名欄位將立即依姓氏完成排序。

Excel 全名截圖,顯示使用 Kutools 依姓氏字母順序完成排序


3.4 依網域排序郵箱地址

若您有一組電子信箱地址,想依網域名稱(而非僅依地址開頭字母)排序,該如何在 Excel 中輕鬆達成?本節將為您介紹幾種快速實用的方法,協助您依網域對電子信箱地址進行排序。

使用輔助欄依網域排序郵箱地址

在此,您可以建立一個公式,將郵箱地址的網域提取至另一欄,再依據這個新網域欄位對原始郵箱地址進行排序。

1. 在郵箱地址旁的空白儲存格中輸入下列公式(本例為 C2 儲存格),然後向下拖曳填滿控點,將公式套用至所需範圍,即可自動提取所有郵箱地址的域名。請參閱以下截圖:

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

Excel 資料集截圖,附有從電子郵件地址中提取網域名稱的輔助欄位

2. 保持選取含公式的儲存格,然後按一下資料> 升序由大到小排序(依您所需)。在排序警告對話方塊中,勾選擴充選取範圍。請參閱以下截圖:

Excel「排序警告」對話框截圖,於依網域名稱排序時提示擴充選取範圍

3. 接著,按一下排序按鈕,即可依郵箱地址的域名,按照您指定的遞增或遞減順序對資料進行排序。

Excel 電子郵件地址截圖,顯示依網域名稱字母順序完成排序

4. 排序完成後,您可依需求刪除輔助欄。


只需幾次點擊即可依網域排序郵箱地址

若您已安裝 Kutools for Excel,只需點擊幾下,即可透過其高級排序功能,依網域名稱對郵箱地址進行字母排序!

Kutools for Excel 提供超過 300 項進階功能,簡化複雜作業,提升創造力與效率。整合 AI 功能,Kutools 能精準自動化各項任務,讓資料管理輕鬆無負擔。Kutools for Excel 的詳細資訊……         免費試用……

1. 選取您要排序的整個資料區域,然後按一下 KUTOOLS PLUS> 排序> 高級排序

2. 在高級排序對話方塊中,於區段選取您要排序的欄位,並從郵箱域名排序依據下拉式選單中選擇排序方式,最後在順序區段指定所需的排序順序。請參閱以下截圖:

提示:若您的資料包含標題列,請務必勾選包含標題選項。若您的資料不含標題列,請取消勾選。

Kutools「進階排序」對話框截圖,設定為在 Excel 中依網域名稱排序電子郵件地址

3. 點擊確定後,數據區域已依郵箱地址的域名完成排序,如下方截圖所示:

Excel 電子郵件地址截圖,顯示使用 Kutools 依網域名稱字母順序完成排序


3.5 將一欄排序以對應另一欄

當您有兩欄資料內容完全相同或幾乎一致,卻因排序不同而未能對齊時,可能需要重新排序,讓相同的數值在兩欄中對應至同一列。本節將介紹處理此類排序需求的兩種情境。

對兩欄含有完全相同項目者進行排序以相互對應

例如,我有兩欄資料包含相同的項目,但排序不同;現在我希望對第二欄進行排序,使其與第一欄的順序一致,如下方截圖所示。

兩欄截圖,內容項目相同但順序不同,準備在 Excel 中進行比對

1. 在原始資料旁的空白儲存格中輸入下列公式,然後向下拖曳填滿控點,將公式套用至清單中的所有儲存格,即可取得 B 欄各數值在 A 欄中的對應位置。請參閱以下截圖:

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

Excel 截圖,顯示使用 MATCH 公式建立輔助欄位以對齊兩欄資料

2. 接著,選取 B 欄與新的輔助欄,然後點選資料 > 排序,開啟排序對話方塊。在排序對話方塊中,請執行下列操作:

  • 區段中,選取您要用來排序資料的輔助欄;
  • 接著,在儲存格值排序依據區段中選擇;
  • 最後,在小到大排序順序區段中選擇選項。

Excel「排序」對話框截圖,設定為依輔助欄位對齊兩欄資料

3. 接著,按一下確定按鈕,即可獲得與下方截圖完全相符的兩欄資料。如有需要,您也可刪除公式欄。

Excel 兩欄截圖,顯示透過輔助欄位排序成功比對的結果


對兩欄含有不完全相同項目者進行排序以相互對應

有時,兩欄中的項目可能不完全一致。例如,我希望將第二欄的資料排序,使其與第一欄對齊,讓相同的數值如截圖所示,整齊排列在同一列上。

兩欄截圖,內容項目不完全相同,準備在 Excel 中進行比對

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)))

Excel 兩欄截圖,顯示透過插入空白欄並使用公式完成對齊


3.6 從資料清單中排序並提取唯一值

如果您有一份包含部分重複值的清單,現在只想提取唯一值並依字母順序排序(如下方截圖所示),我將為您介紹幾種處理此類排序的實用公式。

Excel 清單截圖,包含重複項目,準備進行排序並提取唯一值

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 是輸入公式所在儲存格的上方儲存格。請根據實際需求調整這些參照。

Excel 截圖,顯示使用公式提取並排序唯一值

2. 接著拖曳填滿控點以提取值,直到出現空白儲存格為止,所有唯一值將自動依遞增順序排序並提取完成,詳情請參閱截圖:

Excel 欄位截圖,顯示已依字母順序排序的唯一值

提示

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)))

Excel 截圖,顯示使用進階公式提取並排序唯一數值


3.7 同時獨立排序多列或多欄

我們通常能輕鬆地根據某一行或某一欄對資料範圍進行排序,但有時您可能希望對範圍內的每一行或每一欄各自獨立進行字母排序。該如何在 Excel 中完成這項操作?

分別對多列資料進行排序

假設您有一組資料,需如以下截圖所示,對每一列進行字母排序。針對此需求,我們提供兩個快速技巧:

Excel 多列截圖,準備各自獨立排序

使用公式一次獨立排序多個列

1. 將欄位標題複製到您希望顯示排序結果的其他位置。

2. 接著,在空白儲存格(例如 H2)中複製或輸入下方公式,然後同時按下 Ctrl + Shift + Enter 鍵,即可取得第一個結果,請參閱截圖:

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

Excel 截圖,顯示套用於第一列以獨立排序的公式

3. 接著選取公式儲存格 H2,向右拖曳填滿控點,將公式複製到第一列的其他儲存格(在此範例中,拖曳至 K2 儲存格),請參閱截圖:

Excel 表格第一列截圖,顯示使用公式完成排序的結果

4. 選取第一列中的公式儲存格(H2:K2),向下拖曳填滿控點,將公式複製至其他列,即可看到每列數值皆已依遞增順序自動排序!

Excel 多列截圖,顯示使用公式各自獨立排序的結果


使用 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

。接著,按下F5 鍵執行此程式碼,每一列的資料將立即依遞增順序排序,請參閱截圖:

Excel 多列截圖,顯示使用 VBA 程式碼各自獨立排序的結果


分別對多欄資料進行排序

若要對每一欄資料分別進行排序,以下兩種方法可助您輕鬆達成目標。

使用公式一次獨立排序多個欄

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))

Excel 截圖,顯示套用於第一欄以獨立排序的公式

3. 繼續選取第一列中的公式儲存格(F3:F6),向右拖曳填滿控點,將公式複製至其他欄位。現在,各欄數值均已依遞增順序個別排序,如下方截圖所示:

Excel 多欄截圖,顯示使用公式各自獨立排序的結果


使用 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 鍵執行此程式碼,系統將彈出提示方塊,請選擇您要排序的資料區域,詳情請參閱截圖:

Excel 截圖,顯示 VBA 提示視窗,要求選取範圍以獨立排序多欄資料

4. 接著,按一下確定,各欄將立即完成排序。

Excel 多欄截圖,顯示使用 VBA 程式碼各自獨立排序的結果


3.8 在 Excel 中隨機排序資料

我們通常會以遞增或遞減的字母順序對資料進行排序,但您是否曾試過以隨機方式重新排列資料?在本節中,我將說明如何將儲存格範圍以隨機順序重新排序。

使用輔助欄位隨機排序一欄資料

一般而言,您可以使用 RAND 函數產生隨機數字,再根據此隨機清單對資料進行排序,請依照以下步驟操作:

1. 在資料旁的空白儲存格中輸入公式:=RAND(),並向下拖曳填滿控點,即可產生如下方截圖所示的隨機數字清單:

Excel 欄位截圖,顯示為排序而產生的亂數

2. 保持選取包含公式的儲存格,然後依需求點選「資料」>「升序」或「遞減排序」。在彈出的「排序警告」對話框中,選取「擴充選取範圍」,請參閱下方截圖:

Excel「排序」對話框截圖,用於根據亂數隨機重新排列資料

3. 接著,點擊排序按鈕,資料清單將立即被打亂,請參閱截圖:

Excel 資料截圖,顯示透過輔助欄位使用亂數完成隨機重新排列


使用強大功能隨機排序儲存格、列或欄

Kutools for Excel 支援一項強大功能——隨機排序,讓您能輕鬆隨機打亂儲存格範圍、範圍內各欄/列的資料,甚至一次隨機重排整欄或整列!

Kutools for Excel 提供超過 300 項進階功能,簡化複雜作業,提升創造力與效率。整合 AI 功能,Kutools 能精準自動化各項任務,讓資料管理輕鬆無負擔。Kutools for Excel 的詳細資訊……         免費試用……

1. 選取您要隨機排序的資料區域,然後點選 KUTOOLS PLUS> 排序> 隨機排序。請參閱截圖:

Kutools「隨機排序範圍」功能在 Excel 中的截圖

2. 在隨機排序或選擇對話方塊的排序索引標籤下,選擇下列其中一個您需要的選項:

  • 整行:隨機打亂整行中所選內容。
  • 整欄排序:隨機打亂整欄中的項目順序,實現隨機選擇。
  • 排序在每一列:將每一列的內容分別進行隨機打亂排序。
  • 排序在每一欄:分別對每一欄進行隨機打亂排序。
  • 排序所有儲存格:隨機打亂所選區域中的所有儲存格。

Kutools 隨機排序選項截圖,可隨機排序列、欄或儲存格

3. 按一下確定按鈕,資料將立即隨機重排。


3.9 根據月份、日期,或月份與日期來排序日期清單

在 Excel 中排序日期時,「排序」功能預設會依年份、月份和日期來排列日期清單;但在某些情況下,您可能希望忽略年份,僅依據月份、日期,或月份與日期的組合進行排序。該如何在 Excel 中實現這種排序方式?

使用輔助欄位依月份或日期對日期清單進行排序

若要僅依月份或日期排序,可先從日期中提取對應的月份或日期數字,再依據這些提取出的數字欄位進行排序。

1. 請在資料旁的空白儲存格中輸入下列公式,並向下拖曳填滿控點,將公式複製至其他儲存格,詳情請參閱截圖:

=MONTH(B2)        (extract month number)
=DAY(B2)
(提取日期數字)

Excel 截圖,顯示從日期中提取月份以供排序使用

2. 提取出月份或日期數字後,保持選取公式儲存格,點擊資料> 升序遞減排序(依需求選擇)。在跳出的排序警告提示方塊中,選取擴充選取範圍,請參閱截圖:

Excel「排序」對話框截圖,用於依提取的月份整理日期

3. 接著,點擊排序按鈕,日期便會依月份排序(忽略年份與日期)。請參閱截圖:

Excel 日期清單截圖,顯示忽略年份與日期、僅依月份排序的結果


只需幾次點擊即可依月份或日期對日期清單進行排序

若您已安裝 Kutools for Excel,只需點擊幾下,即可透過其高級排序功能,輕鬆依月份或日期排序日期清單!

Kutools for Excel-內含超過 300 項 Excel 必備工具,讓您的 Excel 作業更快速、更簡單、更高效!立即下載!

1. 選取您要排序的資料區域,然後按一下 KUTOOLS PLUS> 排序> 高級排序

2. 在高級排序對話方塊中,於欄位區段選取您要排序的欄位,並從排序依據下拉清單中選擇月份日期,最後在順序區段指定所需的排序順序。

提示:若您的資料包含標題列,請務必勾選包含標題選項;若無標題列,請取消勾選。

Kutools「進階排序」對話框截圖,用於在 Excel 中依月份排序日期

3. 接著,按一下確定按鈕,資料就會依照您指定的月份或日期(忽略年份)完成排序,請參閱截圖:

Excel 日期清單截圖,顯示使用 Kutools 依月份排序的結果


使用輔助欄位依月份與日期對日期清單進行排序

現在,若您需要僅依月份與日期(不含年份)對日期清單進行排序,可運用 TEXT 函數將日期轉換為指定格式的文字字串,再依需求套用排序功能。

1. 在資料旁的空白儲存格中輸入下列公式,並將公式向下複製至資料底部,即可如以下截圖所示,將月份與日期提取為文字字串:

=TEXT(B2,"MMDD")

Excel 截圖,顯示使用 TEXT 函數從日期中提取月份與日期

2. 保持選取包含公式的儲存格,然後點選資料 > 升序遞減排序(依需求選擇)。在跳出的排序警告提示方塊中,選取擴充選取範圍,請參閱截圖:

Excel「排序」對話框截圖,用於僅依月份與日期整理日期

3. 接著,按一下排序按鈕,您的資料就會依月份與日期排序。

Excel 日期清單截圖,顯示透過輔助欄位依月份與日期排序的結果


3.10 根據週內天統計排序日期清單

若要根據週內天數對日期清單進行排序(例如從星期一到星期日,或從星期日到星期六),本節將介紹兩種在 Excel 中實現此操作的方法。

使用輔助欄位依週內天統計排序日期清單

當您在依週內天數對日期進行排序時,同樣需要一個輔助欄位來傳回對應星期的數字,並依據該輔助欄位對日期排序。

1. 請在空白儲存格中輸入或貼上下列公式,再向下拖曳填滿控點,即可將公式套用至其他儲存格,詳情請參閱截圖:

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

Excel 截圖,顯示使用 WEEKDAY 函數從日期中提取星期數

2. 保持選取公式儲存格,然後按一下資料> 升序遞減排序(依需求選擇),在跳出的排序警告提示方塊中,選取擴充選取範圍,請參閱截圖:

Excel「排序」對話框截圖,用於根據星期數排序日期

3. 接著,點擊排序按鈕,即可立即取得所需的排序結果,詳情請參閱截圖:

Excel 日期清單截圖,顯示依星期幾排序的結果


使用簡易選項依週內天統計排序日期清單

透過 Kutools for Excel高級排序功能,您無需任何輔助公式,即可輕鬆快速解決此問題!

Kutools for Excel 提供超過 300 項進階功能,簡化複雜作業,提升創造力與效率。整合 AI 功能,Kutools 能精準自動化各項任務,讓資料管理輕鬆無負擔。Kutools for Excel 的詳細資訊……         免費試用……

1 選取您要排序的數據區域,然後按一下。KUTOOLS PLUS> 排序> 高級排序

2. 在高級排序對話方塊中,於欄位區段選取您要排序的欄位,從星期選單的排序依據下拉列表中選擇項目,並在順序區段指定所需的排序順序。

提示:若您的資料包含標題列,請務必勾選包含標題選項;若無標題列,請取消勾選。

Kutools「進階排序」功能截圖,包含依星期幾排序的選項

3. 接著,按一下確定按鈕,資料就會依照您指定的週內天數完成統計排序。請參閱截圖:

Excel 截圖,顯示使用 Kutools 依星期幾排序日期的結果


3.11 根據季度排序日期清單

本節將說明如何忽略年份,僅依季度排序日期清單,並提供兩種實用技巧供您運用。

使用輔助欄位依季度對日期清單進行排序

如同上述方法,您應建立一個公式輔助欄位,從指定日期中提取季度數字,並依據此新輔助欄位對日期進行排序。

1 請在空白儲存格中輸入或貼上下列公式,然後向下拖曳填滿控點,將公式複製至其他儲存格,詳情請參閱截圖:

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

Excel 截圖,附有從日期中提取季度編號的輔助欄位

2. 繼續選取包含公式的儲存格,然後依需求點選資料 > 升序遞減排序(Z 到 A)。在彈出的排序警告提示方塊中,請選取擴充選取範圍,詳情請參閱截圖:

Excel「排序」對話框截圖,用於根據提取的季度編號排序日期

3. 接著,點擊排序按鈕,即可看到數據區域已依季度排序,如下方截圖所示:

Excel 日期清單截圖,顯示依季度排序的結果


使用實用功能依季度對日期清單進行排序

若您已安裝 Kutools for Excel,即可使用內建的高級排序功能,只需點擊幾下,輕鬆完成此任務!

1 選取您要排序的數據區域,然後按一下。KUTOOLS PLUS> 排序> 高級排序

2. 在高級排序對話方塊中,於區段選取您要排序的欄位,並在季度排序依據下拉清單中選擇「季度」,最後於順序區段指定您所需的排序方式。

提示:若您的資料包含標題列,請務必勾選包含標題選項:若資料不含標題列,請取消勾選。

Kutools「進階排序」功能截圖,用於在 Excel 中依季度排序日期

3. 最後,點擊確定按鈕,即可依需求將選取區域按季度排序完成。


3.12 依月份名稱或星期名稱排序資料

如果您有一份以文字列出的月份名稱清單,直接排序會依字母順序排列,而非按照一月至十二月的時間順序。若希望將月份名稱依一月到十二月的正確時序排列,可透過排序功能中的「自訂排序」輕鬆達成。

1. 選取您要依月份名稱排序的資料範圍,然後點選資料> 排序,即可開啟排序對話方塊。

2. 在排序對話方塊中,於區段選取包含月份名稱的欄位名稱;在排序依據區段選擇儲存格值;最後,在順序區段選取自定義列表,請參閱截圖:

提示:若您的資料包含標題列,請務必勾選包含標題選項:若資料不含標題列,請取消勾選。

Excel「排序」對話框截圖,顯示自訂清單選取畫面

3. 接著,在彈出的自定義列表對話方塊中,請根據工作表中月份的顯示格式,選取完整月份名稱(January、February、March……)或縮寫名稱(Jan、Feb、Mar……),詳情請參閱截圖:

Excel「自訂清單」對話框截圖,已選取月份名稱

4. 接著,按一下確定> 確定 以關閉對話方塊,此時您的資料已依月份名稱完成時間順序排序,如下方截圖所示:

資料排序截圖,顯示依月份名稱按時間順序排列的結果

提示:若要依星期名稱排序,請在自訂列表對話方塊中,依需求選取完整星期名稱(Sunday、Monday、Tuesday……)或縮寫名稱(Sun、Mon、Tue……)。


3.13 依奇數或偶數排序資料

在 Excel 中,將數字依遞增或遞減順序排序相當簡單,但您是否曾想過將數字清單依奇數到偶數(或偶數到奇數)的方式排序?本節將為您介紹幾種實現此操作的實用方法。

使用輔助欄位依奇數或偶數對資料進行排序

若要依奇數或偶數對數字清單進行排序,請先建立公式以識別奇數與偶數,再套用排序功能。

1. 在數字清單旁的空白儲存格中輸入公式 =ISODD(A2),然後向下拖曳以複製公式至其他儲存格。您將立即看到 TRUE 與 FALSE 的結果:TRUE 代表奇數,FALSE 代表偶數!

Excel 截圖,顯示使用 ISODD 函數識別奇數與偶數

2. 繼續選取包含公式的儲存格,然後按一下資料> 升序遞減排序(Z 到 A)(依需求選擇)。在彈出的排序警告提示方塊中,選取擴充選取範圍,請參閱截圖:

Excel「排序」對話框截圖,用於依奇數與偶數值排序數字

3. 接著點擊排序按鈕,所有偶數將自動歸類在一起,緊接其後為奇數(或反之亦然),詳情請參閱截圖:

排序清單截圖,顯示數字依奇數或偶數分組的結果


使用實用功能依奇數或偶數對資料進行排序

藉助 Kutools for Excel高級排序功能,您也能快速將數字依奇數到偶數(或反之)排序!

Kutools for Excel 提供超過 300 項進階功能,簡化複雜作業,提升創造力與效率。整合 AI 功能,Kutools 能精準自動化各項任務,讓資料管理輕鬆無負擔。Kutools for Excel 的詳細資訊……         免費試用……

1 選取您要排序的數據區域,然後按一下。KUTOOLS PLUS> 排序> 高級排序

2. 在高級排序對話方塊中,於區段點選您要排序的欄位,然後在奇偶數排序依據區段中選擇「奇偶性」。接著指定排序順序(A 到 Z為從偶數到奇數,Z 到 A為從奇數到偶數),請參閱截圖:

提示:若您的資料包含標題列,請務必勾選包含標題選項:若資料不含標題列,請取消勾選。

Kutools「進階排序」功能截圖,包含依奇數與偶數排序的選項

3. 接著點擊確定按鈕,即可獲得以下結果:

數字排序截圖,顯示使用 Kutools 依奇數與偶數值排序的結果


3.14 依絕對值排序資料

若某欄同時包含正數與負數,Excel 預設會直接依數值大小進行遞增或遞減排序。然而在某些情況下,您可能希望忽略負號,改以絕對值排序。該如何在 Excel 中實現此需求?

使用輔助欄依絕對值排序資料

若要依絕對值排序數字,建議先建立一個公式,將所有數值轉換為絕對值,再套用排序功能進行排序。

1. 在相鄰的空白儲存格 B2 中輸入公式 =ABS(A2),再拖曳填滿控點將公式複製至其他儲存格,即可立即將所有數值轉換為絕對值:

Excel 截圖,顯示使用 ABS 函數將數字轉換為絕對值

2. 保持選取包含公式的儲存格,然後點擊資料 > 升序由大到小排序(依需求而定)。在彈出的排序警告提示方塊中,選取擴充選取範圍,如截圖所示:

Excel「排序」對話框截圖,用於根據絕對值排序數字

3. 接著點擊排序按鈕,所有數字將依照絕對值排序,如下方截圖所示:

數字排序截圖,顯示依絕對值排序的結果


使用便捷選項,依絕對值排序資料

如果您厭倦了建立輔助欄位,強力推薦您使用 Kutools for Excel!透過其高級排序功能,即可直接又輕鬆地依絕對值對數字進行排序。

Kutools for Excel-內含超過 300 項 Excel 必備工具,讓您的 Excel 作業更快速、更簡單、更高效!立即下載!

1. 選取您要排序的資料範圍,然後點擊 KUTOOLS PLUS> 排序> 高級排序

2. 在高級排序對話方塊中,於區段點選您要排序的欄位,接著在絕對值選項中選擇排序依據區段,並指定排序順序,如截圖所示:

提示:若您的資料包含標題列,請務必勾選「包含標題」;若無標題列,請取消勾選。

Kutools「進階排序」功能截圖,用於依絕對值排序數字

3. 接著點擊確定,所有數字將忽略負號,依由小到大或由大到小排序。


輸入或變更資料時自動排序資料

Excel 的排序功能並非動態,每次變更或新增資料後都必須手動重新排序。本節將說明如何在您的數據區域中,於每次新增數值時自動對資料進行排序。


4.1 使用公式自動排序欄中的數值

若要自動將數字清單依遞增或遞減順序排序,可運用結合 LARGE、SMALL 與 ROW 函數的公式。

1. 請在您的原始數據旁的空白儲存格中輸入或複製下方公式,再向下拖曳填滿控點至欲套用此公式的儲存格,數字將依由小到大的順序自動排列,如截圖所示:

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

注意:在此公式中,A2:A100 是您要自動排序的數字清單,其中包含若干空白儲存格,以便日後新增項目;B2 則為輸入公式的儲存格。

Excel 欄位截圖,顯示使用公式自動排序的數值

2. 現在,當您變更原始資料或輸入新資料時,排序清單將自動更新,如下方示範所示:

Excel 使用公式自動排序數字的示範 GIF

提示:若要自動將數字以遞減順序排序,請套用下方公式:

=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)),"")

Excel 欄位截圖,顯示使用公式自動依遞增順序排序的文字字串

2. 從現在起,當您在 A 欄輸入數值或變更原始資料後,B 欄的文字字串將自動依遞增順序排序,如下方示範所示:

Excel 使用公式自動排序文字的示範 GIF

提示:若要自動將文字字串以遞減順序排序,請套用下方公式(記得按下 )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 是資料清單的第一個儲存格。

Excel VBA 編輯器截圖,包含自動排序資料的程式碼片段

2. 接著,儲存並關閉程式碼視窗。日後當您在 A 欄輸入新資料或修改既有資料時,資料將自動依遞增順序排序,如下方示範所示:

示範 GIF,顯示當數值變更時 VBA 自動排序 Excel 資料

提示:如果您希望將資料清單以遞減順序排序,請套用下列程式碼:

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),再向下拖曳填滿控點以將公式複製到其他儲存格,即可依字母順序自動排序所有儲存格中的文字值,如截圖所示:

Excel 儲存格內字串值截圖,顯示使用 VBA 依字母順序排序的結果


將儲存格內以分隔符分隔的文字字串按字母順序排序

若儲存格內含有以特定分隔符分隔的多個單字,可透過下方的自訂函數將其依字母順序排序。

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),然後向下拖曳填滿控點,將公式複製到其他儲存格,即可讓所有儲存格中的文字字串依字母順序自動排序,如截圖所示:

注意:若您的文字字串使用其他分隔符,只需將此公式中的逗號替換為您所用的分隔符即可。

Excel 儲存格內以分隔符分隔的文字字串截圖,顯示使用 VBA 依字母順序排序的結果


5.2 反轉/翻轉欄或列中資料的順序

有時,您可能需要將垂直資料區域上下顛倒,或將水平資料區域左右翻轉。本節將為您介紹三種在 Excel 中輕鬆完成此操作的方法。

使用公式反轉/翻轉欄或列中資料的順序

下列公式可協助您翻轉欄或列中資料的順序,請照以下步驟操作:

翻轉欄中資料的順序

請在要放置結果的空白儲存格中輸入或複製下列公式,然後向下拖曳填滿控點至其他儲存格,即可依反向順序傳回儲存格值,請參閱螢幕截圖:

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

注意:在上述公式中,A1 為該欄的第一個儲存格,A10 則為該欄的最後一個儲存格。

Excel 截圖,顯示使用公式反轉欄位中資料的順序


翻轉列中資料的順序

請套用下列公式,以水平翻轉列中資料的順序:

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

注意:在上述公式中,A1 是該列的第一個儲存格,而 1:1 為資料所在的列號。若資料位於第 10 列,請將其改為 10:10.

接著,向右拖曳填滿控點至其他儲存格,直到所有值都被提取出來,您將獲得水平翻轉後的所有資料,請參閱螢幕截圖:

Excel 截圖,顯示使用公式反轉列中資料的順序


使用 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 鍵執行此程式碼,系統將彈出提示方塊,要求您選取欲垂直翻轉的資料區域,請參閱螢幕截圖:

Excel VBA 提示視窗截圖,用於垂直反轉選取範圍中的資料

4. 接著,按一下確定按鈕,數據區域將如以下螢幕截圖所示垂直翻轉:

Excel 截圖,顯示執行 VBA 程式碼後垂直反轉的資料範圍


水平翻轉選區內的資料儲存格的順序

若要水平翻轉數據區域的順序,請套用下列 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 截圖,顯示執行 VBA 程式碼後水平反轉的資料範圍


只需一次點擊即可反轉/翻轉欄或列中資料的順序

若您已安裝 Kutools for Excel,並搭配其垂直翻轉範圍水平翻轉選區功能,只需一鍵即可輕鬆完成儲存格範圍的垂直與水平翻轉!

Kutools for Excel 提供超過 300 項進階功能,簡化複雜作業,提升創造力與效率。整合 AI 功能,Kutools 能精準自動化各項任務,讓資料管理輕鬆無負擔。Kutools for Excel 的詳細資訊……         免費試用……

垂直翻轉選區內的資料儲存格的順序

1. 選取您要翻轉的數據區域,然後點選 Kutools > 範圍 > 垂直翻轉範圍,再選擇全部僅翻轉內容,請參閱螢幕截圖:

提示:若您選擇全部選項,將一併翻轉所有儲存格格式;若選擇僅翻轉內容,則僅翻轉儲存格的值。

Kutools「垂直反轉範圍」選項在 Excel 中的截圖

2. 接著,數據區域將立即垂直翻轉。

Excel 截圖,顯示使用 Kutools 反轉垂直資料的結果


水平翻轉選區內的資料儲存格的順序

1. 選取資料區域,然後按一下 Kutools> 範圍> 水平翻轉選區> 全部/僅翻轉內容,請參閱螢幕截圖:

提示:若您選擇全部選項,所有儲存格格式將同時被翻轉;若您選擇僅翻轉內容,則僅會翻轉儲存格值。

Kutools「水平反轉範圍」選項在 Excel 中的截圖

2. 接著,選取範圍內的所有儲存格值將立即水平翻轉,如下方螢幕截圖所示:

Excel 截圖,顯示使用 Kutools 反轉水平資料的結果


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 工作表索引標籤依字母順序排序的 VBA 提示視窗截圖


使用強大功能將工作表分頁按字母/字母數字順序排序

Kutools for Excel 提供強大功能——排序所有工作表,讓您輕鬆依字母或字母數字順序、頁籤顏色排序,或依需求反轉工作表標籤!

Kutools for Excel-內含超過 300 項 Excel 必備工具,讓您的 Excel 作業更快速、更簡單、更高效!立即下載!

1. 開啟您要排序工作表標籤的活頁簿,然後按一下 KUTOOLS PLUS > 工作表 > 排序所有表,請參閱螢幕截圖:

Kutools「排序工作表」功能在 Excel 中的截圖

2. 在排序所有表對話方塊中,於右側窗格選取您所需的排序類型,例如字母排序精確排序。請參閱螢幕截圖:

「排序工作表」對話框截圖

3. 接著,點擊確定按鈕,所有工作表將依照您指定的排序類型自動排序。請參閱螢幕截圖:

Excel 截圖,顯示使用 Kutools 依字母順序排序的工作表


使用 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 鍵執行此程式碼,相同頁籤顏色的工作表將自動歸類並排序。請參閱螢幕截圖:

Excel 截圖,顯示執行 VBA 後依索引標籤色彩排序的工作表


使用驚豔功能依分頁色彩對工作表分頁進行排序

透過 Kutools for Excel排序所有表功能,您還能快速輕鬆地依顏色對工作表分頁進行排序!

Kutools for Excel 提供超過 300 項進階功能,簡化複雜作業,提升創造力與效率。整合 AI 功能,Kutools 能精準自動化各項任務,讓資料管理輕鬆無負擔。Kutools for Excel 的詳細資訊……         免費試用……

1. 按一下 Kutools Plus > 工作表 > 排序所有表,開啟排序所有表對話方塊;在該對話方塊中,按一下右側窗格的顏色排序按鈕,如下圖所示:

Kutools「色彩排序」選項截圖,用於依色彩排序工作表索引標籤

2. 接著,按一下確定按鈕,相同分頁顏色的工作表就會如以下截圖所示整齊排列在一起:

Excel 截圖,顯示使用 Kutools 依色彩排序的工作表索引標籤

最佳 Office 生產力工具

🤖KUTOOLS AI 助手:基於以下內容徹底革新數據分析:智慧執行     產生程式碼  建立自訂公式    分析資料並產生圖表  呼叫增強函數……
熱門功能尋找、醒目提示或標記重複值     刪除空白行     合併列或儲存格而不遺失資料     不使用公式的四捨五入……
高級 LOOKUP多重條件 VLookup    多重數值 VLookup     跨多個工作表 VLookup      模糊查找……
高級下拉列表快速建立下拉式清單     相依式下拉式清單     多選下拉式清單……
欄位管理員新增指定數量的欄位移動欄位切換隱藏欄位的可見狀態比較範圍與欄位……
精選功能網格聚焦     設計視圖   增強編輯欄    工作簿與工作表管理員     資源庫(自動文字)  日期提取     合併工作表    加密/解密儲存格    依清單傳送電子郵件     超級篩選      特殊篩選(篩選粗體儲存格/斜體/刪除線……) ......
頂尖 15 工具組12 文字工具添加文本刪除特定字符,……)   50+ 圖表 類型甘特圖,……)   40+ 實用公式基於生日計算年齡,……)   19 插入工具插入二維碼從路徑插入圖片,……)   12 轉換工具金額轉大寫匯率轉換,……)   7 合併和拆分工具高級合併行分割儲存格,……)……以及更多
在您的慣用語言中使用 Kutools—支援英文、西班牙文、德文、法文、中文及另外 40+ 種語言!

運用 Kutools for Excel 強化您的 Excel 技能,體驗前所未有的高效能!Kutools for Excel 提供超過 300 項進階功能,大幅提升生產力並節省寶貴時間。立即點擊,取得您最需要的功能……


Office Tab 為 Office 帶來分頁式介面,讓您的工作更輕鬆自在!

  • 在 Word、Excel、PowerPoint 中啟用分頁式編輯與閱讀功能,以及 Access、Visio 與 Project。
  • 在同視窗的新分頁中開啟並建立多份文件,而非另開新視窗。
  • 每天為您提升 50% 的工作效率,並省下數百次滑鼠點擊!

所有 Kutools 增益集,一個安裝程式

Kutools for Office 套件整合了 Excel、Word、Outlook 與 PowerPoint 的增益集,以及 Office Tab Pro,非常適合需要跨多個 Office 應用程式協作的團隊使用!

ExcelWordOutlookTabsPowerPoint
  • 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
  • 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
  • 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
  • 30 天完整功能試用— 無需註冊,無需信用卡
  • 超值之選— 比單獨購買各增益集更省費用