乐于分享
好东西不私藏

Excel EFunction函数教程合辑二

Excel EFunction函数教程合辑二

ETResize

函数名: ETResize(对数组进行重构)

函数描述: 对输入的二维数组/区域进行重构,按指定的行数与列数重新组织数据,返回一个新的二维数组。该函数标记为 IsMacroType = true

函数参数1:dataRange — 需要进行重构的数组(区域引用或常量数组)

函数参数2:rows — 提取的行数(重构后数组的行数)

函数参数3:columns — 提取的列数(重构后数组的列数)

使用案例:

假设 A1:B2 区域内有如下数据:

A
B
1
2
3
4

需求:将 2 行 2 列的数据重构为 4 行 1 列。

=ETResize(A1:B2, 4, 1)

返回结果:

列1
1
2
3
4

参数说明:

  • dataRange
    :A1:B2,原始数据区域。
  • rows
    :4,重构后行数为 4。
  • columns
    :1,重构后列数为 1。

ETSimilarity2

函数名: ETSimilarity2(提取含有共同关键词的数据,隐藏函数)

函数描述: 在待处理文本与一个候选文本列表之间,基于"是否含有共同字符"进行相似度匹配。可选剔除某些公共文本后再比较,按相似度(共同字符长度占两文本长度和的比例)从高到低返回匹配到的候选文本。该函数为隐藏函数(IsHidden = true),函数向导中不可见。

函数参数1:dataRange — 需要处理的文本(待匹配文本)

函数参数2:similarList — 可能存在相同字符的列表(候选文本区域或单个文本)

函数参数3:removeData — 需要剔除的文本(在比较前从待处理文本与候选文本中剔除这些公共字符,可省略)

使用案例:

假设 A1 单元格为待匹配文本,B1:B4 为候选列表:

A(待匹配)
B(候选列表)
苹果手机壳
苹果耳机
手机壳
平板电脑
手机贴膜

需求:从 B 列中找出与 A1 含有共同字符的项。

=ETSimilarity2(A1, B1:B4)

返回结果(按相似度降序的一维数组):

列1
手机壳
苹果耳机
手机贴膜

参数说明:

  • dataRange
    :A1,待匹配文本"苹果手机壳"。
  • similarList
    :B1:B4,候选文本列表。
  • removeData
    :省略,不剔除任何字符。

ETConstantArray

函数名: ETConstantArray(将数据转化为常量数组字符串)

函数描述: 将输入的数据区域或单个值转化为 Excel 常量数组格式的字符串表示。文本以双引号包裹,数值原样输出,布尔值输出为 TRUE/FALSE,二维区域按行用分号分隔、同行用逗号分隔。

函数参数1:dataRange — 需要处理的数据区域(或单个值)

使用案例:

假设 A1:B2 区域内有如下数据:

A
B
姓名
张三
年龄
28

需求:将 A1:B2 转化为常量数组字符串,便于在公式中复用。

=ETConstantArray(A1:B2)

返回结果(文本):

{"姓名","张三";"年龄",28}

参数说明:

  • dataRange
    :A1:B2,需要转化为常量数组字符串的数据区域。

ETStrWordList

函数名: ETStrWordList(从字符之中提取出列表内的文本)

函数描述: 从待处理文本中提取(或剔除)列表内出现的字符/词。dataType 为 TRUE 或省略时,提取列表内的文本;为 FALSE 时,剔除列表内的文本。非字符数据会被跳过。

函数参数1:dataRange — 需要提取的文本

函数参数2:wordList — 提取的文本列表(如果是非字符数据,则会跳过)

函数参数3:dataType — 提取数据的方式:1. 缺省默认值为 TRUE,表示提取列表内的文本;2. FALSE 表示剔除列表内的文本

使用案例:

假设 A1 为待处理文本,B1:B3 为关键词列表:

A
B
苹果香蕉葡萄梨
苹果
葡萄

需求一:从 A1 中提取列表内出现的字符。

=ETStrWordList(A1, B1:B3, TRUE)

返回结果:苹果葡萄梨

需求二:从 A1 中剔除列表内出现的字符。

=ETStrWordList(A1, B1:B3, FALSE)

返回结果:香蕉

参数说明:

  • dataRange
    :A1,待处理文本"苹果香蕉葡萄梨"。
  • wordList
    :B1:B3,关键词列表。
  • dataType
    :TRUE 提取 / FALSE 剔除。

ETStrSameChar

函数名: ETStrSameChar(提取两者共同)

函数描述: 比较两段文本,提取两者共同的部分,或在文本1中保留不在文本2之中的部分。

函数参数1:dataRange1 — 需要处理的文本1

函数参数2:dataRange2 — 需要处理的文本2

函数参数3:dataType — 提取数据的方式:1. 默认 TRUE 保留共同的部分;2. FALSE 保留在文本1但不在文本2之中的部分

使用案例:

假设 A1、B1 为两段文本:

A(文本1)
B(文本2)
abcdefg
bcdxyz

需求一:提取两段文本中共同出现的字符。

=ETStrSameChar(A1, B1, TRUE)

返回结果:bcd

需求二:提取在文本1但不在文本2之中的字符。

