Skip to main content

如何在 Excel 中創建動態的前 10 名或前 n 名列表?

Author: Xiaoyang Last Modified: 2025-05-12

排行榜用於根據數值對公司或個人進行排名。假設您有一個班級學生成績的清單,現在您想創建一個動態的前 10 名學生列表,如下方截圖所示。在本文中,我將介紹一些用於在 Excel 工作表中創建前 10 名或前 n 名列表的公式。


在 Excel 中創建動態前 10 名列表

在 Excel 2019 及更早版本中,要提取前 10 名列表或帶條件的前 10 名列表,您應該應用以下公式:

創建動態前 10 名列表的公式

1. 首先,您需要從資料區域中提取前 10 個數值,請在空白單元格 G2 中使用以下公式,然後向下拖動填充柄以獲取前 10 個數值,見截圖:

=LARGE($B$2:$B$20,ROWS(B$2:B2))
備註:在此公式中,B2:B20 是您要獲取前 10 個數值的資料列表,而 B2 是資料列表的第一個單元格。

apply a formula to extract the top 10 values

2. 然後,繼續在單元格 F2 中應用以下公式,並同時按下 Ctrl + Shift + Enter 鍵以獲得第一個結果,見截圖:

=INDEX($A$2:$A$20,SMALL(IF($B$2:$B$20=G2,ROW($B$2:$B$20)-ROW($B$1)),COUNTIF($G$2:G2,G2)))
備註:在上述公式中,A2:A20 是您要提取前 10 個數值名稱的資料列表,B2:B20 是包含所有數值的資料列表,G2 是從列 B 提取的最大數值所在的單元格,而 B1 是數值列表的標題單元格。

use a formula to get relative item

3. 在獲得第一個結果後,選擇公式單元格並向下拖動填充柄以一次性獲取其他名稱,見截圖:

drag and fill the formula to other cells

a screenshot of kutools for excel ai

使用 Kutools AI 解鎖 Excel 的魔法

  • 智能執行:執行單元格操作、分析數據並創建圖表——所有這些都由簡單的指令驅動。
  • 自訂公式:生成量身定制的公式,簡化您的工作流程。
  • VBA 編碼:輕鬆編寫和實現 VBA 代碼。
  • 公式解釋:輕鬆理解複雜的公式。
  • 文本翻譯:打破電子表格中的語言障礙。
通過人工智能工具增強您的 Excel 能力。立即下載,體驗前所未有的效率!

根據條件創建動態前 10 名列表的公式

有時候,您可能需要根據條件獲取前 10 名列表。例如,獲取如下方截圖所示的 Class1 的前 10 名和分數。

create a dynamic top 10 list with criteria

1. 要獲取前 10 名列表,您還需要使用此公式提取前 10 個分數:

=LARGE(IF($B$2:$B$25=$F$2,$C$2:$C$25),ROW(I2)-ROW(I$1))

2. 然後同時按下 Ctrl + Shift + Enter 鍵以獲得第一個結果,然後向下拖動該公式以顯示其他數值,見截圖:

apply a formula to extract the top 10 values based on criteria

3. 接下來,請複製並將以下公式粘貼到單元格 I2 中,並同時按下 Ctrl + Shift + Enter 鍵以提取第一個結果,然後拖動該公式以填充其他單元格,前 10 名即會顯示出來。

=INDEX($A$2:$A$25,SMALL(IF(($C$2:$C$25=J2)*($B$2:$B$25=$F$2),ROW($C$2:$C$25)-ROW($C$1)),COUNTIF(J2:$J$2,J2)))

在 Office 365 中創建動態前 10 名列表

上述公式可能難以理解,如果您使用的是 Office 365,利用其 INDEX、SORT 和 SEQUENCE 函數,您可以創建簡單的公式來完成此任務。

創建動態前 10 名列表的公式

要獲取前 10 名數據列表,請使用以下公式:

=INDEX(SORT(A2:B20,2,-1),SEQUENCE(10),{1,2})

然後,只需按下 Enter 鍵,前 10 名列表的所有數據都會立即顯示出來,見截圖:

use a formula to create a dynamic top 10 list in Office 365

提示:

SORT 函數:

=SORT(array, [sort_index], [sort_order], [by_col])

  • array:您想要排序的單元格範圍;
  • [sort_index]:要對陣列進行排序的列或行號。例如,要按數據範圍的第二列排序,則排序索引為 2;
  • [sort_order]:數字 1(或省略)表示升序排序;數字 -1 表示降序排序;
  • [by_col]:排序方向。TRUE 表示按列排序,FALSE 或省略表示按行排序。

在公式中,我們這樣使用 SORT 函數:

SORT(A2:B20,2,-1):表示按第二列降序排序單元格範圍 A2:A20。


SEQUENCE 函數:

=SEQUENCE(rows, [columns], [start], [step])

  • rows:返回的行數;
  • [columns]:返回的列數。如果省略,將返回單列。
  • [start]:序列中的第一個數字。如果省略,將從 1 開始。
  • [step]:每個數字之間的增量。如果省略,每次增量為 1。

在此公式中,我們使用 SEQUENCE(10) 創建一個從 1 到 10 的列表。

最後,將 SORT 和 SEQUENCE 函數一起放入 INDEX 函數中:=INDEX(SORT(A2:B20,2,-1),SEQUENCE(10),{1,2}),這將返回數據範圍中的前 10 條記錄,並返回第 1 和第 2 列。


根據條件創建動態前 10 名列表的公式

要顯示帶條件的前 10 名列表,您應該將 FILTER 函數嵌入到 SORT 函數中,如下所示:

=INDEX(SORT(FILTER(A2:C25,B2:B25=F2),3,-1),SEQUENCE(10),{1,3})

然後只需按下 Enter 鍵,基於給定條件的前 10 名列表的所有數據都會立即顯示出來,見截圖:

another formula to create a dynamic top 10 list with criteria in office 365

提示:

FILTER 函數:

=FILTER(array, include, [if_empty])

  • array:要過濾的單元格範圍。
  • include:您用於過濾陣列的條件,以獲取 TRUE 或 FALSE 結果的陣列,因此篩選中將保留 TRUE 值。
  • [if_empty]:如果沒有匹配結果返回時顯示的值。

在此公式中:=FILTER(A2:C25,B2:B25=F2) 用於在範圍 A2:C25 中進行過濾,其中 B2:B25 的值等於特定單元格 F2。

最佳辦公效率工具

🤖 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%,每天為您減少數百次鼠標點擊!