Excel 如何从数字等级和字母等级的混合中计算平均等级,其值通过查找表确定

Excel 如何从数字等级和字母等级的混合中计算平均等级,其值通过查找表确定,excel,excel-formula,Excel,Excel Formula,数据表 查找表 我想使用一个数组公式计算每个学生的平均成绩,而不使用辅助列。如果所有的分数都是数字,那么将其平均就足够简单了,但是当字母分数被引入到混合中时,我需要使用查找表将其转换为数字值,然后对每个学生的整行进行平均 到目前为止,我能够用下面的公式将所有字母等级转换成相应的值 =TRANSPOSE(INDIRECT("N"&(MATCH(TRANSPOSE(B2:E2),Table2[Grade],0)+1))) 返回: ={#N/A,#N/A,7,3} 然后我想,很好,我用

数据表

查找表

我想使用一个数组公式计算每个学生的平均成绩,而不使用辅助列。如果所有的分数都是数字,那么将其平均就足够简单了,但是当字母分数被引入到混合中时,我需要使用查找表将其转换为数字值,然后对每个学生的整行进行平均

到目前为止,我能够用下面的公式将所有字母等级转换成相应的值

=TRANSPOSE(INDIRECT("N"&(MATCH(TRANSPOSE(B2:E2),Table2[Grade],0)+1)))
返回:

={#N/A,#N/A,7,3}
然后我想,很好,我用数字代替字母分数,让我们这样“平均”这个结果:

=AVERAGE(TRANSPOSE(INDIRECT("N"&(MATCH(TRANSPOSE(B2:E2),Table2[Grade],0)+1))))
如果完全允许以下情况,我不理解这一点:

=AVERAGE({1,2,3})

如果您可以容忍将“A*”更改为“A+”(或其他不被解释为通配符的内容),这可能会让您继续:

=(SUM(B2:E2)+SUMPRODUCT(SUMIF(Table2[Grade],"="&B2:E2,Table2[Attainment])))/COUNTA(B2:E2)
第一个
SUM
对数值等级求和;
SUMPRODUCT(SUMIF(…)
对字母等级求和。然后将总数除以等级数(
COUNTA


希望使用VLOOKUPs会有帮助,看起来会简单得多:


=AVERAGE(B2,C2,VLOOKUP(D2,$M$2:$N$7,2,FALSE),VLOOKUP(E2,$M$2:$N$7,2,FALSE))
解决此问题的一种方法是将所有数值等级添加到M列和N列中的2列等级表中(从技术上讲,它没有使用辅助列?),然后按升序对
等级
列进行排序,如下所示:

然后,您可以使用以下数组公式查找单元格
F2
中的平均等级:

=AVERAGE(LOOKUP(B2:E2,Tbl_Grade[Grade],Tbl_Grade[Attainment]))
作为一个数组公式,您必须在公式栏中完成公式后按Ctrl+Shift+Enter键,否则它将无法正常工作。然后,只需将公式向下拖动,即可将其应用于各个方向

逻辑是使用查找函数返回每个给定等级的相应成绩,而不管它是实际数字还是字母


如果你有任何问题,请告诉我。干杯:)

如果数组元素有错误,
AVERAGE
将返回该错误作为结果。我尝试使用
IFNA()
删除错误,但这会弄乱整个数组。请包装可能在iferror(函数,0)中产生错误的项,不幸的是,这些项无法工作,如下所示
=IFNA(转置(间接(“N”)和(匹配(转置(B2:E2),表2[Grade],0)+1)),“”
产生这个数组
={“”,#值!,#值!}
谢谢,这绝对是一个有趣的解决方案,我从未想过查找可以处理整个范围的值,我尝试过使用索引进行类似的匹配,但没有成功,您能否详细说明查找如何处理要搜索的值数组?@miro_x LOOKUP的工作逻辑与VLOOKUP类似,但它能够返回一个范围的值和如果没有精确匹配,则默认为近似匹配。存在一些限制,例如查找范围必须按升序排列,否则可能返回不正确的值。此函数有3个参数,第一个是查找条件,第二个是将与第一个参数进行比较的范围,如果不使用third参数,它将从第二个范围返回最接近的匹配结果。尝试谷歌一些工作示例,因为此函数非常实用。如果我想保留“A*”符号,我可以应用替代函数在公式中执行“A*”到“A~*”吗?