反馈已提交

网络繁忙

数组函数概述

  • 文档创建者:lu123
  • 历史版本:30
  • 最近更新:Tracy.Wang 于 2024-12-16
  • 视频教程

    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]。

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

    注2:若 array, insertArray, 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. WRITEARRAY

    WRITEARRAY(array):返回数组 array 的所有元素。

    注:适用于针对扩展单元格使用函数的情景。如对扩展单元格进行了删除行的操作后,WRITEARRAY 可过滤掉被删除的单元格,使针对该扩展单元格的计算所见即所得。

    示例:

    len(WRITEARRAY(B1)) 返回扩展单元格 B1 的长度。

    15. 注意事项

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

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

    附件列表


    主题: 报表专题
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持