You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel 365是否有现成公式实现多一维区域相乘返回一维数组?

Excel 365 多一维区域逐元素相乘的现成实现方案

Excel 365支持直接对一维区域执行逐元素乘法,返回溢出数组结果。例如:

#ABC
1101
2011

在A3单元格输入公式:=A1:C1 * A2:C2,会计算数组{1,0,1} * {0,1,1},返回结果数组{0,0,1}并自动溢出填充到A3:C3区域:

#ABC
3001

这类逐元素乘法常配合FILTER()、SUMPRODUCT()等函数使用。针对你提出的是否有现成公式接收任意数量一维区域,逐元素相乘后返回一维数组的问题:

目前Excel 365没有专门的单一名词内置函数直接实现该需求,但可以通过组合现有内置函数完成,无需编写自定义LAMBDA函数,具体方案如下:

实现公式

使用REDUCE结合VSTACK(或HSTACK,根据区域方向选择):

=REDUCE(1, VSTACK(区域1, 区域2, 区域3, ...), LAMBDA(acc, curr, acc * curr))

参数说明

  • REDUCE:负责迭代处理每个输入的一维区域,初始值设为1(乘法单位元,不影响最终结果)
  • VSTACK:将多个横向一维区域堆叠为二维数组,每个原区域作为一行;如果是纵向区域,改用HSTACK将其组合为二维数组
  • 迭代逻辑acc * curr:每次将累积结果与当前一维区域执行逐元素乘法,最终返回所有区域逐元素相乘后的一维数组,自动溢出到对应单元格区域

示例

假设需要计算A1:C1、A2:C2、A4:C4三个区域的逐元素乘积,公式为:

=REDUCE(1, VSTACK(A1:C1, A2:C2, A4:C4), LAMBDA(acc, curr, acc * curr))

执行后会返回三个区域对应位置元素相乘的一维数组,自动溢出填充到目标区域。

补充说明

  • SUMPRODUCT()和MMULT()确实仅返回单个聚合值,无法直接返回一维数组结果
  • 上述方案使用的均为Excel 365内置函数,不属于自定义LAMBDA范畴,满足"现成公式"的需求

内容的提问来源于stack exchange,提问作者Yuri Ammosov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 21:25:38