You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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

火山引擎 最新活动