搜尋
首頁專題excelExcel排序功能 - 使用公式自動排序數據

教程顯示瞭如何使用排序函數動態對數據數組進行分類。您將學習一個公式,在Excel中按字母順序排序,以升序或降序排列數字,按多列排序等等。

排序功能已經存在了很長時間。但是,隨著Excel 365中動態陣列的引入,似乎有一種非常簡單的方法可以與公式進行排序。該方法的優點在於,當源數據更改時,結果會自動更新。

Excel排序功能

Excel中的排序功能分類數組或範圍的內容,按列或行,上升或下降順序。

排序屬於動態數組函數組。結果是一個動態陣列,該陣列會自動垂直或水平溢出到相鄰的單元格上,具體取決於源陣列的形狀。

排序函數的語法如下:

sort(array,[sort_index],[sort_order],[by_col])

在哪裡:

陣列(必需) - 是一個值的數組或要排序的一個單元格。這些可以是任何值,包括文本,數字,日期,時間和等。

sort_index (可選) - 一個整數,指示要排序哪個列或行。如果省略,則使用默認索引1。

sort_order (可選) - 定義排序順序:

  • 1或省略(默認) - 上升順序,即從最小到最大
  • -1-降序,即從最大到最小的

BY_COL(可選) - 一個指示排序方向的邏輯值:

  • false或省略(默認) - 按行排序。您將大部分時間都使用此選項。
  • true-按列排序。如果您的數據是在此示例中的列中水平組織的,則使用此選項。

Excel排序功能 - 提示和註釋

排序是一種新的動態數組函數,因此它具有兩個特殊性,您應該知道:

  • 當前,該排序功能僅在Microsoft 365和Excel 2021中可用。 Excel2019,Excel 2016不支持動態陣列公式,因此這些版本中的排序功能不可用。
  • 如果按排序公式返回的數組是最終結果(即未傳遞到另一個函數),則Excel會動態創建適當的範圍,並用排序的值將其填充。因此,請確保您始終將足夠的空單元格向下或/以及進入公式的單元格的右側,否則會發生#spill錯誤。
  • 隨著源數據的變化,結果動態更新。但是,提供給公式的數組不會自動擴展到包含引用數組之外添加的新條目。要包含此類項目,您需要在公式中更新數組參考,或如本示例所示,將源範圍轉換為表,或創建一個動態命名範圍。

基本的Excel排序公式

此示例顯示了一個基本公式,用於在Excel中以升和降序排序數據。

假設您的數據是按字母順序排列的,如下面的屏幕截圖所示。您正在尋找在B列中對數字進行排序,而不會破壞或混合數據。

公式按順序排序

要在B列中從最小到最大的值分類值,以下是要使用的公式:

=SORT(A2:B8, 2, 1)

在哪裡:

  • A2:B8是源數組
  • 2是要排序的列號
  • 1是上升順序

由於我們的數據是行的,因此可以省略最後一個參數以默認為false-按行排序。

只需在任何空單元格中輸入公式(在我們的情況下D2),然後按Enter ,結果將自動溢出至D2:E8。

Excel排序功能 - 使用公式自動排序數據

以降序排序的公式

為了對數據進行排序,即從最大到最小的,將sort_order參數設置為-1這樣:

=SORT(A2:B8, 2, -1)

在目標範圍的左上方單元格中輸入公式,您將獲得此結果:

Excel排序功能 - 使用公式自動排序數據

以類似的方式,您可以按字母順序從A到Z或從Z到A進行文本值。

如何使用公式在Excel中對數據進行排序

以下示例顯示了Excel和幾個非平凡功能中排序功能的一些典型用途。

符合列排序

當您在Excel中排序數據時,在大多數情況下,您會更改行順序。但是,當您的數據與包含標籤和包含記錄的列的行水平組織時,您可能需要從左到右進行排序,而不是從上到下進行排序。

要按Excel中的列進行排序,請將BY_COL參數設置為true。在這種情況下, sort_index將表示一行,而不是列。

例如,按QTY對以下數據進行排序。從最高到最低,使用此公式:

=SORT(B1:H2, 2, 1, TRUE)

在哪裡:

  • B1:H2是要排序的源數據
  • 2是排序索引,因為我們在第二行中對數字進行排序
  • -1表示降序排序訂單
  • 真正的手段來對列進行排序,而不是行

Excel排序功能 - 使用公式自動排序數據

按不同順序排序多個列(多級排序)

使用複雜的數據模型時,您通常可能需要多層次排序。可以用公式完成嗎?是的,很容易!您要做的是為sort_indexsort_order參數提供數組常數。

