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

如何在 Excel 中依據兩欄資料進行排名?

作者Sun修改日期

當您在處理包含姓名與兩組不同分數的 Excel 資料集(例如測驗成績、專案評分,或跨多個期間的銷售資料)時,有時需要根據這兩組分數的綜合表現對姓名進行排名。這種需求常見於評估整體表現或綜合成就的情境,例如頒發獎學金、選拔頂尖業務代表,或合併競賽兩個階段的結果。然而,Excel 並未內建直接依據多欄資料進行排名的功能,您必須運用創意解法,才能實現所需的排名效果。
根據兩個欄位進行排名


根據兩欄資料進行排名

針對根據兩組分數對姓名進行排名的需求,一種有效做法是運用自訂公式,同時納入兩組分數進行評估。通常以第一組分數作為主要排序依據,當主要分數相同時,則以第二組分數作為決勝條件。當您希望在主要分數持平的情況下,仍能依據次要表現指標維持明確且一致的排序時,此方法尤為實用。

若要套用此方法,請依照下列步驟操作:

1. 選取一個空白儲存格作為排名結果的輸出位置,例如 D2 儲存格。
2. 輸入下列公式:

=RANK(B2,$B$2:$B$7)+SUMPRODUCT(--($B$2:$B$7=$B2),--(C2<$C$2:$C$7))

此公式首先根據第一組分數計算排名;當出現平手情況(即分數重複)時,會依據第二組分數進一步調整排名,對平手項目依其數值重新排序。SUMPRODUCT 部分則作為決勝條件,用來計算與當前項目第一組分數相同、但第二組分數較低的項目數量。

3. 按下 Enter 以確認公式。
4. 向下拖曳填滿控點,將公式快速套用至 D 欄其餘資料列!
套用公式以根據兩個欄位進行排名

在此公式中,B2 與 C2 分別代表第一組與第二組分數欄位中的第一筆資料,而 $B$2:$B$7 和 $C$2:$C$7 則為包含所有分數的範圍。若您的資料區域結構不同,請務必調整這些儲存格參照。

此方法適用於中小型資料集,且決勝條件僅取決於下一組分數的情況。若您需要處理大型資料集或更複雜的排名規則,請考慮以下替代方案。

VBA 程式碼-針對大型資料集或自訂排名規則自動化雙欄排名

當您在處理大型資料集,或需要根據自訂邏輯自動化排名(例如納入更多條件,或對不同範圍套用排名)時,VBA 是一種實用的解決方案;尤其當您覺得手動套用公式過於繁瑣,或需跨多個工作表進行批次處理時,此方法更顯理想。

1. 按一下開發人員工具 > Visual Basic。在 Microsoft Visual Basic for Applications 視窗開啟後,按一下插入 > 模組,並將下列程式碼複製貼上至模組中:

Sub Rank_Two_Columns()
    Dim lastRow As Long
    Dim ws As Worksheet
    Dim rngScore1 As Range, rngScore2 As Range, rngRank As Range
    Dim i As Long, j As Long
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set ws = Application.ActiveSheet
    lastRow = ws.Cells(ws.Rows.Count, 2).End(xlUp).Row 'Assume scores are in columns B and C
    
    Set rngScore1 = ws.Range("B2:B" & lastRow)
    Set rngScore2 = ws.Range("C2:C" & lastRow)
    Set rngRank = ws.Range("D2:D" & lastRow)
    
    For i = 1 To rngScore1.Rows.Count
        Dim rankCount As Long
        rankCount = 1
        
        For j = 1 To rngScore1.Rows.Count
            If rngScore1.Cells(j, 1).Value > rngScore1.Cells(i, 1).Value Then
                rankCount = rankCount + 1
            ElseIf rngScore1.Cells(j, 1).Value = rngScore1.Cells(i, 1).Value Then
                If rngScore2.Cells(j, 1).Value > rngScore2.Cells(i, 1).Value Then
                    rankCount = rankCount + 1
                End If
            End If
        Next j
        
        rngRank.Cells(i, 1).Value = rankCount
    Next i
