有網友問到:在下圖中有多個不同系的資料,如何以一個公式,自動列出各系的排名?且積分相同時應列相同名次。
一般人要計算排名,大概都會利用 RANK 函數,不過在此,主要是要使用 SUMPRODUCT 函數即可搞定。
【準備工作】
選取儲存格B1:D29,按 Ctrl+Shift+F3 鍵,勾選「頂端列」,定義名稱:系別、積分。
【設計公式】
儲存格E2:=SUMPRODUCT((系別=B2)*(積分>=D2))-SUMPRODUCT((系別=B2)*
(積分=D2))+1
(1) SUMPRODUCT((系別=B2)*(積分>=D2)):
找出系別和儲存格B2相同且積分大於或等於儲存格D2者,即篩選出和儲存格B2相同系別的儲存格陣列,再判斷其積分是否大於或等於儲存格D2用以決定其「名次」。其中「*」運算相當於執行 AND 邏輯運算,運算後會將 TRUE/FALSE 陣列轉換為 1/0 陣列。
(2) SUMPRODUCT((系別=B2)*(積分=D2))
該式用以找出同積分者的數量,即找出系別和儲存格B2相同且積等於儲存格D2者。
最後執行 (1)式+(2)式-1,就是其名次,而且同積分者同名次。
複製儲存格E2,貼至儲存格E2:E29。
文章標籤
全站熱搜

非常感謝版主精闢的解說:)
不客氣!謝謝您閱讀部落格上的文章。
請問如何分組求中位數? 如您的例子,甲乙丙各系積分中位數是? 謝謝
請問:這個公式 SUMPRODUCT((系別=B2)*(積分>=D2))-SUMPRODUCT((系別=B2)*(積分=D2))+1 有沒有賦予「陣列」形式,有無差別? 我有試著直接輸入上述公式,但不按『shit+ctrl+enter』,結果似乎相同。 什麼情況下,才需要使用陣列呢?
你好,SUMPRODUCT函數本來就是以陣列形式來運算,不需再透過Ctrl+Shift+Enter鍵設定為陣列運算。什麼情況下,才需要使用陣列呢(要Ctrl+Shift+Enter鍵)?只要是取用多個儲存格一起運算的公式,都可以使用陣列公式運算,但是有些函數是不適用於陣列公式中的。
版大您好,請問若要重複名次,但不跳號如何改?? 例如:圖中甲系 賴宣念仍為第4名,戊系 李耀中仍為第2名!! 謝謝
請參考:http://isvincent.pixnet.net/blog/post/45882125