我需要计算属于某种昆虫物种的某些宿主物种特征的平均值。我的昆虫在这里被称为物种的组织如图1所示。列mean_trait_of_hosts应该计算host_species 1到5的平均特征值
宿主物种的组织如图2所示,并且位于单独的纸张中,相同的文件。 所以我认为我需要的是一个函数,它在工作表1中相应行的列B:F中查找主体种类,然后使用sheet2的值计算这些种类的平均值。不幸的是我不知道如何在Excel中执行此操作。
Sheet 2中
有什么想法吗?
答案 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会将{}
放在公式周围。
警告:
为了处理上面的第二个警告,我们可以添加另一个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列升序排序。