Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 根据分数差异对并列分数进行排序/排名_Sorting_Google Sheets_Google Sheets Formula_Array Formulas_Rank - Fatal编程技术网

Sorting 根据分数差异对并列分数进行排序/排名

Sorting 根据分数差异对并列分数进行排序/排名,sorting,google-sheets,google-sheets-formula,array-formulas,rank,Sorting,Google Sheets,Google Sheets Formula,Array Formulas,Rank,我想使用谷歌表做一个竞争排名,可以帮助我排名或排序的排名自动时,我在关键点。 然而,有一种情况会发生平局。如果平局,我会考虑分数差异。如果分数差异较小,则在平局条件下排名较高。 请参见下表中的说明: 例如:目前A队和D队的PTS最高,因此这两个队目前排名1。然而,与a队相比,D队的SD较低。所以我想让它自动将D队列为1级,将a队列为2级 这可能吗?通过排序,您可以定义多个排序标准,请参见[文档][1],例如 =sort(A2:I5,8,false,7,false) 所以您要在A2:I5中对您的

我想使用谷歌表做一个竞争排名,可以帮助我排名或排序的排名自动时,我在关键点。 然而,有一种情况会发生平局。如果平局,我会考虑分数差异。如果分数差异较小,则在平局条件下排名较高。 请参见下表中的说明:

例如:目前A队和D队的PTS最高,因此这两个队目前排名1。然而,与a队相比,D队的SD较低。所以我想让它自动将D队列为1级,将a队列为2级

这可能吗?

通过排序,您可以定义多个排序标准,请参见[文档][1],例如

=sort(A2:I5,8,false,7,false)
所以您要在A2:I5中对您的表进行排序,首先根据PTS,降序,然后根据SD,降序进行相应的更改?您可以添加更多具有更多参数对的条件列索引,然后作为布尔值降序或升序

然后,您需要将您的团队名称与排序表进行比较,并在排序列表中找到其排名:

=ArrayFormula(match(A2:I5,sort(A2:I5,8,false,7,false),0))

假设您的表以A1开头并带有标题,则将该公式粘贴到I2中,否则请相应调整

一种解决方案可能是使用以下公式创建一个隐藏列:

=PTS * 10000 - SD
=RANK(HiddenScoreCell, HiddenScoreColumnRange, 0)
用实际单元格引用替换PTS和SD

将PTS乘以10000可确保其优先级高于SD。 我们想奖励低SDs,所以我们用减法代替加法

最后,在秩列中,我们可以使用如下公式:

=PTS * 10000 - SD
=RANK(HiddenScoreCell, HiddenScoreColumnRange, 0)
因此,例如,如果HiddenScore列是K列,那么第2行的实际公式可能如下所示

=RANK(K2, K:K, 0)
第三个参数是0,因为我们希望分数越高排名越低

要进行排序,只需对秩列应用排序即可

=ARRAYFORMULA(IF(LEN(A2:A), RANK(H2:H*9^9-G2:G, H2:H*9^9-G2:G), ))

随着排名栏的填写更新,我误读了原始问题中的这一部分。