答案1
编辑:已更新以匹配 OP 的工作表。
仅使用一个辅助列就可以解决这个问题:
在 中输入以下公式K5
,然后按 ctrl-enter/复制-粘贴/向下填充到 中K5:K8
:
=SUMPRODUCT(($B5:INDEX(5:5,COLUMN()-1)={"A";"B";"C"})*(COLUMNS($B5:$J5)-1)^{2;1;0})
Score
然后按列从大到小对表进行排序。
如果成绩列的数量永远不会改变(在您的情况下看起来不会改变),或者您不介意手动调整公式,则可以使用以下更简单的公式:
=SUMPRODUCT(($B5:$J5={"A";"B";"C"})*5^{2;1;0})
此公式中的比5
成绩列数多一。
解释:
该公式通过创建和求和加权等级数组来发挥作用。
笔记:
- 如果添加或删除成绩列,第一个公式会自动调整。
- 除非在列的左侧立即插入一列
Score
,否则第二个公式也会自动调整。 - 这两个公式都可以修改,以允许更多的等级,例如,添加“D”级,将更改为
{"A";"B";"C"}
,{"A";"B";"C";"D"}
并将{2;1;0}
更改为{3;2;1;0}