Excel - 计算另一个工作表

时间:2016-11-15 14:26:10

标签: excel mean

我需要计算属于某种昆虫物种的某些宿主物种特征的平均值。我的昆虫在这里被称为物种的组织如图1所示。列mean_trait_of_hosts应该计算host_species 1到5的平均特征值

Sheet 1中 Sheet1

宿主物种的组织如图2所示,并且位于单独的纸张中,相同的文件。 所以我认为我需要的是一个函数,它在工作表1中相应行的列B:F中查找主体种类,然后使用sheet2的值计算这些种类的平均值。不幸的是我不知道如何在Excel中执行此操作。

Sheet 2中

Sheet2

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

使用此数组公式:

=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会将{}放在公式周围。

警告:

  1. Sheet2上的列表必须按A列升序排序。
  2. 如果查找不在列表中,它将按字母顺序返回先前的值。
  3. 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