我需要在 Excel 排行榜中排列单元格,以便显示每个团队在每个阶段所处的位置

我需要在 Excel 排行榜中排列单元格,以便显示每个团队在每个阶段所处的位置

在此处输入图片描述

图片显示了手动输入的期望结果。单元格需要自动排列,以便显示每支球队在比赛的每个阶段所处的位置及其得分,这意味着最后一行将显示比赛的最终结果。但同时也要清楚谁在第二阶段领先,谁在第三阶段领先等等

答案1

如果取消颜色编码,这个问题就更容易解决了。本质上,这个问题是在几轮比赛后确定球队排名(第一、第二、第三等),每支球队都会获得积分,排名基于每支球队在相关比赛结束后的累计积分。

在下面的截图中,我删除了颜色编码,并尝试通过使用字母 AE 重命名这 5 支球队,以避免将球队名称与分数和位置混淆。

解决方案截图

表 1 只是输入了每支球队在每一轮比赛中获得的分数。表 2 只是每支球队在每一轮比赛中累计的分数。表 3 使用该SORTBY函数,只是根据表 2 中的分数对球队进行排序。如果不是因为球队可能获得相同的分数,表 3 可能就是问题的结束。

事实上,使用输入数据后,这种情况在每一轮之后都会发生。例如,在第一轮之后,B队和D队都获得了5分。因此,表3不应该显示B队在第1位,D队在第2位,而应该显示理想情况下表示 B 队和 D 队并列第一。

SORTBY用于构建表 3 的函数通过以未排序数组中出现的相同顺序列出排名相同的项目来处理其排序标准(累计得分)中的相等性。因此,在第 1 轮之后,B 队在表 3 中排在 D 队之前,因为在排序的数组中()$F5:$F9B 排在 D 之前。第 2 轮之后,A 队和 E 队受到类似影响,第 3 轮之后,A 队和 C 队也受到类似影响。

表 4 和表 5 处理了这个问题,首先查看表 3 中每个名次的得分。这些结果在表 4 中,表 4 显示第 1 轮之后,排名第 1 和第 2 的球队都获得了 5 分,因此应该排名相同。同样,表 4 显示第 2 轮之后排名第 4 和第 5 的球队都获得了 4 分,因此应该再次排名相同。

表 5 通过将表 4 中的分值与上下单元格中的分值进行比较来纠正排名。规则如下:

  • 如果下方单元格具有相等的点数,但上方单元格没有,则表 5 中的当前位值将添加等号(例如,位 3 将变为 3=)
  • 如果上方单元格有相等的点,则当前位值被分配为上方单元格的位值
  • 如果两者都不适用,则位值保持不变

最后,表 6 简单地结合了表 3 中的队伍和表 5 中的名次值,以提供最终结果。表 6 添加了表 5 中的全部信息,而不是仅仅添加等号(或其他相同排名的指示符),以避免出现以下问题。假设 C 队在第 2 轮中获得 4 分而不是 3 分。两轮之后,A 队和 E 队将以 4 分打平(与之前相同),B 队和 C 队现在都获得 7 分(之前 C 队获得 6 分),D 队获得 9 分(与之前相同)。由于只有一个平等指示符,表 6 将显示 D 队是唯一获得第 1 名的队伍,但将显示 B、C、A 和 E 队彼此排名相同,而不是两对排名相同的队伍,但排名不同(2= 和 4=)。

要从表 6 中的信息获取 OP 中使用的颜色编码类型,需要使用 VBA。表 6 主体中每个单元格中的球队名称将被替换为单元格背景中对应的球队颜色。

如果使用 VBA,那么在 VBA 中进行所有计算(积分累积、排序、处理相同排名)可能比使用 Excel 的工作表函数更明智。VBA 可能是必要的,因为SORTBY用于创建表 3 的函数需要 Office 365 中可用的 Excel 版本。

相关内容