今天讲的这个课题对于函数有些难度,但仍是遵循我的思想,写函数就是在写程序,其实今天的这个函数难度要高于一般的VBA,对于VBA初学者,甚至是可以达到中级水平(可以用VBA操作数据库)的人员来说不一定能读懂,如有谁可以一次能读懂,我将加入VBA人才库,哈哈。
言归正传,今天讲如果用组合函数判断一个单元格输入的是否全部是字母。先看下面的截图
在A列中,有一系列的字符或组合,要判断哪些全部是字母,我们录入了B列的公式,返回的结果是C列的值。
这里我公布了B列的公式,但截图的图表中有一点没有完全显示出来,截图的光标选中的B2的单元格,我们看上面的编辑栏,会发现公式的首位是加了一个{}的符号,这就说明,这个公式是数组公式。
下面是B2公式的复制:=)=)}
好了,到这里我们称之为第一步,有谁在第一步能看懂了这个公式?请举手。不过没关系我们下面会先简单的讲解一下这个公式。
第二步,公式的简要说明。这个例子的公式是一个数组公式,涉及到的函数和公式应用较多,简单介绍下公式的原理:首先把字符串中所有字符都用Upper函数转为大写字母(有利于判断),然后用right函数将整个字符串依次分段,再用code函数将分段后的首字符代码取出(分段后的首字符就是字符串中的每一个字符),最后判断代码是否在65~90的区间内(大写英文字母的区间)。这个例子让大家了解到,code函数经过与其他函数的组合可以突破返回首字符代码的限制,可以有更广泛的应用。
到第二步这里有谁能完全读懂上面的公式了?请举手。
如果你到这里可以轻松的完全的读懂上面的公式,那么你的函数水平可以在中级以上了,写的VBA程序基本可以操作数据库了。但相信很多人还是一团雾水,或者似是而非地看懂了。
下面看我的第三部讲解:
=)=)}
其实这个组合函数和程序的写法一样的,甚至还更难。
1首先要计算的是UPPER(A2)=123QWE,当然我这里没有给出小写的例子。
2求LEN(A2)=6,得到下一阶的公式:INDIRECT("1:"&6)进而化简这个值为INDIRECT("1:6")。
3有了上面的值进而得到下阶的公式:ROW($1:$6),所以会得到下一阶公式RIGHT(“123QWE”,{ 1;2;3;4;5;6})。
4从上面公式得到,下阶的公式:CODE({“E”; “WE”; “QWE”; “3QWE”; “23QWE”; “123QWE”}),值为
5上面的值进而会转化为下阶的公式>。这是对于数组的比较,而得到公式的返回值:
6从上阶的值得到下阶的公式
N()。进而达到值
7从上阶的值得到下阶的公式=,进而得到公式的返回值
8从上阶的值得到下阶的公式
AND(,而得到公式的返回值FALSE)。
经过了上面的8个关键步骤的计算,我们得到了FALSE的结果,到这里,应该大多数的朋友都能看懂上面的公式了。如果还没有看懂,赶快再复习一下数组的运算,N函数的用法,及基本的RIGHT函数的用法了。
今日内容回向:
1如何判断单元格中的字符串是否全是字母字符的思路是如何建立的。
2 CODE函数和CHAR函数的利用是否能熟练了?
3是否看懂了上面的公式。
分享成果,随喜正能量
领取专属 10元无门槛券
私享最新 技术干货