在 Excel 公式中将二维矩阵的行(或列)求和到一维数组中

tob*_*and 2 excel excel-formula

有没有什么方法可以告诉 Excel 应该在二维矩阵中执行每行计算?例如,如果我定义了一个数组

{1,0,0;0,0,1;1,0,1}
Run Code Online (Sandbox Code Playgroud)

IE

1 0 0
0 0 1
1 0 1
Run Code Online (Sandbox Code Playgroud)

有没有一个公式可以让我对数组进行操作{1;1;2}

最终目标很可能是使用诸如or之类的表达式进一步转换数组,但重要的不是外部表达式是什么,而是根本发生了转换。{1;1;2}>=2MATCH(2,{1;1;2},0)

当然,在许多情况下,其中大部分可以外包给辅助列上的操作,但很多时候解决空间问题感觉像是一种不优雅的方法。

Axe*_*ter 5

MMULT会做你想做的事。

{=MMULT({1,0,0;0,0,1;1,0,1},{1;1;1})}
Run Code Online (Sandbox Code Playgroud)

用作数组公式 (CSE) 会产生{1;1;2}.

1,0,0       1       1*1+0*1+0*1  =  1
0,0,1   x   1   =   0*1+0*1+1*1  =  1
1,0,1       1       1*1+0*1+1*1  =  2
Run Code Online (Sandbox Code Playgroud)

MMULT被包装在其他将参数作为数组的函数中时,可能不需要按 Ctrl+Shift+Enter。例如

=MATCH(2,MMULT({1,0,0;0,0,1;1,0,1},{1;1;1}),0)
Run Code Online (Sandbox Code Playgroud)

3无需使用 Ctrl+Shift+Enter 输入公式即可得出结果。