一个单元格中的几个矩阵运算

时间:2016-11-22 12:51:36

标签: excel array-formulas

我有这个样本矩阵,其中行指的是不同的物种,而列指的是不同的观察位置。细胞用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检查每个交互。然后总结所有列值并除以得到的结果。

我的问题是:" 可以在一个单元格中执行这样的公式吗?"

非常感谢。

1 个答案:

答案 0 :(得分:1)

假设该表位于A1:D5E2数组公式**

=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在公式周围放置了大括号{}(尽管不要尝试自己手动插入这些括号)。