如何实现指定数量空白单元格的内联数组函数CREATE_BLANK_ARR?
生成指定数量真正空白的内联数组方案
要实现符合要求的CREATE_BLANK_ARR函数,核心是生成真正的空白单元格数组(区别于空文本"",ISBLANK对空文本返回FALSE),且完全内联不依赖外部单元格。
实现代码
直接在LET公式中定义CREATE_BLANK_ARR为LAMBDA函数,使用MAKEARRAY生成空白数组:
=LET( n, 5, CREATE_BLANK_ARR, LAMBDA(x, MAKEARRAY(x, 1, LAMBDA(r, c, ))), VSTACK(CREATE_BLANK_ARR(n), "meaningful contents to follow") )
原理说明
MAKEARRAY(x, 1, LAMBDA(r, c, )):通过MAKEARRAY生成x行1列的数组,其中LAMBDA函数未返回任何值,每个数组元素对应真正的空白单元格,而非空文本。- 这种方式完全内联生成数组,不依赖任何外部单元格区域,彻底避免了像
TOCOL(A1:A5)那样的依赖漏洞。 - 后续执行
ARRAYFORMULA(ISBLANK(A1:A5))时,会对A1到A5的空白单元格返回全TRUE结果。
替代方案
如果不想用MAKEARRAY,也可以用SEQUENCE结合MAP实现:
=LET( n, 5, CREATE_BLANK_ARR, LAMBDA(x, MAP(SEQUENCE(x), LAMBDA(i, ))), VSTACK(CREATE_BLANK_ARR(n), "meaningful contents to follow") )
内容的提问来源于stack exchange,提问作者Argyll
相关产品推荐
相关产品推荐

