excel中利用综合应用len(),lenb(),left() ,find()函数筛选汉字问题

点点圈 提交于 2019-12-23 10:46:36

函数功能及结构介绍:

1.LEN 返回文本串的字符数。
Len( text)   Len(string | varname)   
Len 函数的语法有下面这些部分:
string 任何有效的字符串表达式。如果 string 包含 Null,会返回 Null。
Varname 任何有效的变量名称。如果 varname 包含 Null,会返回 Null。如果 varname 是 Variant,Len 会视其为 String 并且总是返回其包含的字符数。
2.lenb 返回文本串的字节数

3.find函数的语法格式

=find(find_text,within_text,start_num)

Find(要查找的文本,文本所在的单元格,从第几个字符开始查找[可选,省略默认为1,从第一个开始查找])。

4.LEFT(text,num_chars)Text 是包含要提取字符的文本字符串。Num_chars 指定要由 LEFT 所提取的字符数。Num_chars 必须大于或等于 0。如果 num_chars 大于文本长度,则 LEFT 返回所有文本。如果省略 num_chars,则假定其为 1。

如下图所示,在excel 要将text列中的所有的非hardcode去掉,所谓hardcode 即代码中直接用了中文,但是"引号是abap代码中的注释,因此注释中含中文则不算hardcode,我们要做的就是把纯hardcore筛选出来,然后分发给相关的开发人员去修改。

为了实现上面的功能,综合使用了几个excel中的函数,如下:

=IF(LEN(LEFT(A2,FIND("""",A2)-1))=LENB(LEFT(A2,FIND("""",A2)-1)),0,1)

对该公式的解释:

1,首先利用find函数找出"在字符串中的位置,如果一个字符串中有多个",则find函数返回第一个"出现的位置, 即 FIND("""",A2),如果压根就不存在",则会出现#value

2,利用left 函数将" 左边的字符串截取出来,即LEFT(A2,FIND("""",A2)-1)

3,用len,lenb分别判断第二步截取的字符串的字符数以及字节数,用if函数判断,若相等则说明"左边全是非中文的字符,用0标记,说明不存在hardcode;若不等则说明"左边存在中文字符,用1标记,说明存在hardcore。即=IF(LEN(LEFT(A2,FIND("""",A2)-1))=LENB(LEFT(A2,FIND("""",A2)-1)),0,1)

至此,我们在type列将得到三种不同的值,即0,1,#value。其中,type 为0的为非hardcore,我们应该删除,为1和#value为hardcore,我们应该取出来发给相关的开发去修改。

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!