历史版本24 :数组函数概述 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

视频教程编辑

[helpvideo]5476[/helpvideo]

1. ADD2ARRAY编辑

ADD2ARRAY(array, insertArray, start):在数组 array 的第 start 个位置插入 insertArray 中的所有元素,再返回该数组。

示例:

ADD2ARRAY([3, 4, 1, 5, 7], [23, 43, 22], 3)返回[3, 4, 23, 43, 22, 1, 5, 7]。

ADD2ARRAY([3, 4, 1, 5, 7], "测试", 3)返回[3, 4, "测试", 1, 5, 7]。

注:如果 start 为小于 1 的数或者不写 start 参数,则默认从数组的第一位开始插入数组元素。

2. ARRAY-返回数组编辑

1)概述

语法ARRAY(arg1,arg2...)返回一个由 arg1,arg2,...组成的数组. [arg1,arg2,...]可以由字符串或者数字构成。
参数number1,number2,…1 到 n 个参数或指定单元格区域中所有数字

2)注意事项

当使用公式嵌套数组单元格时,如果数组单元格内实际是单值,会作为单值处理,需要嵌套 ARRAY 公式确保单元格始终作为数组计算(多值则不需要),比如 B2=ARRAY(1), 使用 INARRAY 函数应该写成:INARRAY(1,ARRAY(B2)),如下图所示:

如果写成 INARRAY(1,B2),则无法返回有效数据,如下图所示:


3)示例

公式
结果备注
ARRAY("hello")hello-
ARRAY("hello","world")hello,world

-

ARRAY("hello",98)hello,98-
ARRAY(67,98)67,98-

3. GREPARRAY编辑

GREPARRAY(array,fn):通过 fn 条件过滤 array 数组,返回过滤后的新数组。

参数
含义参数格式
array
被过滤的数组,不可为空数组格式,如[4,2,6,8,7]
fn

过滤条件

item/index 加运算条件 ,如 item != 3

item 格式:根据数组值进行过滤,index 格式:根据数组值的序号进行过滤

示例:

GREPARRAY([3,4,2,3,6,8,7], item != 3) 返回 [4,2,6,8,7] 。

GREPARRAY([3,4,2,3,6,8,7], index!= 3) 返回 [3,4,3,6,8,7] 。

注:fn 参数必须符合格式要求,否则过滤不生效。比如名称没有定义成 item/index,返回值为原数组。

4. INARRAY编辑

INARRAY(co, array):返回 元素co 在数组 array 中第一次出现的位置,如果 co 不在 array 中,则返回 0。

示例:

如果String[] arr = {"a","b","b","c","d"} ,则:

INARRAY("b", arr)返回元素"b"第一次出现的位置  2。

INARRAY("e", arr)返回 0

5. INDEXOFARRAY编辑

INDEXOFARRAY(array, index):返回数组 array 的第 index 个元素。

array:需要返回元素的数组。

index:数组元素的下标。

示例:

INDEXOFARRAY(["第一个", "第二个", "第三个"], 2)返回"第二个"。

在单元格中输入=indexofarray(["a","b","c","d"],3),获取数组中第三个位置的数据即返回值为 c。

6. MAPARRAY编辑

MAPARRAY(array, fn):批量处理数组,通过fn对数组中的元素进行转换。 

array:要转换的数组;

fn:处理数组项目的函数 。

示例:

MAPARRAY([3,4,2,3,6,8,7], item != 3)返回[false,true,true,false,true,true,true]。

MAPARRAY([3,4,2,-3,6,8,-5],if(item>0,1,0)),返回[1,1,1,0,1,1,0]。

7. RANGE编辑

1)概述

语法
RANGE()

函数有三种参数形式:

1. RANGE(to),默认的from为1,step为1,例如:RANGE(4)返回[1,2,3,4]。RANGE(-5)返回[]。