=ETStrSameChar(A1, B1, FALSE)

返回结果:aefg

参数说明:

  • dataRange1
    :A1,文本1"abcdefg"。
  • dataRange2
    :B1,文本2"bcdxyz"。
  • dataType
    :TRUE 保留共同部分 / FALSE 保留文本1独有部分。

ETElementRemove

函数名: ETElementRemove(去除选区内特定的元素)

函数描述: 从选区(行或列)中剔除指定数据类型的元素,返回剩余元素组成的一维数组。

函数参数1:dataRange — 需要处理的选区行或者列

函数参数2:dataType — 需要剔除的数据类型:1、空格;2、错误型;3、字符型;4、数值型;5、布尔型。

使用案例:

假设 A1:A5 内有混合数据:

A
张三
100
#N/A
TRUE

需求:剔除空格与错误型数据(先剔除空格,再剔除错误型可分两次,单次只能指定一种类型)。此处演示剔除数值型。

=ETElementRemove(A1:A5, 4)

返回结果:

列1
张三
(空)
#N/A
TRUE

参数说明:

  • dataRange
    :A1:A5,需要处理的列区域。
  • dataType
    :4,表示剔除数值型元素(100 被剔除)。

ETElementKeep

函数名: ETElementKeep(保留选区内特定的元素)

函数描述: 从选区(行或列)中保留指定数据类型的元素,剔除其他类型元素,返回一维数组。与 ETElementRemove 互为反操作。

函数参数1:dataRange — 需要处理的选区行或者列

函数参数2:dataType — 需要保留的数据类型:1、空格;2、错误型;3、字符型;4、数值型;5、布尔型。

使用案例:

假设 A1:A5 内有混合数据:

A
张三
100
#N/A
TRUE

需求:只保留数值型元素。

=ETElementKeep(A1:A5, 4)

返回结果:

列1
100

参数说明:

  • dataRange
    :A1:A5,需要处理的列区域。
  • dataType
    :4,表示只保留数值型元素。

ETResetRange

函数名: ETResetRange(对选区内的元素进行重定向)

函数描述: 将一维区域的数据按"行优先"或"列优先"重新填充为指定行列数的二维区域。行优先时按行依次填充,rowOrColumn 表示列数;列优先时按列依次填充,rowOrColumn 表示行数。

函数参数1:dataRange — 需要处理的选区,一维区域

函数参数2:direct — 行优先或者列优先:1. TRUE 行优先(数据逐行填充);2. FALSE 列优先(数据逐列填充)

函数参数3:rowOrColumn — 行数或者列数:行优先时,代表有 N 列;列优先时代表有 N 行

使用案例:

假设 A1:A4 内有数据 1、2、3、4。

需求:按行优先重定向为 2 列的二维区域。

=ETResetRange(A1:A4, TRUE, 2)

返回结果(2 行 2 列):

列1
列2
1
2
3
4

需求二:按列优先重定向为 2 行的二维区域。

=ETResetRange(A1:A4, FALSE, 2)

返回结果(2 行 2 列):

列1
列2
1
3
2
4

参数说明:

  • dataRange
    :A1:A4,一维数据区域。
  • direct
    :TRUE 行优先 / FALSE 列优先。
  • rowOrColumn
    :行优先时为列数,列优先时为行数。

ETKeyWordMatch

函数名: ETKeyWordMatch(通过关键词匹配,支持 * 和 ? 通配符)

函数描述: 在关键词匹配区域的首列中查找与待匹配文本相符的项(支持 * 和 ? 通配符),并返回指定列的数据。

函数参数1:strRange — 需要匹配的文本,为文本类型数据

函数参数2:keyWordRange — 关键词匹配区域,首列为匹配的区域

函数参数3:column — 匹配的列数,缺失的情况下为所有的列

使用案例:

假设 A1:C4 区域为关键词匹配表:

A(关键词)
B(名称)
C(价格)
苹果*
红富士
5.5
香蕉?
香蕉1号
3.2
*梨
雪梨
8.0

需求:匹配关键词"苹果X",并返回名称列(第 2 列)。

=ETKeyWordMatch("苹果X", A1:C4, 2)

返回结果:红富士

参数说明:

  • strRange
    "苹果X",待匹配文本。
  • keyWordRange
    :A1:C4,关键词匹配区域,首列为关键词。
  • column
    :2,返回匹配行的第 2 列数据。

ETOneDimension

函数名: ETOneDimension(将选区内的数据转化为一维数组)

函数描述: 将二维区域内的数据转化为一维数组,自动忽略空格数据。支持行优先或列优先读取。

函数参数1:dataRange — 需要转化的区域,忽略空格数据

函数参数2:diretion — 数据读取的方式,默认 TRUE 为行优先,FALSE 为列优先

使用案例:

假设 A1:B2 内有数据(含空格):

A
B
1
3
4

需求:按行优先转化为一维数组。

=ETOneDimension(A1:B2, TRUE)

返回结果(行向量):

列1
列2
列3
1
3
4

参数说明:

  • dataRange
    :A1:B2,待转化区域。
  • diretion
    :TRUE 行优先(空格被忽略)。