我正在尝试制作一个钓鱼比赛电子表格......我想在一个单元格中执行,如果他们的排名是第一,他们将获得 100 分。如果他们的排名是第二,他们将获得 90 分,如果他们获得第三名,他们将获得 80 分...依此类推,直到 10......这是否可以通过输入 1-10 的数字来获得一个“IF”语句来自动计算分数?
如果 c2=1 则 d2=100 如果 c2=2 则 d2=90 如果 c2=3 则 d2=80
等等
答案1
如果您希望它更加灵活(例如,如您在评论中指出的 125、100、...、45、40),最好在某处有一个“分数”表,其中第一列为排名,第二列为分数,例如:
AB ╔══════╦═══════╗ ║ 排名 ║ 分数 ║ ╠══════╬════════╣ ║ 1║ 125║ ║ 2║ 100║ ║ 3 ║ 75 ║ ║ 4║ 50║ ║ 5 ║ 45 ║ ║ 6 ║ 40 ║ ║...║║ ╚══════╩════════╝
然后,您可以使用以下公式确定排名的分数:
=VLOOKUP(C2,分数!$A:$B,2,0)
答案2
d2 的公式:
=100-((c2-1)*10)
将此复制到列表中(即从 d2 到 d11),它将在 D 列中给出正确的分数
如果您想调整授予第一名的积分数量,只需将公式前面的 100 更改为最高分数,就可以了。
这种方法之所以有效,是因为名次之间的差距(例如第 2 名和第 3 名)始终是 10。如果这些数字发生变化(例如第 2 名到第 3 名相差 10 分,第 3 名到第 4 名相差 20 分),就很难改变。
对于您的评论示例,您必须将 D2 中的公式更改为类似以下内容:
=if(c2<5, 125-((c2-1)*250), 50-((c2-5)*5))
答案3
您无需使用多个 IF 语句。以下内容就足够了:
=如果(位置>0,MAX(100-(位置-1)*10,0),0)
在哪里位置是包含钓鱼者位置的单元格。