Excel - 计算由另一个工作表定义的单元格的平均值

问题描述:

我需要计算属于某个昆虫物种的某些特定宿主属性的平均值。我的昆虫这里只是所谓的物种像图说明书1.列mean_trait_of_hosts应计算host_species的平均特征值1到5Excel - 计算由另一个工作表定义的单元格的平均值

工作表Sheet1 Sheet1

宿主物种所示组织进行组织像图中所示板2和位于一张单独的表,同一文件。 所以我认为我需要的是一个函数,它查找表1中相应行的列B:F中的宿主物种,然后使用sheet2的值计算这些物种的平均值。不幸的是我不知道如何在Excel中做到这一点。

Sheet2中

Sheet2

任何想法?

使用此阵列式:

=AVERAGE(IF(B2:F2<>"",LOOKUP($B2:$F2,Sheet2!$A$2:INDEX(Sheet2!A:A,MATCH("ZZZ",Sheet2!A:A)),Sheet2!$B$2:INDEX(Sheet2!B:B,MATCH("ZZZ",Sheet2!A:A))))) 

作为一个阵列式,它必须与确认Ctrl键移输入,而不是退出编辑模式时输入。如果正确完成,Excel将在公式周围放置{}

注意事项:

  1. 在Sheet2上的名单必须在A列
  2. 人354如果查找不在该列表会按字母顺序返回前一个值上。

enter image description here


为应对第二个警告上面我们可以添加另一个IF测试它们是否在名单上做均值之前:

=IF(SUM(COUNTIFS(Sheet2!A:A,$B2:$F2,Sheet2!A:A,"<>"))<>SUMPRODUCT(--(LEN($B2:$F2)>0)),"Host(s) not in list",AVERAGE(IF(B2:F2<>"",LOOKUP($B2:$F2,Sheet2!$A$2:INDEX(Sheet2!A:A,MATCH("ZZZ",Sheet2!A:A)),Sheet2!$B$2:INDEX(Sheet2!B:B,MATCH("ZZZ",Sheet2!A:A)))))) 

这仍然是一个数组公式。作为一个数组公式,在退出编辑模式时必须使用Ctrl-shift-Enter而不是Enter来确认。如果正确完成,Excel将在公式周围放置{}

在Sheet2上的数据仍然必须在A列升序排列

enter image description here