獎牌榜問題:怎麼排序與排名

更新於 發佈於 閱讀時間約 9 分鐘

杭州亞運在 10 月 8 號閉幕了!台灣國手精銳盡出,成績非常亮眼,奪金牌數也平了隊史紀錄:

raw-image

說到獎牌,在比較國家與國家間的運動表現時,獎牌榜有個排名(下圖第一欄):

raw-image

這排名是怎麼排的?觀察一下會發現:

  • 奪金數越多,排名越前
  • 若兩國奪金數相同,則比較奪銀數,銀牌多者,排名排前面
  • 若兩國奪金數、奪銀數相同,則比較奪銅數,銅牌多者,排名排前面
  • 若兩國金、銀、銅奪牌數相同,則同名

舉例來說:

raw-image

這次中國的奪金數最多,排名就是第一了。

再看這張泰國和巴林的比較:

raw-image

泰國和巴林雖然奪金數一樣(12),但是泰國的奪銀數比巴林多(14 > 3),所以泰國排在巴林前面,顯示第 8 名、第 9 名。

再看這張菲律賓、吉爾吉斯跟沙烏地阿拉伯的比較:

raw-image

三國的金銀牌奪牌數都一樣(4、2),但菲律賓有 12 面銅牌、吉爾吉斯有 9 面、沙烏地阿拉伯有 4 面,所以就按照奪銅數多少決定名次(12 > 9 > 4),所以分別是第 17 名、第 18 名和第 19 名。

再看這張,尼泊爾、汶萊和阿曼的比較:

raw-image

三國的金銀銅奪牌數都完全一樣(0、1、1),所以同名,並列第 32 名。

所以排名並不是看總奪牌數,而是看各獎牌的奪牌數,以「金」、「銀」、「銅」的優先順序進行排名。




好!問題來了,假如今天要用試算表來做,有這樣的清單:

raw-image

要怎麼在試算表上顯示排名、要怎麼把這清單排序排好?像這樣:

raw-image

這是怎麼做的?歡迎點這邊,複製一份試算表,一起來練習看看吧!




排序

上面提到的規則是「先用奪金數排序、再用奪銀數排序、最後再用奪銅數排序」,而這種有優先順序的排序法,可以用 Google 試算表的「排序範圍」功能達成。來一起看看怎麼做!先選 A 欄到 D 欄:

raw-image

畫面上方的選單有「資料」,在這選「排序範圍」>「範圍排序進階選項」:

raw-image

這樣會看到一個小視窗:

raw-image

因為我們的資料有標題列(第一列),「資料包含標題列」要打勾:

raw-image

接下來就要套用剛剛的金、銀、銅牌的規則了。

我們把排序依據的下拉式選單打開,改成「金牌」:

raw-image

選完後,右手邊有個「A 到 Z」還有「Z 到 A」又是什麼意思呢?他們代表「遞增」與「遞減」排序。




遞增、遞減是什麼?

遞增:小 → 大
遞減:大 → 小

假如你有 1、3、2、4、5 這些數字,我們用兩種排序方式去排的話:

  • 遞增:1、2、3、4、5(小 → 大)
  • 遞減:5、4、3、2、1(大 → 小)

除了數字,排序也當然可以用在文字上,以英文來說就是字母順序了。

假如你有 A、C、B、D、E 這五個字母,一樣用兩種排序方式去排:

  • 遞增:A、B、C、D、E
  • 遞減:E、D、C、B、A

目前在你的視窗有「A 到 Z」還有「Z 到 A」這兩個選項,「A 到 Z」就是遞增,「Z 到 A」就是遞減囉。

(至於中文和其他語言是怎麼排序的,就⋯⋯就是另一個深奧的話題了⋯⋯,或許會在另外一篇教學解釋不同語種的排序,歡迎敲碗。)




回到正題!因為我們要讓奪金數高的出現在前面(大 → 小),也就是遞減的方式,所以我們要選「Z 到 A」。目前的小視窗會看起來像這樣:

raw-image

再來繼續設定銀牌和銅牌的排序就 OK 了!這邊點「新增其他排序欄」:

raw-image

這邊會出現「次要排序依據」,還有預設的選項是「銀牌」(如果你的畫面跟我不一樣,在下拉選單選「銀牌」即可)。這邊一樣選遞減(Z 到 A):

raw-image

再來設定「銅牌」。我們再點一次「新增其他排序欄」,確認下拉選單顯示「銅牌」,然後也用遞減(Z 到 A)排序。

設定到這邊,應該會是這樣:

raw-image

按下綠色按鈕「排序」,就搞定了!

raw-image

再來看看怎麼做排名。




排名

把排序好的工作表往下滑,你會發現有幾個代表團的各獎牌奪牌數完全一樣:

raw-image
  • 1 銀 1 銅:阿曼、尼泊爾、汶萊
  • 3 銅:寮國、伊拉克
  • 1 銅:柬埔寨、敘利亞、巴勒斯坦、黎巴嫩

如果各獎牌奪牌數都一樣,那應該要並列同名才對。

可是如果你想直接把排序後的第一個代表團當作第一名、第二個就是第二名、第三個就是第三名,以此類推,你會發現這好像不是我們要的:

raw-image

比對一開始在維基百科看到的排行:

raw-image

雖然是可以手動改成同一個名次,但如果今天有更多的代表團參加比賽的話,這樣應該會有點辛苦。還有沒有什麼方法呢?

有的!我們等等會用「加權分數」跟「RANK」函式來解決這個問題。開始之前,先幫我在 D 欄右邊再新增兩欄,把 E 欄的標題叫「加權分數」、把 F 欄的標題叫「排名」 :

raw-image




RANK 函式是什麼?

剛剛提到了 RANK 函式,那我就在這先說明一下。RANK 可以傳回在某資料範圍裡面,一個數值的排名是多少。

RANK 的構造也很簡單:

=RANK(數值, 資料範圍, [遞增或遞減])

  • 數值:要排名的數值,像是某人考試的總分數、某人賽跑的總秒數
  • 資料範圍:要排名的資料範圍(通常是一欄),像是 B2:BC2:C50
  • [遞減或遞增]:選填,預設值是 0(遞減)

這個「遞減或遞增」,可以填 01

  • 0 表示遞減,意思是最大的數值就會排第一名,這也是我們對排名的定義。
  • 1 表示遞增,也就是最小的數值會排第一名。

因為預設值其實就是我們要的,這邊如果沒有什麼需求都不必特別指名。

舉個簡單的例子:

raw-image

C 欄這邊就是用 RANK 做的。在 C2 我寫的是:

=RANK(B2, $B$2:$B)

拆解一下:

  • 數值:B2(要排名的數值)
  • 資料範圍:B2:B(要排名的資料範圍)

因為 B2 的 90 分在 B 欄(B2:B)裡面是第二高的,所以就回傳「2」了。




那麼,回到獎牌排名!雖然我們知道 RANK 怎麼用了,但是:

數值該寫什麼?資料範圍又該寫什麼?

你會發現目前我們還沒有一組數值可直接給資料範圍比對,奪金數、奪銀數、奪銅數、甚至總奪牌數都不適合。面對這種多條件的排名,我們需要一點點額外的幫助。


「加權分數」

既然我們沒有可以比對的數值,那就自己做一組!

我想到可以把各代表團的奪金數、奪銀數、奪銅數拿來加權,給它們不同的比重,然後再相加起來,得到一組「加權分數」,像這樣:

加權分數 = 金牌奪牌數 * 10000 + 銀牌奪牌數 * 100 + 銅牌奪牌數​

舉例來說:

中華台北代表團:192028
19 * 10000 + 20 * 100 + 28 = 192028

試試看相同奪金數的狀況:

泰國代表團:121432
12 * 10000 + 14 * 100 + 32 = 121432

巴林代表團:1235 銅​
12 * 10000 + 3 * 100 + 5 = 120305

奪牌數完全相同的狀況:

阿曼代表團:11
尼泊爾代表團:11
汶萊代表團:11

三團都是:1 * 100 + 1 = 101


為什麼金牌要乘上一萬,銀牌要乘上一百?其他數字不行嗎?我覺得只要加權的獎牌倍率夠明顯,什麼數字都可以。

假如金牌的倍率是 3,銀牌是 2 來試算看看:

伊朗代表團:132120
13 * 3 + 21 * 2 + 20 = 101

哈薩克代表團:102248
10 * 3 + 22 * 2 + 48 = 122

雖然伊朗的奪金數較多(13),但分數上卻比奪金數較少的哈薩克低(10),這樣等等排名的時候,哈薩克反而會在伊朗前面,這樣就不是我們要的效果了。

所以如果可以試著調整比率,讓各種獎牌的比率變多就可以,一萬和一百只是我嘗試出來的數字而已,你可以彈性變換唷!

那我們就按照這個算法,把算式打在加權分數那邊吧。在 E2 輸入:

=B2 * 10000 + C2 * 100 + D2
raw-image

然後按下 Enter,第二列有加權分數了。如果你有出現下圖的自動填入,按下勾勾交給試算表在下方其他列產生算式:

raw-image

如果沒有出現,你也可以用 ArrayFormula 函式來做,在 E2 打:

=ArrayFormula(B2:B * 10000 + C2:C * 100 + D2:D)

做到這步,你的工作表看起來會像這樣:

raw-image


「RANK」產生排名

最後我們用剛剛學到的 RANK 函式,在 F 欄製作排名就可以了。

我們在 F2 輸入:

=RANK(E2, E2:E)
raw-image
  • 數值E2(要排名的數值)
  • 資料範圍E2:E(要排名的資料範圍)

如果你打完這個之後有出現自動填入,可以直接按下勾勾,讓算式往下填滿;或是如果你想做 ArrayFormula 的話,一樣可以在 E2 輸入:

=ArrayFormula(RANK(E2:E, E2:E))

這樣就做好了:

raw-image

來看看同名的代表團有沒有好好呈現:

raw-image

可以看到這些代表團有被分在同一個名次了!以下用顏色分組表示:

raw-image

這樣就做完囉!




如果你喜歡這次的文章,歡迎你透過這些方法支持我:

  • 按下愛心、按下儲存
  • 留言告訴我你的想法
  • 加入喜特先生的官方沙龍,即時看到我發布的教學
  • 付費訂閱喜特先生的官方沙龍,加入每月小額訂閱方案
  • 追蹤喜特先生的 Facebook
  • 這邊小額贊助我的創作!

想要看更多文章,歡迎來到我的 Notion 頁面找找有沒有你需要的資源喔!

我是喜特先生,Mr. Sheet,我們下個教學見!



留言
avatar-img
留言分享你的想法!
avatar-img
喜特先生官方沙龍
17.6K會員
152內容數
簡潔,快速,有效, 讓你的日常生活、工作生產力大提升! ___ 快按「加入」,馬上追蹤所有喜特先生的更新,有 Google 試算表教學、Google Apps Script 的研究、數據分析課程的開箱,還有 Google 試算表疑難雜症的解題分享唷!💪
2024/05/14
我們要設計一個算出員工請假時數的方法。員工會提供要請假的起始日期、時間,還有請假的終止日期、時間,要設法算出綠色那邊的請假時數。怎麼算呢?一起來看看!
Thumbnail
2024/05/14
我們要設計一個算出員工請假時數的方法。員工會提供要請假的起始日期、時間,還有請假的終止日期、時間,要設法算出綠色那邊的請假時數。怎麼算呢?一起來看看!
Thumbnail
2024/02/17
「一比鴨鴨」歌詞裡面,「一」出現了幾次、「比」出現了幾次、「鴨」又出現了幾次呢?我用 Google 試算表算給你看!
Thumbnail
2024/02/17
「一比鴨鴨」歌詞裡面,「一」出現了幾次、「比」出現了幾次、「鴨」又出現了幾次呢?我用 Google 試算表算給你看!
Thumbnail
2023/07/07
兩層式下拉式選單怎麼做?或許比你想像中來得簡單唷!一起來看看~
Thumbnail
2023/07/07
兩層式下拉式選單怎麼做?或許比你想像中來得簡單唷!一起來看看~
Thumbnail
看更多
你可能也想看
Thumbnail
大家好,我是一名眼科醫師,也是一位孩子的媽 身為眼科醫師的我,我知道視力發展對孩子來說有多關鍵。 每到開學季時,診間便充斥著許多憂心忡忡的家屬。近年來看診中,兒童提早近視、眼睛疲勞的案例明顯增加,除了3C使用過度,最常被忽略的,就是照明品質。 然而作為一位媽媽,孩子能在安全、舒適的環境
Thumbnail
大家好,我是一名眼科醫師,也是一位孩子的媽 身為眼科醫師的我,我知道視力發展對孩子來說有多關鍵。 每到開學季時,診間便充斥著許多憂心忡忡的家屬。近年來看診中,兒童提早近視、眼睛疲勞的案例明顯增加,除了3C使用過度,最常被忽略的,就是照明品質。 然而作為一位媽媽,孩子能在安全、舒適的環境
Thumbnail
我的「媽」呀! 母親節即將到來,vocus 邀請你寫下屬於你的「媽」故事——不管是紀錄爆笑的日常,或是一直想對她表達的感謝,又或者,是你這輩子最想聽她說出的一句話。 也歡迎你曬出合照,分享照片背後的點點滴滴 ♥️ 透過創作,將這份情感表達出來吧!🥹
Thumbnail
我的「媽」呀! 母親節即將到來,vocus 邀請你寫下屬於你的「媽」故事——不管是紀錄爆笑的日常,或是一直想對她表達的感謝,又或者,是你這輩子最想聽她說出的一句話。 也歡迎你曬出合照,分享照片背後的點點滴滴 ♥️ 透過創作,將這份情感表達出來吧!🥹
Thumbnail
第一局﹅21:17 第二局﹅18:21 前兩局以合作收,歸零搶三 第三局﹅決勝局 舉凡高手對弈,信念﹅實力﹅運氣缺一不可 決勝局一開始,麟洋配4:2暫時領先 但對手的實力不容小觑,硬是從落後2拉至5:5(呼~) 不僅場上選手不住噗通噗通,觀眾也是噗通噗通 (心血管,心臟功能健康真的重要
Thumbnail
第一局﹅21:17 第二局﹅18:21 前兩局以合作收,歸零搶三 第三局﹅決勝局 舉凡高手對弈,信念﹅實力﹅運氣缺一不可 決勝局一開始,麟洋配4:2暫時領先 但對手的實力不容小觑,硬是從落後2拉至5:5(呼~) 不僅場上選手不住噗通噗通,觀眾也是噗通噗通 (心血管,心臟功能健康真的重要
Thumbnail
2024巴黎奧運比賽大家有沒有準時在電視前為我們的台灣好手們加油呢?目前賽程已經進行大半,選手們也都不負眾望的奧運賽場為台灣奪了許多獎牌,在「麟洋配」收下...
Thumbnail
2024巴黎奧運比賽大家有沒有準時在電視前為我們的台灣好手們加油呢?目前賽程已經進行大半,選手們也都不負眾望的奧運賽場為台灣奪了許多獎牌,在「麟洋配」收下...
Thumbnail
前天麟洋配終於為中華台北取得本次奧運第一面獎牌,而且還是蟬聯冠軍的金牌,一時歡聲雷動,整個網路都被洗版。 正好阿頓FB的動態回顧,四年前此時也宣布,暫時不追蹤發奧運消息的朋友,太煩啦!!! 我也不知道有多少人在關心奧運,不過就一個每天上網八小時以上的人來說,每天不可控制地會看到很多奧運新聞
Thumbnail
前天麟洋配終於為中華台北取得本次奧運第一面獎牌,而且還是蟬聯冠軍的金牌,一時歡聲雷動,整個網路都被洗版。 正好阿頓FB的動態回顧,四年前此時也宣布,暫時不追蹤發奧運消息的朋友,太煩啦!!! 我也不知道有多少人在關心奧運,不過就一個每天上網八小時以上的人來說,每天不可控制地會看到很多奧運新聞
Thumbnail
今年八月很不一樣,首先是奧運,讓看賽事者的心情七上八下,接著是股市大亂流,讓投資者的心情莫名緊張,還好有奧運的陪伴,台灣好手接連傳來得牌的佳績,尤其是羽球雙打金牌、拳擊、射擊與體操銅牌到手,讓投資人轉移目光,減少了一些不安。
Thumbnail
今年八月很不一樣,首先是奧運,讓看賽事者的心情七上八下,接著是股市大亂流,讓投資者的心情莫名緊張,還好有奧運的陪伴,台灣好手接連傳來得牌的佳績,尤其是羽球雙打金牌、拳擊、射擊與體操銅牌到手,讓投資人轉移目光,減少了一些不安。
Thumbnail
好好累積經驗&磨練實力 我們一起對6段 發起衝擊吧✌️
Thumbnail
好好累積經驗&磨練實力 我們一起對6段 發起衝擊吧✌️
Thumbnail
奧運前夕,倒數兩個高等級賽賽「超級750新加坡公開賽」和「超級1000印尼公開賽」即將登場,再次吸引各路頂尖好手參賽,搶積分、爭取最佳奧運種子排序。有部分討論說,戴資穎若排第4種子籤運最佳,因為「可以避開提早碰上誰誰誰」,但這種說法是真的嗎?我們來解籤吧!
Thumbnail
奧運前夕,倒數兩個高等級賽賽「超級750新加坡公開賽」和「超級1000印尼公開賽」即將登場,再次吸引各路頂尖好手參賽,搶積分、爭取最佳奧運種子排序。有部分討論說,戴資穎若排第4種子籤運最佳,因為「可以避開提早碰上誰誰誰」,但這種說法是真的嗎?我們來解籤吧!
Thumbnail
題目敘述 輸入給定一個整數陣列,分別代表每位運動員在比賽中的成績。 分數最高的給予金牌"Gold Medal" 分數次高的給予金牌"Silver Medal" 分數第三高的給予金牌"Bronze Medal" 剩餘的名次依照順序給予"4", "5", ..., "n" 的編號。 輸出時以字串
Thumbnail
題目敘述 輸入給定一個整數陣列,分別代表每位運動員在比賽中的成績。 分數最高的給予金牌"Gold Medal" 分數次高的給予金牌"Silver Medal" 分數第三高的給予金牌"Bronze Medal" 剩餘的名次依照順序給予"4", "5", ..., "n" 的編號。 輸出時以字串
Thumbnail
企排明星賽觀後感
Thumbnail
企排明星賽觀後感
Thumbnail
2018/08/28 19:54 競技場   拍圖
Thumbnail
2018/08/28 19:54 競技場   拍圖
Thumbnail
中華青男隊歷屆亞青盃排名表 屆數/地點/時間/排名
Thumbnail
中華青男隊歷屆亞青盃排名表 屆數/地點/時間/排名
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News