专栏名称: 完美Excel
Excel与VBA技术学习与实践
目录
相关文章推荐
Excel之家ExcelHome  ·  这个函数,是翻译小能手 ·  4 天前  
完美Excel  ·  UNIQUE函数的缺点 ·  1 周前  
完美Excel  ·  修复UNIQUE函数 ·  5 天前  
Excel之家ExcelHome  ·  XLOOKUP查数据,够强够快够简单 ·  1 周前  
51好读  ›  专栏  ›  完美Excel

数组语法自定义函数

完美Excel  · 公众号  · Excel  · 2024-10-26 06:29

正文

学习Excel技术,关注微信公众号:

excelperfect


标签:动态数组LAMBDA函数

数组语法是Excel中的一项强大功能。数组语法允许在公式中创建一个列表,使其自包含。键入数组语法很困难,因为需要使用引号、逗号或分号加大括号(花括号)的组合。

可以创建一个自定义函数,将现有列表转换为数组语法,可以选择创建基于行的列表(水平)或基于列的列表(垂直)。

可以使用粘贴值来捕获语法,然后将其复制并粘贴到公式中。在数组语法中,逗号分隔列,分号分隔行。

在下图1中,列A显示了一周中的7天。

1
在工作表单元格D5中,显示了将列表转换为水平列表(跨列)的数组语法的公式,如下图2所示。

2
变量q代表双引号。将所有文本合并在一起以创建数组语法。

单元格D6(下图3)中的公式是将列表转换为垂直列表(下行)的数组语法:

=LET(q,CHAR(34),"={"&q&TEXTJOIN(q&";"&q,1,A1:A7)&q&"}")

3
注意,公式中的TEXTJOIN函数里,引号之间的逗号已被分号替换。

在单元格D7中,LAMBDA函数将上面两个公式组合在一起:

=LAMBDA(rng,dir,LET(q,CHAR(34),d,SWITCH(dir,"r",",","c",";"),"={"&q&TEXTJOIN(q&d&q,1,rng)&q&"}"))(A1:A7,"c")

如下图4所示。

4
单元格区域A1:A7被传递给参数rng“c”被传递给参数dirSWITCH函数在行区域中使用逗号,在列区域中使用分号。

创建数组语法的自定义函数的区域名称定义如下图5所示。

5
在单元格D8中使用了自定义函数:

=fnARRAY(A1:A7,"r")

如下图6所示。

6
欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。
欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料,并通过社群加入专门的微信讨论群,更方便交流。

推荐文章
Excel之家ExcelHome  ·  这个函数,是翻译小能手
4 天前
完美Excel  ·  UNIQUE函数的缺点
1 周前
完美Excel  ·  修复UNIQUE函数
5 天前
Excel之家ExcelHome  ·  XLOOKUP查数据,够强够快够简单
1 周前
总裁营销兵法  ·  人靠不靠谱,就看这四个细节
7 年前