Excel(仅公式,无 VBA)使用 MMULT 或 SumProduct 的点积

问题描述 投票:0回答:1

基本约束:我不想“花费”单元格来执行此操作并使用“公式”而不是 VBA 来完成此操作。

问题:有没有办法使用 SUMPRODUCT 或 MMULT 函数来计算两个向量(数组)的点积。数组未填充在离散单元中。在某些情况下,它们将作为文字数字嵌入公式中,或者作为单元格的某些函数引用,以导出这些数组的组成部分。下面的伪代码充分描述了我想要做的事情。

=**SUMPRODUCT(** MakeArrayFrom(**1.0**, **3.0**, **4.0**) , MakeArrayFrom(**M42**, **X22+N42**, **5.0+B10**) **)**

MakeArrayFrom() 不是我希望编写的 VBA 函数,而是想要一组可以执行类似操作的“本机”函数。我并不是想编写一个函数。我只想使用“本机”Excel 函数的任意组合(不在乎它有多复杂或多长)来处理数组输入。

再次,我不希望在使用它们之前用这些数组的组件预先填充一些单元格。我想要一个解决方案,我可以在使用数组类型的公式中直接定义数组的内容。不想要 SUMPRODUCT(A1:C1,A3:C3) 其中必须预先进行“数组准备”步骤。

我尝试了多种方法来欺骗 Excel 系统,使其在 SUMPRODUCT 或 MMULT ( ) 函数的范围内获取数组的组成部分,但均无济于事。希望有人可以指导我和社区建立一个数组的“直接”方法(同样,不使用单独的单元格),将其输入到像 SumProduct 或 MMULT 这样的数组饥饿公式的口中。

arrays excel excel-formula array-formulas sumproduct
1个回答
0
投票

为了节俭:

=SUM({1,3,4}*TOROW((M45,X22+N42,5+B10)))
© www.soinside.com 2019 - 2024. All rights reserved.