2. RANGE(from,to),默认的step为1,例如:RANGE(-1,3)返回[-1,0,1,2,3]。RANGE(0,5)返回[0,1,      2,3,4,5]。

3. RANGE(from,to,step),三个参数的情况参照上面的注释,例如:RANGE(6,-1,-2)返回[6,4,2,          0]。RANGE(4,1,1)返回[]。

参数1From

开始值,整数,不写默认为1

参数2To结束值,整数
参数3Step步长,不写默认为1
返回值Array-

2)示例

公式
结果备注
RANGE(4)1,2,3,4从1开始,每次+1,直到4
RANGE(-5)返回空值
从1开始,每次+1,无法到-5,因此返回空值
RANGE(-1,3)-1,0,1,2,3从-1开始,每次+1,直到3
RANGE(6,-1,-2)6,4,2,0从6开始,每次-2,直到-1
RANGE(4,1,1)返回空值从4开始,每次+1,无法到1,因此返回空值
RANGE(1,6,2)1,3,5从1开始,每次+2,直到6

8. REMOVEARRAY编辑

REMOVEARRAY(array, start, deleteCount):从数组 array 中删除从第 start 个元素开始的 deleteCount 个数组元素,并返回删除后的数组。

示例:

REMOVEARRAY([3, 4, 4, 2, 6, 7, 87], 4, 2)返回[3, 4, 4, 7, 87]。

9. REVERSEARRAY编辑

REVERSEARRAY(array):返回数组 array 的倒序数组。

示例:

REVERSEARRAY(["第一个", "第二个", "第三个"])返回["第三个", "第二个", "第一个"]

注:使用 REVERSEARRAY 函数时,参数必须是数组,如果参数不是数组,必须使用 SPLIT 函数将其转换为数组,SPLIT 函数使用参见 SPLIT

10. SLICEARRAY编辑

SLICEARRAY(array, start, end):返回数组从第 start 个到第 end 个元素(包括第 end 个元素)。

示例:

SLICEARRAY([3, 4, 4, 5, 1, 5, 7], 3, 6)返回[4, 5, 1, 5]。 

SLICEARRAY([3, 4, 4, 5, 1, 5, 7], 3)返回[4, 5, 1, 5, 7]。

注:当不使用 end 参数时,返回从 start 开始到数组结束之间的元素。

11. SORTARRAY编辑

SORTARRAY(array):返回数组 array 排过序的数组 ,默认升序排列。

示例:

SORTARRAY([3, 4, 4, 5, 1, 5, 7])返回[1, 3, 4, 4, 5, 5, 7]。

注:数组 array 的元素类型必须一样,并且要可比较。

12. UNIQUEARRAY编辑

UNIQUEARRAY(array):去重,去掉数组 array 中的重复元素,以保留第一次出现的元素为序,返回去重之后的数组。

示例:

UNIQUEARRAY([14, 2, 3, 4, 3, 2, 5, 6, 2, 7, 9, 12, 3])返回[14, 2, 3, 4, 5, 6, 7, 9, 12]。

13. JOINARRAY编辑

JOINARRAY(array,sepa):返回一个由sepa作为分隔符的字符串。

array:[arg1,arg2...]格式的数组;

sepa:分隔符。

示例:

JOINARRAY([1,2],";")=1;2

JOINARRAY(['hello','world'],"-")=hello-world

注:对数组单元格使用该函数时,无需加上[],写成joinarray(A1,"-")即可。若写成joinarray([A1],"-"),函数不生效。

       因为A1单元格本身就是数组,[A1]是二维数组,对二维数组做join, 并不会去用符号join内层数组。

14. 注意事项编辑

若数组在使用模拟计算时,参数需要写成[1,2,3,4,5]格式。

例如输入公式:INDEXOFARRAY(A2, 2),希望返回数组的第二个数字,则点击模拟计算后需要输入的参数格式为:[1,2,3,4,5],此时得出的模拟计算结果为2,如下图所示: