Google Sheets中基于平均时长排名计算对应分数的函数实现方法
Google Sheets中基于平均时长排名计算对应分数的函数实现方法
嗨,我来帮你搞定这个需求!你想要根据平均时长的排名,给最快的打75分、第二快的50分、第三快的25分,这个用Google Sheets的基础函数就能轻松实现,下面给你两种简单易懂的方法:
方法一:使用RANK+SWITCH函数(推荐,更简洁)
假设你的平均时长列是D列,数据范围是D2:D4(对应Green、Blue、Yellow的平均时长),那在第一个需要计算分数的单元格(比如E2,Green的Score单元格)输入以下公式:
=SWITCH(RANK(D2,$D$2:$D$4,1),1,75,2,50,3,25)
输入完成后,直接下拉公式到其他Score单元格即可自动计算。
公式解释:
RANK(D2,$D$2:$D$4,1):这里的第三个参数1表示按升序排名(时长越短,排名越靠前,也就是最快的排第1),$D$2:$D$4用绝对引用是为了下拉公式时,排名的范围不会跟着变动。SWITCH(...):根据RANK返回的排名数字,直接对应返回75、50、25分,逻辑清晰,比嵌套IF更直观。
方法二:使用RANK+嵌套IF函数
如果你更习惯用IF逻辑,也可以用嵌套IF来实现,公式如下:
=IF(RANK(D2,$D$2:$D$4,1)=1,75,IF(RANK(D2,$D$2:$D$4,1)=2,50,25))
这个公式的逻辑和方法一完全一致,只是用IF嵌套来判断排名对应的分数,同样下拉即可复用。
验证你的示例:
按照你的数据:
- Yellow的平均时长
13:09:10是最短的,RANK返回1,所以分数为75 - Green的平均时长
13:42:06排第2,分数为50 - Blue的平均时长
14:14:40排第3,分数为25
完全符合你想要的结果!
扩展提示:
如果以后你的数据行数增加,只需要把公式里的$D$2:$D$4改成对应的完整数据范围(比如$D$2:$D$100),就能自动适配更多行的排名计算啦。
备注:内容来源于stack exchange,提问作者ahsteele




