excel函数使用方法-mid()和find()

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gsl371/article/details/88011162

函数释义

mid()函数语法

在 Excel 中,提取指定长度的字符有两个函数,分别为Mid函数和Midb函数,前者用于提取指定长度的字符个数,后者用于提取指定长度的字节个数。用Mid函数提取时,无论是汉字、字母还是数字都算一个字符;用Midb函数提取时,汉字算两个字节,数字和字母算一个字节。一般情况下,它们从左向右提取;但也可以反向提取,即从右向左提取。

1、返回字符个数的表达式:MID(Text, Start_Num, Num_Chars)

中文表达示:MID(文本, 起始位置, 提取字符长度)

2、返回字节个数的表达式:MIDB(Text, Start_Num, Num_Bytes)

中文表达示:MIDB(文本, 起始位置, 提取字节长度)

3、说明:

A、start_num 为要提取字符的起始位置,它必须大于等于 1,否则会返回错误;如果 start_num 大于文本长度,将返回空;如果 start_num 小于文本长度加上 Num_Chars 大于文本长度,只返回到文本末尾的字符。

B、Num_Chars 为要提取字符的个数,它必须大于 0,否则会返回 #VALUE! 错误。

C、Num_Bytes 为提取字符的字节个数,它必须大于 0,否则也返回 #VALUE! 错误。

Find函数和FindB函数语法

在 Excel 中,查找指定字符在源字符串中的位置,既可以用 Find函数,也可以用 FindB函数,它们都有三个参数,所不同的是,前者把汉字、字母和数字都算一个字符,后者把汉字算两个字节,数字和字母算一个字节。

(一)Find函数

表达式:FIND(Find_Text, Within_Text, [Start_Num])

中文表达式:FIND(查找文本, 源文本, [查找开始位置])

(二)FindB函数

表达式:FINDB(Find_Text, Within_Text, [Start_Num])

中文表达式:FINDB(查找文本, 源文本, [查找开始位置])

(三)说明:

1、如果 Find_Text 为空(""),则返回 1;另外,Find_Text 不能包含任何通配符。

2、Start_Num 为可选项,如果省略,则默认从第一个字符开始查找。Start_Num 小于等于 0 与大于 Within_Text 长度,Find 和 FindB 都返回 #VALUE! 错误值。

3、Find 和 FindB 都区分大小写,也就是同一个字母的大写和小写算两个字母。Find 的 Start_Num 无论是汉字、字母还是数字都以一个字符算;而 FindB 的 Start_Num 汉字以两个字节算,字母和数字以一个字节算。

使用方法

在这里插入图片描述
将这四种文本的时间格式转换为小时,方便排序筛选
1天15时4分的公式为

=MID(A1,1,1)*24+MID(A1,FIND("天",A1)+1,FIND("时",A1)-FIND("天",A1)-1)+MID(A1,FIND("时",A1)+1,FIND("分",A1)-FIND("时",A1)-1)/60

19分的公式为

=MID(A5,1,FIND("分",A5)-1)/60

1天10分的公式为

=MID(A8,1,1)*24+MID(A8,FIND("天",A8)+1,FIND("分",A8)-FIND("天",A8)-1)/60

2时43分的公式为

=MID(A10,1,FIND("时",A10)-1)+MID(A10,FIND("时",A10)+1,FIND("分",A10)-FIND("时",A10)-1)/60

把四个公式和在一起可以这样写

=IF(AND(ISNUMBER(FIND("天",A1)),ISNUMBER(FIND("时",A1)),ISNUMBER(FIND("分",A1))),(MID(A1,1,1)*24+MID(A1,FIND("天",A1)+1,FIND("时",A1)-FIND("天",A1)-1)+MID(A1,FIND("时",A1)+1,FIND("分",A1)-FIND("时",A1)-1)/60),IF(AND(NOT(ISNUMBER(FIND("天",A1))),NOT(ISNUMBER(FIND("时",A1))),ISNUMBER(FIND("分",A1))),(MID(A1,1,FIND("分",A1)-1)/60),IF(AND(ISNUMBER(FIND("天",A1)),NOT(ISNUMBER(FIND("时",A1))),ISNUMBER(FIND("分",A1))),(MID(A1,1,1)*24+MID(A1,FIND("天",A1)+1,FIND("分",A1)-FIND("天",A1)-1)/60),IF(AND(NOT(ISNUMBER(FIND("天",A1))),ISNUMBER(FIND("时",A1)),ISNUMBER(FIND("分",A1))),(MID(A1,1,FIND("时",A1)-1)+MID(A1,FIND("时",A1)+1,FIND("分",A1)-FIND("时",A1)-1)/60),"错误"))))

心得

处理较复杂的excel公式,可以把复杂问题简单化,把问题首先进行分解,可以分成无法再进行分解的处理单元,然后对各个单元逐个处理,然后合并处理结果;尽量不要试图通过巧妙的方法,一次性给出解决方法,这样虽然公式很短,但很耗费时间。

猜你喜欢

转载自blog.csdn.net/gsl371/article/details/88011162