excel EFunction函数插件教程第四辑
- 2026-09-24 13:04:50
ETIDCard
函数名: ETIDCard(提取 18 位身份证信息)
函数描述: 从 18 位身份证号码中提取指定信息。要求身份证号长度为 18 位且前两位为合法省份代码,否则返回 #N/A。根据 dataType 返回省份、县区、出生年月或性别。
函数参数1:strRange — 身份证文本
函数参数2:dataType — 提取的信息类型:1. 省份;2. 县区;3. 出生年月;4. 性别
使用案例:
假设 A1 为身份证号:110105199003077234。
需求一:提取省份。
=ETIDCard(A1, 1)
返回结果:北京市
需求二:提取县区。
=ETIDCard(A1, 2)
返回结果:北京市朝阳区(依据 6 位地区代码查询)
需求三:提取出生年月。
=ETIDCard(A1, 3)
返回结果:19900307(8 位出生日期字符串)
需求四:提取性别。
=ETIDCard(A1, 4)
返回结果:M(第 17 位为 3,奇数为男 M,偶数为女 F)
参数说明:
strRange:A1,18 位身份证号。 dataType:1 省份 / 2 县区 / 3 出生年月 / 4 性别。
ETStrLen
函数名: ETStrLen(提取指定范围长度内的字符)
函数描述: 从选区中提取字符长度落在 [lowerLen, upperLen] 范围内的项。invert 默认 FALSE 表示取反(提取长度小于下限或大于上限的项),TRUE 表示提取限定范围之内的项。
函数参数1:strRange — 有数据的选区
函数参数2:lowerLen — 下限长度(默认 1)
函数参数3:upperLen — 上限长度(默认 32767)
函数参数4:invert — 默认 FALSE 表示取反,提取长度小于 lowerLen 或者大于 upperLen 的项;TRUE 表示提取限定范围之内
使用案例:
假设 A1:A5 内有文本:
需求:提取长度在 2 到 4 之间的项。
=ETStrLen(A1:A5, 2, 4, TRUE)
返回结果:
参数说明:
strRange:A1:A5,待筛选区域。 lowerLen:2,下限长度。 upperLen:4,上限长度。 invert:TRUE,提取范围内的项。
ETStrExtractSub
函数名: ETStrExtractSub(从字符串之中提取内容)
函数描述: 按指定类型从字符串中提取数字、汉字、英文或其组合。invert 默认 FALSE 表示提取对应字符,TRUE 表示取反(剔除对应字符)。
函数参数1:strRange — 需要提取的字符串
函数参数2:dataType — 提取类型:1. 提取数字;2. 提取汉字;3. 提取英文;4. 数字英文;5. 数字汉字;6. 英文汉字;7. 以上三者
函数参数3:invert — 默认 FALSE 表示提取对应的字符;TRUE 表示取反
使用案例:
假设 A1 为文本:订单ORD2025金额¥199元。
需求一:提取所有数字。
=ETStrExtractSub(A1, 1, FALSE)
返回结果:2025199
需求二:提取所有汉字。
=ETStrExtractSub(A1, 2, FALSE)
返回结果:金额元
需求三:提取所有英文。
=ETStrExtractSub(A1, 3, FALSE)
返回结果:ORD
需求四:剔除所有数字(取反)。
=ETStrExtractSub(A1, 1, TRUE)
返回结果:订单ORD金额¥元
参数说明:
strRange:A1,待提取字符串。 dataType:1 数字 / 2 汉字 / 3 英文 / 4-7 组合。 invert:FALSE 提取 / TRUE 取反。
ETMultiVlookUP
函数名: ETMultiVlookUP(进行数据多匹配)
函数描述: 类似 VLOOKUP 的多匹配查询函数。在匹配区域首列查找所有等于查找值的记录,并返回对应列的内容。duplicate 默认 TRUE 去除重复匹配结果,FALSE 保留所有匹配结果。
函数参数1:lookup_value — 需要匹配的数据区域(查找值)
函数参数2:table_array — 匹配的数据区域,首列为匹配列
函数参数3:col_index_nums — 匹配的列数(要返回的列号)
函数参数4:duplicate — 是否去除重复匹配结果,默认 TRUE 去除重复;FALSE 表示保留所有匹配结果
使用案例:
假设 A1:C5 区域为销售明细:
需求:查找所有"华东"地区的销售额(第 3 列),去重。
=ETMultiVlookUP("华东", A1:C5, 3, TRUE)
返回结果(去重后):
参数说明:
lookup_value: "华东",查找值。table_array:A1:C5,匹配区域。 col_index_nums:3,返回第 3 列。 duplicate:TRUE,去除重复结果。
ETRegular
函数名: ETRegular(将不规则数据转化为规则数据)
函数描述: 将不规则(二维表)数据转化为规则数据(一维明细表)。beforeColumn 指定前多少列为不变项(维度列),其后的列将被"展开"为明细行。
函数参数1:dataRange — 需要转化的区域
函数参数2:beforeColumn — 不变项列数(前 N 列作为维度列保留)
使用案例:
假设 A1:C2 区域为不规则交叉表(无标题行):
需求:将月份列展开为明细,前 1 列为不变项。
=ETRegular(A1:C2, 1)
返回结果:
参数说明:
dataRange:A1:C2,待转化区域。 beforeColumn:1,前 1 列(地区)为不变项。
ETRegular2
函数名: ETRegular2(将不规则数据转化为规则数据,首行为标题行)
函数描述: 与 ETRegular 类似,将不规则交叉表转化为规则明细表,但首行作为标题行处理,转化结果包含标题。beforeColumn 指定前多少列为不变项列(标题列)。
函数参数1:dataRange — 需要转化的区域
函数参数2:beforeColumn — 需要计算的金额(不变项列数)
使用案例:
假设 A1:C2 区域为交叉表,首行为标题:
需求:以首行为标题展开为明细,前 1 列为不变项。
=ETRegular2(A1:C2, 1)
返回结果:
参数说明:
dataRange:A1:C2,待转化区域。 beforeColumn:1,前 1 列(地区)为不变项。
ETErrorData
函数名: ETErrorData(获取错误的数据类型)
函数描述: 根据数字 1-8 返回对应的 Excel 错误值,便于在公式中生成特定错误类型进行测试或容错处理。超出 1-8 范围返回空字符串。
函数参数1:errorValue — 错误值对应的数字 1-8 之间
使用案例:
需求:返回 #DIV/0! 错误值。
=ETErrorData(2)
返回结果:#DIV/0!
错误值对照表:
参数说明:
errorValue:1-8,对应不同的 Excel 错误类型。
ETRandomList
函数名: ETRandomList(随机在列表内提取一个数字)
函数描述: 从给定列表区域中随机返回一个元素。列表可为单值、一维区域或二维区域(按列合并后视为一维列表),空值会被过滤。该函数为易失性函数,每次重算随机结果会变化。
函数参数1:dataRange — 需要随机提取数据的列表区域
使用案例:
假设 A1:A4 内有候选项:
需求:随机抽取一个姓名。
=ETRandomList(A1:A4)
返回结果(示例):王五(每次重算可能不同)
参数说明:
dataRange:A1:A4,候选列表区域。
ETSQL
函数名: ETSQL(执行工作簿SQL脚本)
函数描述: 对工作簿中的数据区域执行 SQL 查询脚本,返回查询结果。Title 控制是否在结果中显示标题字段名,dataRange 指定查询的数据源区域(省略时引用整张表),Conditions 为可变参数,用于传入额外的查询条件。
函数参数1:SQLStr — SQL 脚本
函数参数2:Title — 是否显示标题字段名称:默认 FALSE 不显示;TRUE 显示标题
函数参数3:dataRange — 引用数据的区域,缺失默认表示引用整张表
函数参数4:Conditions — 条件 N(可变参数,传入附加查询条件)
使用案例:
假设 A1:C5 区域为销售数据,首行为标题:
需求:查询销售额大于 1000 的记录,包含标题。
=ETSQL("SELECT * FROM [Sheet1$] WHERE 销售额 > 1000", TRUE, A1:C5)
返回结果:
参数说明:
SQLStr: "SELECT * FROM [Sheet1$] WHERE 销售额 > 1000",SQL 查询语句。Title:TRUE,结果显示标题行。 dataRange:A1:C5,查询数据源区域。 Conditions:可变参数,此处未使用。