例如,首先按區域(A列)從A到Z進行以下數據,然後按QTY對。 (C列)從最小到最大,設置以下參數:

  • 數組是A2:C13中的數據。
  • sort_index是數組常數{1,3},因為我們首先按區域(1 st列)排序,然後按QTY進行排序。 (3列)。
  • sort_order是數組常數{1,-1},因為第一列應按升序排序,而3列則以降序排序。
  • 省略了BY_COL ,因為我們對行進行排序,這是默認的。

將論點匯總在一起,我們得到了這個公式:

=SORT(A2:C13, {1,3}, {1,-1})

它可以很好地工作!第一列中的文本值按字母順序排序,第三列中的數字從最大到最小:

Excel排序功能 - 使用公式自動排序數據

在Excel中排序和過濾

如果您想用一些標準過濾數據並將輸出放置在順序上,請將排序和過濾功能一起使用:

sort(filter(array, criteria_range = criteria ),[sort_index],[sort_order],[by_col])

過濾器函數根據您定義的標準獲得一個值數組,並將該數組傳遞到排序的第一個參數。

關於此公式的最好的事情是,它還將結果輸出為動態溢出範圍,而無需按CTRL Shift Enter或猜測將其複製到多少個單元格。像往常一樣,您可以在最高單元格中鍵入一個公式,然後按Enter鍵。

例如,我們將從a2:b9中的源數據中提取等於或大於30(> = 30)的項目,並按上升順序排列結果。

為此,我們首先在單元E2中設置條件,如下圖所示。然後,以這種方式構建我們的Excel排序公式:

=SORT(FILTER(A2:B9, B2:B9>=E2), 2)

除了由過濾器函數生成的數組外,我們僅指定sort_index參數(第2列)。其餘兩個參數被省略,因為默認值完全按照我們的需要工作(排序逐行)。

Excel排序功能 - 使用公式自動排序數據

獲得最大或最小的值,然後對結果進行排序

在分析大量信息時,通常需要提取一定數量的最高值。也許不僅提取,還可以按照所需的順序排列它們。理想情況下,選擇在結果中包含哪些列。聽起來很棘手?沒有新的動態數組功能!

這是一個通用公式:

索引(排序(...),序列( n ),{ column1_to_returncolumn2_to_return ,…})

其中n是您要返回的值的數量。

從下面的數據集中,假設您想根據C列中的數字獲得前3個列表。

要完成,您首先按第三列按降序排序數組A2:C13:

SORT(A2:C13, 3, -1)

然後,將上述公式嵌套在索引函數的第一個(數組)參數中,以使數組從最高到最小排序。

對於第二個( row_num )參數,該參數指示要返回多少行,使用序列函數生成所需的順序數字。由於我們需要3個頂值,因此我們使用序列(3),這與直接在公式中直接提供垂直陣列常數{1; 2; 3}相同。

對於第三個( col_num )參數,該參數定義了要返回多少列的參數,請以水平數組常數的形式提供列號。我們想返回列B和C,因此我們使用數組{2,3}。

最終,我們得到以下公式:

=INDEX(SORT(A2:C13, 3, -1), SEQUENCE(3), {2,3})

它準確地產生了我們想要的結果:

Excel排序功能 - 使用公式自動排序數據

要返回3個底部值,只需將原始數據從最小數據排序。為此,將sort_order參數從-1更改為1:

=INDEX(SORT(A2:C13, 3, 1), SEQUENCE(3), {2,3})

Excel排序功能 - 使用公式自動排序數據

在特定位置返回排序值

從另一個角度看,如果您只想返回特定的位置怎麼辦?說,只有第一個,僅第二個或僅從排序列表中的第三記錄?要完成,請使用上面討論的索引排序公式的簡化版本:

索引(排序(...), n ,{ column1_to_returncolumn2_to_return ,…})

n是感興趣的位置。

例如,要從頂部獲得特定位置(即從數據排序的降序中),請使用此公式:

=INDEX(SORT(A2:C13, 3, -1), F1, {2,3})

要從底部獲得特定的位置(即從數據排序的升序中),請使用以下位置:

=INDEX(SORT(A2:C13, 3, 1), I1, {2,3})

如果A2:C13是源數據,F1是頂部的位置,i1是底部的位置,{2,3}是要返回的列。

Excel排序功能 - 使用公式自動排序數據

使用Excel表獲取排序數組以自動展開

