类似 ARRAYFORMULA 函数实现数组输出的效果。

LAMBDA

LAMBDA 是一个自定义函数,允许将一个完整的公式封装成函数重复使用。

语法

LAMBDA(变量, 公式)

例子1

将 A1 的值乘以 20。

简单的写法是 =A1 * 20,不过下面会演示 LAMBDA 函数计算的原理。

=LAMBDA(x, x * 20)(A1)

第一个参数是变量,x 是自定义的变量,A1 是引用的内容。A1 的值会被赋值到 x 变量,x 的结果同等于 A1。

第二个参数是公式,将 x 变量乘以 20,同等于 A1 * 20。最后输出的结果是 200。

例子2

计算两个数的平均值。

=LAMBDA(x, y, (x + y) / 2)(A1, B1)

LAMBDA 函数支持同时设置多个变量,并且按照顺序赋值。因为需要计算两个数的平均值,所以就设置两个变量对应不同的值,这里用的是 x 和 y。A1 的值赋值到 x 变量,B1 的值赋值到 y 变量。

同等于 (A1 + B1) / 2,最后输出的结果是 56。

MAP

MAP 函数必需搭配 LAMBDA 一起使用,MAP 函数会将引用范围的每一个值应用到 LAMBDA 函数中。

语法

MAP(范围, LAMBDA)

例子

计算 A1 到 A5 范围所有内容乘以 20 的结果。

MAP 函数会将 A1 到 A5 的每一个内容,循环应用到 LAMBDA 函数中,再由 LAMBDA 函数的自定义公式计算输出结果。

最后会以数组的形式输出结果。

组合使用

MAP 和 LAMBDA 组合使用的效果和 ARRAYFORMULA 函数很像,但是有的函数不支持 ARRAYFORMULA 函数数组输出,但是可以使用 MAP 和 LAMBDA 组合,例如:SUMIF、SUMIFS、GOOGLETRANSLATE 等等...

下面以 GOOGLETRANSLATE 函数为例子,将 GOOGLETRANSLATE 作为 LAMBDA 的公式,配合 MAP 函数,将 A1 到 A4 循环应用到 LAMBDA 中翻译,最后以数组的格式输出。

相关推荐:
Google Excel 性能优化 - 数组输出
Google Excel IMPORTRANGE 数组输出