left函数和right函数结合(LEFT函数和RIGHT函数分别营业开始时间和营业结束时间)
LEFT函数用于从字符串的起始位置返回指定数量的字符。函数语法如下:
LEFt(文本,[字符数])
第一个参数text是需要从中提取字符的字符串。第二个参数[num_chars]是可选参数,指定要提取的字符数。如果省略该参数,则默认提取最左边的字符。
以下公式返回字符串“ExcelHomeExcelHome”左侧的7个字符,结果为“ExcelHome”:
=LEFT('Excel主页ExcelHome',7)
以下公式返回字符串“A-6633type”最左边的1个字符,结果为“A”。
=LEFT('A-6633型')
RIGHT函数从字符串末尾返回指定数量的字符。函数语法与LEFT函数相同。如果省略第二个参数,则默认提取最右边的字符。
以下公式返回字符串“ExcelHomeExcelHome”右侧的9个字符,结果为“ExcelHome”。
=RIGHT('Excel主页ExcelHome',9)
以下公式返回字符串“Model6633-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函数,则可以提取字符串左侧的连续数字。