找回密码
 立即注册

QQ登录

只需一步,快速开始

Lynn.Dou 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-9 16:06  /   查看:994  /  回复:0
GcExcel V6.0中新增了 LAMBDA、文本、数组函数,具体如下:

1、LAMBDA 函数

概念:LAMBDA 函数使您能够使用Excel自己的公式语言来自定义函数,并可以通过名称来调用它。
语法:=LAMBDA([parameter1, parameter2, …,] calculation)
参数:
       parameter1... (可选) 传递给函数的一个值,如一个单元格引用、字符串或数字。最多可以输入253个参数
       calculation  (可选) 想执行的公式,并作为函数的结果返回。它必须是最后一个参数,并且必须返回一个结果。
示例:
      (1) 在单元格中直接使用LAMBDA 函数
  1. =LAMBDA(number, number + 1)(1) // 计算结果为2
复制代码
     (2) 将Lambda添加到名称管理器中,然后在一个单元格中使用。
  1. workbook.Names.Add("func", "LAMBDA(number, number + 1)")
  2. =func(1) // 计算结果为 2
复制代码

    (3)将华氏温度转换为摄氏温度
  1. workbook.Names.Add("ToCelsius", "LAMBDA(temp, (5/9) * (temp-32))")
  2. =TOCELSIUS(104) // 计算结果为 40
复制代码

    (4)求斜边
  1. workbook.Names.Add("Hypotenuse", "LAMBDA(a, b, SQRT((a^2+b^2)))")
  2. =Hypotenuse(3, 4) // 计算结果为 5
复制代码

    (5)计算字数
  1. workbook.Names.Add("CountWords", @"LAMBDA(text, LEN(TRIM(text)) - LEN(SUBSTITUTE(TRIM(text), "" "", """")) + 1)")
  2. =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表示不区分大小写
示例:
image.png19516905.png

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

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

3、数组函数

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


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


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


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


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

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


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


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


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


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


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



0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部