Lynn.Dou 发表于 2022-11-9 16:06:15

【GcExcel v6.0 新特性预览】公式函数增强:LAMBDA、文本、数组

GcExcel V6.0中新增了 LAMBDA、文本、数组函数,具体如下:

1、LAMBDA 函数

概念:LAMBDA 函数使您能够使用Excel自己的公式语言来自定义函数,并可以通过名称来调用它。
语法:=LAMBDA( calculation)
参数:
       parameter1... (可选) 传递给函数的一个值,如一个单元格引用、字符串或数字。最多可以输入253个参数
       calculation(可选) 想执行的公式,并作为函数的结果返回。它必须是最后一个参数,并且必须返回一个结果。
示例:
      (1) 在单元格中直接使用LAMBDA 函数
=LAMBDA(number, number + 1)(1) // 计算结果为2      (2) 将Lambda添加到名称管理器中,然后在一个单元格中使用。
workbook.Names.Add("func", "LAMBDA(number, number + 1)")
=func(1) // 计算结果为 2
    (3)将华氏温度转换为摄氏温度
workbook.Names.Add("ToCelsius", "LAMBDA(temp, (5/9) * (temp-32))")
=TOCELSIUS(104) // 计算结果为 40
    (4)求斜边
workbook.Names.Add("Hypotenuse", "LAMBDA(a, b, SQRT((a^2+b^2)))")
=Hypotenuse(3, 4) // 计算结果为 5
    (5)计算字数
workbook.Names.Add("CountWords", @"LAMBDA(text, LEN(TRIM(text)) - LEN(SUBSTITUTE(TRIM(text), "" "", """")) + 1)")
=CountWords("I came, I saw, I conquered.") // 计算结果为 6

2、文本函数

2.1   TEXTBEFORE 函数
说明:返回分隔字符之前的文本
语法:=TEXTBEFORE(text,delimiter,, , , )参数:
       text:搜索的文本
       delimiter:分隔符
       instance_num:开始搜索的关键词序号,默认为1。为负数时表示从末尾搜索
       match_mode:是否区分大小写。默认为0(区分大小写)。1表示不区分大小写
示例:


2.2   TEXTAFTER 函数
说明:返回在给定字符或字符串之后发生的文本
语法:=TEXTAFTER (text,delimiter,, , , )
参数:
       text:搜索的文本
       delimiter:分隔符
       instance_num:开始搜索的关键词序号,默认为1。为负数时表示从末尾搜索
       match_mode:是否区分大小写。默认为0(区分大小写)。1表示不区分大小写
示例:


2.3TEXTSPLIT 函数
说明:使用列和行分隔符拆分文本字符串
语法:=TEXTSPLIT(text,col_delimiter,,, , )
参数:
       text:要拆分的文本
       col_delimiter:跨列溢出的分隔符
       row_delimiter:跨行溢出的分隔符
       ignore_empty:是否显示空字符。默认为true;为false时如果分割的两个分隔符相邻,则分割结果会有空字符存在
示例:


3、数组函数

3.1VSTACK 函数
说明:将数组垂直堆叠到一个数组中
语法:=VSTACK(array1,,...)
参数:
       array1:要追加的数组
示例:



3.2HSTACK 函数
说明:将数组水平堆叠到一个数组中
语法:=HSTACK(array1,,...)
参数:
       array1:要追加的数组
示例:



3.3TOROW 函数
说明:以一行形式返回数组
语法:=TOROW(array, , )
参数:
       array:以行形式返回的数组
       ignore:是否忽略某些类型的值。默认为0(保留所有值)
       scan_by_column: 是否按列扫描数组。默认为按行
示例:



3.4TOCOL 函数
说明:以一列形式返回数组
语法:=TOCOL(array, , )
参数:
       array:以列形式返回的数组
       ignore:是否忽略某些类型的值。默认为0(保留所有值)
       scan_by_column: 是否按列扫描数组。默认为按行
示例:



3.5WRAPROWS 函数
说明:在指定数目的值后按行将行或列矢量换行
语法:=WRAPROWS(vector,wrap_count,)
参数:
       vector:要操作的矢量或引用
       wrap_count:每行的最大值数。
       pad_with: 要填充的值。 默认值为 #N/A。
示例:


3.6WRAPCOLS 函数
说明:在指定数目的值后按列将行或列矢量换行
语法:=WRAPCOLS(vector,wrap_count,)
参数:
       vector:要操作的矢量或引用
       wrap_count:每列的最大值数。
       pad_with: 要填充的值。 默认值为 #N/A。
示例:



3.7TAKE 函数
说明:从数组开头或结尾获取行或列,返回新数组
语法:=TAKE(array, rows,)
参数:
       array: 要从中获取行或列的数组。
       rows:要获取的行数。 为负值时表示自数组末尾获取。
       columns: 要获取的列数。为负值时表示自数组末尾获取。
示例:



3.8DROP 函数
说明:从数组开头或结尾删除行或列,返回新数组
语法:=DROP(array, rows,)
参数:
       array: 要从中删除行或列的数组。
       rows:要删除的行数。 为负值时表示自数组末尾获取。
       columns: 要删除的列数。为负值时表示自数组末尾获取。
示例:




3.9CHOOSEROWS 函数
说明:返回数组中的指定行
语法:=CHOOSEROWS(array,row_num1,,...)
参数:
       array: 要返回的行的数组。
       row_num1:要返回的第一行号
       row_num2: 要返回的其他行号
示例:



3.10CHOOSECOLS 函数
说明:返回数组中的指定列
语法:=CHOOSECOLS(array,col_num1,,…)
参数:
       array: 要返回的行的数组。
       col_num2:要返回的第一列号
       col_num2: 要返回的其他列号
示例:



3.11EXPAND 函数
说明:将数组扩展到指定维度
语法:=Expand(array, rows, , )
参数:
       array: 要扩展的数组。
       rows:扩展数组中的行数
       columns: 展开数组中的列数
       pad_with:要填充的值。 默认值为 #N/A。
示例:




页: [1]
查看完整版本: 【GcExcel v6.0 新特性预览】公式函数增强:LAMBDA、文本、数组