当函数遇上通配符,会产生怎样的化学反应呢?
路人甲:额,我只在查找替换里用过通配符。。。
路人乙:嘻嘻嘻,知道一点点。
路人丙:布吉岛,但我知道你肯定要带着我一起学(zhuang)习(bi)了。
Excel中通配符有3个,分别为?(问号)、*(星号)、~(波形符)
? (问号) 查找任意单个字符
例如:sm?th可找到“smith”和“smyth”
*(星号) 查找任意数量的字符
例如:*east 可找到“Northeast”和“Southeast”
~(波形符) 查找问号、星号或波形符
例如:fy91~?可找到“fy91?”
常用的适用通配符的函数有如下几个
统计类:countif sumif countifs sumifs
查找类:vlookup hookup match
文本类:serch serchb
下面我们通过几个栗子来学习学习吧。
The first:当已知各个部门人员名单,需要知道车间有多少人,但车间又分好几个部门时。
The second:当我想知道A列数据中第一个文本出现的位置时(注意是文本哦,这个公式利用了通配符适用于文本,不适用数值型数字这一特性)。
The third:当我想提取A列数据中每个字符串前面的汉字部分时。
这道题公式的原理,是字节。
简单的说,字符有单字节和双字节两种类型,英文字母、数字、符号属于单字节,汉字属于双字节。
比如“好”,这是一个字符,两个字节。
SEARCH 和 SEARCHB 函数可在第二个文本字符串中查找第一个文本字符串,并返回第一个文本字符串的起始位置的编号。SEARCH是按字符来计数,不论单节还是双节,都记为1,SEARCHB是按字节来计数,单字节,记为1,双字节(即汉字),记为2。
=SEARCH("?","你好Excelhome")返回的结果是:1
=SEARCHB("?","你好Excelhome")返回的结果是:5
LEFT 从文本字符串的第一个字符开始返回指定个数的字符。LEFTB 基于所指定的字节数返回文本字符串中的第一个或前几个字符。LEFT按字符来计数,LEFTB按字节来计数。
=LEFT("你好Excelhome",4) 返回的结果是:你好Ex
=LEFTB("你好Excelhome",4) 返回的结果是:你好
所以综合起来=LEFTB(A2,SEARCHB("?",A2)-1)的思路就是先用serchb找到第一个字母中的位置,然后用leftb提取前面的汉字部分。
通过上面几个栗子,你是不是对函数与通配符之间的关系有了更深的了解了呢?那就通过下面这道题检验一下吧,为什么卫*同学的基本工资是3000,而VLOOKUP查找出来的是3500呢?
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。