GcExcel V6.0中新增了 LAMBDA、文本、数组函数,具体如下:
1、LAMBDA 函数
概念:LAMBDA 函数使您能够使用Excel自己的公式语言来自定义函数,并可以通过名称来调用它。
语法:=LAMBDA([parameter1, parameter2, …,] 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,[instance_num], [match_mode], [match_end], [if_not_found])参数:
text:搜索的文本
delimiter:分隔符
instance_num:开始搜索的关键词序号,默认为1。为负数时表示从末尾搜索
match_mode:是否区分大小写。默认为0(区分大小写)。1表示不区分大小写
示例:
2.2 TEXTAFTER 函数
说明:返回在给定字符或字符串之后发生的文本
语法:=TEXTAFTER (text,delimiter,[instance_num], [match_mode], [match_end], [if_not_found])
参数:
text:搜索的文本
delimiter:分隔符
instance_num:开始搜索的关键词序号,默认为1。为负数时表示从末尾搜索
match_mode:是否区分大小写。默认为0(区分大小写)。1表示不区分大小写
示例:
2.3 TEXTSPLIT 函数
说明:使用列和行分隔符拆分文本字符串
语法:=TEXTSPLIT(text,col_delimiter,[row_delimiter],[ignore_empty], [match_mode], [pad_with])
参数:
text:要拆分的文本
col_delimiter:跨列溢出的分隔符
row_delimiter:跨行溢出的分隔符
ignore_empty:是否显示空字符。默认为true;为false时如果分割的两个分隔符相邻,则分割结果会有空字符存在
示例:
3、数组函数
3.1 VSTACK 函数
说明:将数组垂直堆叠到一个数组中
语法:=VSTACK(array1,[array2],...)
参数:
array1:要追加的数组
示例:
3.2 HSTACK 函数
说明:将数组水平堆叠到一个数组中
语法:=HSTACK(array1,[array2],...)
参数:
array1:要追加的数组
示例:
3.3 TOROW 函数
说明:以一行形式返回数组
语法:=TOROW(array, [ignore], [scan_by_column])
参数:
array:以行形式返回的数组
ignore:是否忽略某些类型的值。默认为0(保留所有值)
scan_by_column: 是否按列扫描数组。默认为按行
示例:
3.4 TOCOL 函数
说明:以一列形式返回数组
语法:=TOCOL(array, [ignore], [scan_by_column])
参数:
array:以列形式返回的数组
ignore:是否忽略某些类型的值。默认为0(保留所有值)
scan_by_column: 是否按列扫描数组。默认为按行
示例:
3.5 WRAPROWS 函数
说明:在指定数目的值后按行将行或列矢量换行
语法:=WRAPROWS(vector,wrap_count,[pad_with])
参数:
vector:要操作的矢量或引用
wrap_count:每行的最大值数。
pad_with: 要填充的值。 默认值为 #N/A。
示例:
3.6 WRAPCOLS 函数
说明:在指定数目的值后按列将行或列矢量换行
语法:=WRAPCOLS(vector,wrap_count,[pad_with])
参数:
vector:要操作的矢量或引用
wrap_count:每列的最大值数。
pad_with: 要填充的值。 默认值为 #N/A。
示例:
3.7 TAKE 函数
说明:从数组开头或结尾获取行或列,返回新数组
语法:=TAKE(array, rows,[columns])
参数:
array: 要从中获取行或列的数组。
rows:要获取的行数。 为负值时表示自数组末尾获取。
columns: 要获取的列数。为负值时表示自数组末尾获取。
示例:
3.8 DROP 函数
说明:从数组开头或结尾删除行或列,返回新数组
语法:=DROP(array, rows,[columns])
参数:
array: 要从中删除行或列的数组。
rows:要删除的行数。 为负值时表示自数组末尾获取。
columns: 要删除的列数。为负值时表示自数组末尾获取。
示例:
3.9 CHOOSEROWS 函数
说明:返回数组中的指定行
语法:=CHOOSEROWS(array,row_num1,[row_num2],...)
参数:
array: 要返回的行的数组。
row_num1:要返回的第一行号
row_num2: 要返回的其他行号
示例:
3.10 CHOOSECOLS 函数
说明:返回数组中的指定列
语法:=CHOOSECOLS(array,col_num1,[col_num2],…)
参数:
array: 要返回的行的数组。
col_num2:要返回的第一列号
col_num2: 要返回的其他列号
示例:
3.11 EXPAND 函数
说明:将数组扩展到指定维度
语法:=Expand(array, rows, [columns], [pad_with])
参数:
array: 要扩展的数组。
rows:扩展数组中的行数
columns: 展开数组中的列数
pad_with:要填充的值。 默认值为 #N/A。
示例:
|
|