Excel 平均值的最大值
嗨,伙计们,我有一张类似的桌子:Excel 平均值的最大值,excel,excel-formula,Excel,Excel Formula,嗨,伙计们,我有一张类似的桌子: Company / Score 1/ Score 2/ Score 3 Apple / 5 / 4 / 3 Banana / 3 / 6 / 6 Kiwi / 0 / 5 / 1 有没有一种方法可以在不使用帮助列的情况下,使用一个公式中的得分平均值从该列表中找到表现最好的公司?因此,对于上面的例子,我的回报将是公司香蕉-因为当平均所有三列时,它给了我最大的分数。同样,我的平均值是总和/计数,如果>0,那么猕猴桃的平均值是3,而不是2 假设您的
Company / Score 1/ Score 2/ Score 3
Apple / 5 / 4 / 3
Banana / 3 / 6 / 6
Kiwi / 0 / 5 / 1
有没有一种方法可以在不使用帮助列的情况下,使用一个公式中的得分平均值从该列表中找到表现最好的公司?因此,对于上面的例子,我的回报将是公司香蕉-因为当平均所有三列时,它给了我最大的分数。同样,我的平均值是总和/计数,如果>0,那么猕猴桃的平均值是3,而不是2 假设您的分数为非负,从B2开始:
=INDEX(A2:A4,MATCH(MAX(MMULT(B2:D4,--(ROW(INDIRECT("1:"&COLUMNS(B2:D2)))>0))/MMULT(--(B2:D4>0),--(ROW(INDIRECT("1:"&COLUMNS(B2:D2)))>0))),MMULT(B2:D4,--(ROW(INDIRECT("1:"&COLUMNS(B2:D2)))>0))/MMULT(--(B2:D4>0),--(ROW(INDIRECT("1:"&COLUMNS(B2:D2)))>0)),0))
这将扩展到所需的行/列数。请记住,如果平局,它将返回第一个高分。此外,如果有可能获得全零,则应使用IFERROR
将传递给MAX
的数组包装起来(此公式需要作为数组公式输入(ctrl
+shift
+enter
):
通过将数组硬编码为3列,我们可以使用数组公式 注意:需要使用ctrl+shift+enter输入数组公式 这还假设列分别为A、B、C、D
=INDEX(A:A,MATCH(MAX((B:B+C:C+D:D)/MAX((IF(B:B>0,1,0)+IF(C:C>0,1,0)+IF(D:D>0,1,0)),1)),(B:B+C:C+D:D)/MAX((IF(B:B>0,1,0)+IF(C:C>0,1,0)+IF(D:D>0,1,0)),1),0))
略作解释:
(B:B+C:C+D:D)
=作为数组的行的总和MAX((如果(B:B>0,1,0)+如果(C:C>0,1,0)+如果(D:D>0,1,0)),1)
=我们将在数组中求和的总数(苹果3个,香蕉2个,猕猴桃)。MAX是为了消除任何除以零的错误{1}/{2}
=每行的平均值Max({3})
以查看最高平均值索引(A:A,{4},{3})
将根据我们找到的最高平均值找到相应的公司你总是只有三列吗?香蕉当然有最高的…6+6+3=15/3=5…不确定你的确切意思,但要澄清的是,上面是我评估中一个元素的分数,我有三列要求平均值,并且始终是3。对于另一个元素,我将有5列要求平均值,但它也总是这是5列。哦,对不起,香蕉是最高的。这也是你的问题吗?太好了!即使没有ctrl+shift+enter,这对我来说也很有效。我本想走
间接
的路,但似乎太费劲了:)+1让它达到work@chancea没错。我在编辑时考虑了一些其他因素。快速澄清如果我在不同的表格中使用这个公式,而不是在数据表中,那么我的表格名称应该放在哪里?我尝试了这个方法,但没有成功:=索引(解决方案!A2:A30;匹配(最大值)(MMULT(解决方案!B2:D30;--)(行(间接(“1:Solution!”&列(B2:D30))>0))/MMULT(--(解决方案!B2:D30>0);(行(间接(“1:Solution!”&列(B2:D30))>0);MMULT(解决方案!B2:D30;--(行(间接(“1:Solution!”&列(B2:D30))>0))/MMULT(--(解决方案!B2:D30>0);(行(间接))(“1:Solution!”&列(B2:D30))>0);0)将工作表标识符放在您调用范围的任何位置:=索引(解决方案!A2:A4,匹配(最大值(MMULT(解决方案!B2:D4,--(行(间接)(&COLUMNS(解决方案!B2:D2))>0))/MMULT(-(解决方案!B2:D4>0),-(行(间接)(&COLUMNS(解决方案!B2:D2))>0)),MMULT(解决方案!B2:D4,--(行(间接)(&COLUMNS(解决方案!B2:D2)))>0)/MMULT(--(解决方案!B2:D4>0),-(行(间接(“1:&列(解决方案!B2:D2)))>0),0))
=INDEX(A:A,MATCH(MAX((B:B+C:C+D:D)/MAX((IF(B:B>0,1,0)+IF(C:C>0,1,0)+IF(D:D>0,1,0)),1)),(B:B+C:C+D:D)/MAX((IF(B:B>0,1,0)+IF(C:C>0,1,0)+IF(D:D>0,1,0)),1),0))