假设您的公司赞助了一场福利车展,并且您负责跟踪得分并提出获胜者。

工作表中的每一列代表不同的汽车类别,每一行代表竞赛中的不同参赛者。表格中的每个单元格都包含该参赛者在相应类别中的得分。在跟踪分数之后,您的工作是计算每个类别中的前三名优胜者:第一名,第二名和第三名。

如果每个类别包含每个人的唯一分数(没有关系),则计算每个类别中的前三名分数相对容易。假设工作表的前三行用于显示每个类别中的前三名获奖者。单元格A1包含1(第一位),单元格A2包含2(第二位),单元格A3包含3(您知道哪个位置)。

实际的得分表始于单元格A5,带有列标签。单元格A5包含单词“名称”,然后单元格B5:AA5具有每个汽车类别的名称。单元格A6:A100包含每个参赛者的姓名,单元格B6:AA100包含这些参赛者的得分(按类别)。

在单元格B1中输入以下公式:

=INDEX($A$6:$A$100,MATCH(LARGE(B$6:B$100,$A1),B$6:B$100,0))

将公式复制到其余结果范围B1:AA3。该公式查看A列(1到3)中的排名,然后使用该排名选择每列中的第一,第二和第三最大值。但是,该值不是返回值,而是用于选择具有该值的人的姓名;返回的就是这个名字。

如前所述,这种方法假设得分表中没有联系。如果可以建立联系,则评分会变得更加复杂,也许最好的解决方案是在宏中创建用户定义的函数。 (联系变得更加困难的原因是法官需要提出一套打破联系的规则。这些规则可以改变,这意味着公式和用户定义的函数可以改变。)

||||另一个建议是修改计分表的维护方式。而不是创建一个大型矩阵(26列,但是有很多参赛者),而是创建一个只有三列的小型数据库:名称,类别和得分。然后,您需要将每个人的数据输入数据库,并对数据库进行排序以获得所需的获胜者。只需先按类别排序,然后按分数排序,就可以轻松查看每个类别中排名前三位的参赛者。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(3041)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本:

链接:/ excelribbon-Determining_Winners_by_Category [确定获奖者,按类别]。