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

如何在Excel 365中用单个数组函数生成自适应维度的行列矩阵?

Excel 365 动态生成行列求和矩阵的解决方案

核心需求

实现行列值求和矩阵的动态适配:行/列序列维度变化时,矩阵自动扩展/收缩,无需手动复制公式。


方案1:利用数组广播特性(最简写法)

假设:

  • 行值序列:存放于任意列(如A列),用TOCOL(列区域,1)提取非空值实现动态获取
  • 列值序列:存放于任意行(如第1行),用TOROW(行区域,1)提取非空值实现动态获取

公式示例:

=TOCOL(A:A,1) + TRANSPOSE(TOROW(B1:Z1,1))

原理:

  • TOCOL(A:A,1):自动提取A列所有非空单元格,生成一维行值数组
  • TOROW(B1:Z1,1):自动提取第1行B到Z列的非空单元格,生成一维列值数组
  • TRANSPOSE将列值数组转置为行方向,与行值数组相加时,Excel会自动广播运算,生成完整的求和矩阵

方案2:使用MAKEARRAY函数(适配你的尝试思路)

如果坚持用MAKEARRAY,可以通过INDEX在lambda中定位行/列数组的对应元素:

公式示例:

=MAKEARRAY(ROWS(TOCOL(A:A,1)), COLUMNS(TOROW(B1:Z1,1)), LAMBDA(r,c, INDEX(TOCOL(A:A,1), r) + INDEX(TOROW(B1:Z1,1), c)))

原理:

  • ROWS(TOCOL(A:A,1)):动态获取行值序列的长度,作为矩阵的行数
  • COLUMNS(TOROW(B1:Z1,1)):动态获取列值序列的长度,作为矩阵的列数
  • lambda函数中的r和c分别代表当前迭代的行号和列号,通过INDEX提取对应位置的行值和列值,相加后生成矩阵元素

注意事项

  • 若行/列序列是固定区域(而非整列/整行),可直接替换TOCOL(A:A,1)为具体区域(如A2:A10),同样支持动态变化
  • 确保Excel 365已开启动态数组功能(默认已开启)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 13:31:04