当另一个单元格具有特定值时如何为值添加+1?

问题描述 投票:0回答:1

我在 Google 表格中编写了一个公式来计算我所在的模拟赛车联盟的车手积分。该公式查看车手的最终位置并生成与该最终位置相对应的基点值。然后,它会查看车手在比赛期间获得的位置数,如果车手在其级别中获得的位置最多(在另一列中列出),则加 1 分。然后,系统会查看车手的起跑位置,如果车手以本组最高位置开始比赛,则加 1 分。如果车手在同组中获得最高名次,则加 2 分。公式如下:

=IFERROR(VLOOKUP(RaceFinishPosition,Points_System,2,FALSE)+IF(PosGained=MAXIFS(PosGained,Class,"Hypercar"),1,0)+IF(PosGained=MAXIFS(PosGained,Class,"GT3"),1,0)+IF(RaceFinishPosition=MINIFS(RaceFinishPosition,Class,"Hypercar"),2,0)+IF(RaceFinishPosition=MINIFS(RaceFinishPosition,Class,"GT3"),2,0)+IF(StartingPosition=MINIFS(StartingPosition,Class,"Hypercar"),1,0)+IF(StartingPosition=MINIFS(StartingPosition,Class,"GT3"),1,0),IF(ISNUMBER(StartingPosition),0,))

这在大多数情况下都可以正常工作。但是,我在特定情况下遇到了一些问题。如果某个级别中没有任何车手进行任何超车,即他们获得的位置为 0,则上面的公式会为该级别中的每个人提供 1 分,因为它显示所有车手的“获得位置”列中都有最大值。如果两名车手获得额外积分(假设他们都获得了 3 个位置),那也没关系。如果班级中的每个人都获得了 0 名,我只是不希望任何人获得积分。

还有一个问题是,如果在两个不同级别中获得最多位置的两位车手获得的位置数量相同。这会导致每个驾驶员获得 +2 分,而不是 +1 分(他们所在班级的 +1 分,其他班级的 +1 分。

我尝试在 IF 函数中添加不同的变体,例如

(PosGained="Hypercar")
(PosGained="GT3")
(这些类别分别命名为“Hypercar”和“GT3”),从而为获得的位置添加积分,但我似乎还没有还没有完全正确。我还尝试添加某种逻辑表达式来告诉公式仅在“获得的位置”列中的值 >0 时为“获得的位置”添加 +1 点,但我无法弄清楚在哪里或如何适合代入上面的公式。任何帮助将不胜感激。

这里是样本表文本的链接。我正在处理的工作表是“第 1 周”,公式位于表中 H 列“驾驶员积分”中。

谢谢!

我已经为上述两个问题场景添加了包含所需结果的表格。

google-sheets google-sheets-formula maxifs
1个回答
0
投票

您可以尝试:

=vlookup(G6,Overview!G$3:H$22,2,)+
 if((E6<>0)*(E6=maxifs(E$6:E$18,C$6:C$18,C6)),1,)+
 if(G6=minifs(D$6:D$18,C$6:C$18,C6),1,)+
 if(G6=minifs(G$6:G$18,C$6:C$18,C6),2,)

© www.soinside.com 2019 - 2024. All rights reserved.