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

Several matrix operations in one single cell

我有这个样本矩阵,其中行指的是不同的物种,列指的是不同的观察位置。单元格用 1 或 0 填充,具体取决于是否在该特定位置观察到物种(即:在位置 #1 和 #2 观察到物种 B)

        1       2       3
a       1       1       0
b       1       1       0
c       1       0       0
d       0       0       1

我必须计算每个物种的出现。物种的出现定义为:"the number of other species in which a certain species has been observed divided by the total number of other species"(即:物种 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 检查每个交互是否发生。然后将所有列的值相加除以得到出现的次数。

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

非常感谢。

假设table在A1:D5,在E2,数组公式**:

=MAX(0,SUM(N(MMULT(B:D,TRANSPOSE(B2:D2))>0))-1)/(COUNTA(A:A)-1)

按要求抄下。

此致

**数组公式的输入方式与 'standard' 公式不同。您不是只按 ENTER,而是先按住 CTRL 和 SHIFT,然后再按 ENTER。如果操作正确,您会注意到 Excel 在公式周围放置了大括号 {}(但不要尝试自己手动插入)。