Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 平均值的最大值_Excel_Excel Formula - Fatal编程技术网

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})
    将根据我们找到的最高平均值找到相应的公司
  • 支持屏幕截图:

    ctrl+shift+enter

    你总是只有三列吗?香蕉当然有最高的…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))