End Sub

此程式碼會根據 B 欄的第一組分數對資料列進行排名,若出現平手情況,則以 C 欄的第二組分數作為決勝依據,並將排名結果輸出至 D 欄(從 D2 開始向下填入)。若您資料的欄位配置不同,請自行調整對應的欄位字母或範圍。

2. 若要執行此程式碼,請先關閉 VBA 編輯器並返回 Excel,按下 Alt + F8 開啟巨集對話方塊,選取 Rank_Two_Columns 後,按一下執行,排名結果將立即顯示於 D 欄中!

執行巨集前,請務必確認 Excel 已啟用巨集功能,並事先儲存您的工作內容,因為巨集操作無法復原。針對特別大型的資料集,此 VBA 解決方案能比手動複製公式更快速完成排名作業。

若您遇到「下標超出範圍」等錯誤,或發現排名結果未正確顯示,請先檢查資料範圍內是否包含空白列,並確認程式碼中已正確參照分數欄位。


其他內建 Excel 方法-使用輔助欄位合併兩組分數再進行排名

若您不想使用含陣列邏輯的公式或 VBA,也可善用 Excel 內建的排序工具,搭配輔助欄位輕鬆實現排名。特別是在兩組分數均為數值,且需套用加權或串接排序邏輯時,此方法尤為簡便。

操作方式如下:

1. 插入一個新欄位(例如 D 欄)作為輔助欄位。
2. 在輔助欄位的第一列(例如 D2)輸入可為每列產生唯一排序值的公式。您可以將兩組分數串接起來,或依需求賦予不同權重(例如第一組分數佔 60%、第二組佔 40%),並輸入下列公式:

=B2*0.6+C2*0.4

3. 按下 Enter,並將此公式向下複製至所有資料列。
4. 選取所有資料(包含姓名與兩組分數欄位)。
5. 切換至資料索引標籤,並選擇排序。在排序對話方塊中,將輔助欄位設為排序依據,並選擇依大到小排序。
6. 您的資料將根據組合排名邏輯重新排序。

此方法無需進階公式或程式設計,當您需要為排名條件賦予不同權重時,操作直覺又簡單。但請注意,若將數字以文字形式串接(例如將分數 90 與 88 合併為「9088」),在分數位數不一致的情況下可能無法正確運作。一般而言,採用加權總和或比例計算,更能確保產生唯一且合理的排名結果。

若您需要一個獨立的排名欄位,可對輔助欄位的數值進一步套用 RANK 函數。例如,在 E2 輸入:

=RANK(D2,$D$2:$D$7)

接著向下拖曳,將排名公式套用至所有資料列。

注意:請仔細確認輔助欄位中的計算方式是否確實符合您的排名規則。此方法最適合用於簡單的「總分」排名,或當您希望快速透過視覺化方式對資料進行排序時。

總結來說,在 Excel 中可透過公式實現動態且直接的雙欄位排名,運用 VBA 巨集處理大型或自訂化任務,或藉由輔助欄位搭配排序功能達成簡單的加權或串接排名。務必在排序或執行指令碼後抽樣檢查排名結果;若發現不一致,請確認資料中無隱藏的合併儲存格、空白列,或以文字格式儲存的數字。

kutools for excel ai 的螢幕截圖

透過 KUTOOLS AI 解鎖 Excel 的神奇功能

  • 智慧執行:透過簡易指令,輕鬆執行儲存格操作、分析資料,並建立圖表!
  • 自訂公式:打造專屬公式,讓您的工作流程更順暢!
  • VBA 編碼:輕鬆撰寫並套用 VBA 程式碼,立即提升工作效率!
  • 公式解析:輕鬆掌握複雜公式!
  • 文字翻譯:輕鬆打破試算表中的語言隔閡!
運用 AI 驅動的工具強化您的 Excel 能力。立即下載體驗前所未有的高效!

相關文章

最佳 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 天完整功能試用— 無需註冊,無需信用卡
  • 超值之選— 比單獨購買各增益集更省費用