跳转至

MAKEARRAY 函数

函数概述

MAKEARRAY 用于按指定的行数和列数生成一个数组,并通过你提供的 LAMBDA 规则,为数组中的每一个位置计算出对应的值。 它非常适合用来“造数据”、生成矩阵、制作序号表、构建自定义规则的二维结果区等。

你可以把它理解成:

先创建一个 rows × cols 的空矩阵 → 然后对每个单元格传入「行号、列号」→ 按规则算出该格的值。


基础语法

=MAKEARRAY(rows, cols, lambda)

参数说明

参数 必填 含义 典型写法
rows 要生成的行数 5A1ROWS(A1:A10)
cols 要生成的列数 3B1COLUMNS(A1:D1)
lambda 生成规则(每个位置怎么计算) LAMBDA(r,c, ...)

补充说明:

  • lambda 里通常写 LAMBDA(r,c, 计算公式)
  • rc 分别代表当前元素的行序号列序号(从 1 开始)

基础用法示范

1)生成全为固定值的数组

生成 4 行 3 列,全部填 1:

=MAKEARRAY(4,3,LAMBDA(r,c,1))

如果想全部填文本:

=MAKEARRAY(3,2,LAMBDA(r,c,"OK"))

2)生成行列序号表

每个位置显示“行-列”:

=MAKEARRAY(4,4,LAMBDA(r,c, r&"-"&c))

3)生成连续编号表

做一个 5×4 的连续编号(1 到 20),按行填充:

=MAKEARRAY(5,4,LAMBDA(r,c, (r-1)*4 + c))

如果按列填充(1 到 20),用列优先:

=MAKEARRAY(5,4,LAMBDA(r,c, (c-1)*5 + r))

4)生成乘法表矩阵

生成 9×9 乘法表:

=MAKEARRAY(9,9,LAMBDA(r,c, r*c))

5)用条件规则生成模式矩阵

棋盘格(1/0 交替):

=MAKEARRAY(6,6,LAMBDA(r,c, MOD(r+c,2)))

主对角线为 1,其余为 0(单位矩阵风格):

=MAKEARRAY(5,5,LAMBDA(r,c, IF(r=c,1,0)))

6)结合其他函数生成可读表头

做 3 行 4 列的表头样式:第 1 行是“Q1~Q4”,第 1 列是“部门1~部门3”,其余为空:

1
2
3
4
5
=MAKEARRAY(4,5,
LAMBDA(r,c,
IF(AND(r=1,c>1),"Q"&c-1,
IF(AND(c=1,r>1),"部门"&r-1,""))
))

总结

MAKEARRAY 的核心价值在于:用 LAMBDA 把“每个位置怎么填”公式化,从而快速生成任意规则的二维数组。

记住三点就够用:

  • rowscols 决定大小
  • LAMBDA(r,c, …) 决定内容
  • rc 是从 1 开始的行列索引,适合与 IFMOD、算术运算拼规则

如果你常做模板化报表、矩阵运算、练习题数据源构造,MAKEARRAY 会非常省时间。