平均值的最大值优于

时间:2018-05-23 19:41:11

标签: excel excel-formula

大家好我有一张类似的表:

Company / Score 1/ Score 2/ Score 3
Apple   / 5  / 4 / 3
Banana  / 3  / 6 / 6
Kiwi    / 0  / 5 / 1

有没有办法在不使用帮助栏的情况下使用一个公式中的得分平均值从此列表中找到表现最佳的公司?因此,对于上面的示例,我的回归将是公司Banana-因为它在平均所有三列时给出了最高分。平均而言,我的意思是总和/计数,如果> 0对于KIWI,平均值为3而不是2.

2 个答案:

答案 0 :(得分:3)

假设您的分数是非负数并从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))

这将扩展到您需要的许多行/列。请记住,如果出现平局,它将返回第一个高分。此外,如果有可能获得全零,则应使用MAX将传递给IFERROR的数组包装(此公式需要作为数组公式输入(ctrl + { {1}} + shift):

enter

答案 1 :(得分:1)

通过将数组硬编码为3列,我们可以使用数组公式。

注意数组公式需要输入 ctrl + shift + 输入

这也假设列分别为A,B,C,D。

desired o/p

   t1         c1              c2
0  20        NaN        xyz;x1y1z1

轻微解释:

  1. =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)) =作为数组的行总和
  2. (B:B+C:C+D:D) =我们要在数组中求和的总数(3表示Apple,Banana,2表示Kiwi)。最大值是摆脱任何除以零错误
  3. MAX((IF(B:B>0,1,0)+IF(C:C>0,1,0)+IF(D:D>0,1,0)),1) =每行的平均值
  4. 然后我们可以{1}/{2}查看最高平均值
  5. Max({3})会根据我们找到的最高平均值找到相应的公司
  6. 支持截图:

    enter image description here CTRL + + 输入 enter image description here