LEFT 函数和 RIGHT 函数
LEFT 函数用于从字符串的起始位置返回指定数量的字符,函数语法如下:
LEFT(text,[num_chars])
第一参数 text 是需要从中提取字符的字符串。第二参数 [num_chars] 是可选参数,指定要提取的字符数。如果省略该参数,则默认提取最左侧的一个字符。
以下公式返回字符串“Excel 之家 ExcelHome”左侧的 7 个字符,结果为“Excel 之家”:
=LEFT("Excel 之家 ExcelHome",7)
以下公式返回字符串“A-6633 型”最左侧 1 个字符,结果为“A”。
=LEFT("A-6633 型 ")
RIGHT 函数用于从字符串的末尾位置返回指定数字的字符。函数语法与 LEFT 函数相同,如果省略第二参数,默认提取最右侧的一个字符。
以下公式返回字符串“Excel 之家 ExcelHome”右侧 9 个字符,结果为“ExcelHome”。
=RIGHT("Excel 之家 ExcelHome",9)
以下公式返回字符串“型号 6633-A”右侧 1 个字符,结果为字母“A”。
=RIGHT(" 型号 6633-A")
示例1-1 提取物料名称中的管材长度
图 1-1 所示,是某工程安装队管材使用记录表的部分内容,C 列是由物料名称及规格型号组成的混合内容,需要提取出其中的最后一组数字,也就是管材的长度信息。
图 1-1 提取字符串中的管材长度
在 E2 单元格输入以下公式,将公式向下复制到数据区域最后一行。
=-LOOKUP(1,-RIGHT(C2,ROW($1:$9)))
本例中所有管材长度均在单元格的最右侧,但是物料名称中除了数字还包含有英文字符。因此无法直接使用计算字符数和字节数的技巧来提取。
公式先使用 ROW($1:$9) 得到 1~9 的序号,以此作为 RIGHT 函数的第二参数。
RIGHT 函数从 C2 单元格的最右侧开始,分别截取长度为 1~9 个字符的字符串,得到内存数组结果为:
{"0";"20";"620";"*620";"0*620";".0*620"……}
再加上一个负号,将内存数组中的文本型数字转换为数值,文本字符串部分则转换为错误值:
{0;-20;-620;#VALUE!;#VALUE!;#VALUE!;……}
最后使用 LOOKUP 函数,以 1 作为查找值,在内存数组中忽略错误值返回最后一个数值。最后加上负号将负数转化为正数,得到右侧的连续数字。
如果将公式中的RIGHT 函数换成 LEFT 函数,则可提取字符串左侧的连续数字。