如您所知,當您對原始數據進行任何更改時,排序的陣列會自動更新。這是所有動態數組函數的標準行為,包括排序。但是,當您在引用數組之外添加新條目時,它們不會自動包含在公式中。如果您希望您的公式對此類更改做出響應,請將源範圍轉換為功能齊全的Excel表,並在公式中使用結構化引用。

要查看其在實踐中的工作原理,請考慮以下示例。

假設您使用以下Excel排序公式按字母順序排列A2:B8的值:

=SORT(A2:B8, 1, 1)

然後,您在第9行中輸入了一個新的條目,並感到失望地看到新添加的條目不在溢出範圍之外:

Excel排序功能 - 使用公式自動排序數據

現在,將源範圍轉換為表。為此,只需選擇您的範圍,包括列標題(A1:B8),然後按Ctrl t 。構建公式時,使用鼠標選擇源範圍,並且表名將自動插入公式中(這稱為結構化參考):

=SORT(Table1, 1, 1)

當您在最後一行下方鍵入新條目時,表將自動擴展,新數據將包含在Sort公式的溢出範圍中:

Excel排序功能 - 使用公式自動排序數據

Excel排序功能不起作用

如果您的排序公式會導致錯誤,則很可能是由於以下原因。

#NAME錯誤:較舊的Excel版本

排序是一個新功能,僅在Excel 365和Excel 2021中起作用。在不支持此功能的較舊版本中,#name?發生錯誤。

#spill錯誤:某些東西阻止了溢出範圍

如果溢出範圍內的一個或多個單元格並非完全空白或合併,則為#spill!顯示錯誤。要修復它,只需刪除阻塞即可。有關更多信息,請參閱Excel #spill!錯誤 - 它的含義以及如何修復。

#Value錯誤:無效的參數

每當您遇到#Value時!錯誤,檢查sort_indexsort_order參數。 sort_index不應超過列數為數組sort_order應為1(上升)或-1(下降)。

#ref錯誤:源工作簿已關閉

由於動態數組對工作簿之間的參考的支持有限,因此Sort功能需要兩個文件打開。如果源工作簿已關閉,則公式將拋出#ref!錯誤。要修復它,只需打開引用文件即可。

這就是如何使用公式在Excel中對數據進行排序的方法。我感謝您閱讀,並希望下週在我們的博客上見到您!

練習工作簿下載

用公式(.xlsx文件)在Excel中排序

以上是Excel排序功能 - 使用公式自動排序數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
如何在Excel中創建時間軸以濾波樞軸表和圖表如何在Excel中創建時間軸以濾波樞軸表和圖表Mar 22, 2025 am 11:20 AM

本文將指導您完成為Excel Pivot表和圖表創建時間表的過程,並演示如何使用它以動態和引人入勝的方式與數據進行交互。 您的數據在Pivo中組織了

如何在Excel中下拉如何在Excel中下拉Mar 12, 2025 am 11:53 AM

本文說明瞭如何使用數據驗證(包括單個和因列表)在Excel中創建下拉列表。 它詳細介紹了該過程,為常見方案提供解決方案,並討論諸如數據輸入限制和PE之類的限制

如何在Excel中概括一列如何在Excel中概括一列Mar 14, 2025 pm 02:42 PM

本文討論了使用SUM函數,Autosum功能以及如何總和特定單元格中的Excel中總和列的方法。

如何在Excel中製作餅圖如何在Excel中製作餅圖Mar 14, 2025 pm 03:32 PM

本文詳細介紹了在Excel中創建和自定義餅圖的步驟,專注於數據準備,圖表插入和個性化選項,以增強視覺分析。

如何在Excel中製作桌子如何在Excel中製作桌子Mar 14, 2025 pm 02:53 PM

文章討論了Excel中的創建,格式化和自定義表,並使用諸如總和,平均和透視物等功能進行數據分析。

如何計算excel中的平均值如何計算excel中的平均值Mar 14, 2025 pm 03:33 PM

文章討論使用平均功能在Excel中計算平均值。主要問題是如何有效地將此功能用於不同的數據集。(158個字符)

如何在Excel中添加下拉如何在Excel中添加下拉Mar 14, 2025 pm 02:51 PM

文章討論了使用數據驗證在Excel中創建,編輯和刪除下拉列表。主要問題:如何有效管理下拉列表。

您需要知道的所有要對Google表中的所有數據進行排序您需要知道的所有要對Google表中的所有數據進行排序Mar 22, 2025 am 10:47 AM

掌握Google表格分類:綜合指南 在Google表中對數據進行排序不需要復雜。本指南涵蓋了各種技術,從整個床單到特定範圍,按顏色,日期和多個列。 無論你是諾維

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境