我有这个样本矩阵,其中行指的是不同的物种,而列指的是不同的观察位置。细胞用1或0填充,这取决于是否在该特定位置观察到物种(即:在位置#1和#2中观察到物种B)
1 2 3
a 1 1 0
b 1 1 0
c 1 0 0
d 0 0 1
我必须计算每个物种的发生。物种的出现定义为:"观察到某些物种的其他物种的数量除以其他物种的总数" (即:物种A已在位置#1中观察到物种B和C,在位置#2观察到物种B,因此出现3种物种中的2种物种(B和C中的{B,C,D}或0.667) 。 1的出现意味着物种X已经与所有其他物种一起被发现,而0的出现意味着物种X总是被发现。
结果如下:
物种的出现 一个0.67 b 0.67 c 0.67 d 0.00
我能够生成一个包含与物种一样多的行和列的辅助矩阵,并且如果它确实发生,则使用SUMPRODUCT检查每个交互。然后总结所有列值并除以得到的结果。
我的问题是:" 可以在一个单元格中执行这样的公式吗?"
非常感谢。
答案 0 :(得分:1)
假设该表位于A1:D5
,E2
,数组公式** :
=MAX(0,SUM(N(MMULT(B$2:D$5,TRANSPOSE(B2:D2))>0))-1)/(COUNTA(A$2:A$5)-1)
根据需要复制。
此致
**数组公式的输入方式与'标准'相同。公式。您只需按住CTRL和SHIFT键,然后按ENTER键,而不是按ENTER键。如果您已正确完成,您会注意到Excel在公式周围放置了大括号{}(尽管不要尝试自己手动插入这些括号)。