规范单词句子3函数:upper,lower,proper随你挑
今天说3个函数,都是和单词有关的。分别是upper,lower,proper。
upper:将一个文本字符串中的所有小写字母转换为大写字母,不改变文本中的非字母字符。小写转大写。
lower:将一个文本字符串中的所有大写字母转换为小写字母,不改变文本中的非字母字符。大写转小写。
proper:将文本字符串的首字母以及文字中任何非字母字符之后的任何其他字母转换成大写,将其余字母转换为小写。首字母大写。
-01-
函数说明
函数语法结构都很简单,一起写出来如下:
UPPER(text),LOWER(text),PROPER(text)
text必需,要转换的文本字符串
-02-
示例解释
如下图所示,在A列是一些字符串,B列为upper,C列为lower,D列为proper。可以看下它们的结果。upper将所有的字母转为大写,非字母的字符保持不变;lower将所有的字母转为小写,非字母的字符保持不变;proper单词首字母大写,其他的为小写。
-03-
具体应用
1.判断单词首字母大小写
如下图所示,A列是一些单词,现在要求判断单词的首字母是大写还是小写。首先给出一个错误示范,在E8单元格中输入公式=PROPER(A8)=A8,也就是="Apple"="apple"结果返回true。说明直接用比较运算符"="比较时,不区分大小写。所以不能用这种方法。要用一些区分大小写的函数来完成。
第1种方法在B8单元格中输入公式=IF(CODE(UPPER(A8))=CODE(A8),"大写","小写"),向下填充。用的是code和if函数。code是将文本字符串的第1个字符转为数字代码,if是条件判断。意思是将原单词首字符的数字代码和转为大写单词的首字符数字代码进行比较,如果相等,就是大写;否则是小写。
第2种方法,在C8单元格输入公式=IF(ISERR(FIND(PROPER(A8),A8)),"小写","大写"),向下填充。用的是find函数,find区分大小写。如果你对find不熟悉,请看这篇文章。与match类似的文本查找函数find的用法
还用到了1个判断错误值的信息函数iserr,如果是错误值,返回true;否则返回false。
第3种方法,在D8单元格输入公式=IF(CODE(A8)<91,"大写","小写"),向下填充。这里还是用的code函数。从下图可以看到,大写A-Z对应的code值为65-90;小写的a-z对应的code值为97-122。所以如果code值小于91就为大写,否则是小写。
2.句子首字母大写
下图A列是一些句子,现要求将每句的首字母大写,其他都是小写。在B21单元格中输入公式=LEFT(A22)&LOWER(MID(A22,2,99)),向下填充。首先用mid从第2位开始将后面所有的内容提取出来,长度写99;然后用lower将其转为小写;最后用left从左边提取第1位,连接上转为小写的内容。
3.求每个等级的总数量
下图A列是一些姓名和等级,要求计算出A有几个,B有几个,C有几个。我把A的用箭头标示出来。在D28单元格中输入公式=SUMPRODUCT(LEN(A$28:A$31)-LEN(SUBSTITUTE(UPPER(A$28:A$31),C28,))),向下填充。
这里用的是数组公式,思路是这样的,先把每个单元格的A替换为空"",再用原来字符串的长度减去替换后的字符串的长度就是每个单元格中A的个数,最后再把所有单元中的A的个数加起来。由于substitute也区分大小写,所以先要用upper将所有字母转为大写,然后在进行替换。
下图以A28单元格为例,输入下图公式,就是B28单元格的结果,已经将A替换掉了。
再在前面加个len,计算其字符数。
再用A28单元格的字符数减去替换后的字符数就是A28单元格中A的个数。
最后,将A28单元格改为A28:A31的区域,这样就将每个单元格的A的个数计算出来。注意绝对引用的问题。最外面套个sum或者sumproduct进行求和就可以了。这里用sumproduct的好处就是不用按ctrl+shift+enter。
还有其他的方法,不是用今天的upper函数,在E28单元格中输入公式=SUM(N(MID(A$28:A$31,TRANSPOSE(ROW($1:$30)),1)=C28)),按ctrl+shift+enter,向下填充。
好了,今天的3个函数就说完了,你会看到要解决一个问题基本都是和其他函数结合使用的,如果对你有帮助或你喜欢的话,帮我分享或者打赏,你的支持就是我最大的动力!
我发现有些人不管什么问题,总想要一步到位的方法,既想省时又想不费力。我觉得学习是一点一点积累的,等你这个会一点,那个会一点,然后能结合起来灵活运用,你就会慢慢发现一步到位不是不可能,说不定你还会有多种方法,你觉得呢?