许多人在使用Ex来自cel过程中,想要查找字符串中指定字符的位置,却又不知道怎么查找,今天教给大家查找方法。
材料/工具
电脑
Excel
方法1
首先你的文档,这里简单做一个举例
第一种,FIND函数
格式为FIND(find_text, within_text, [start_num]),其中步骤1中字符串1为within_text,字符串2为find_text。start_num参数代表从这个位置开始进行查找,省略的话默认数值为1。选中单元格C2,在单元格中输入公式=FIND(A2,B2)。
回车查看结果。
第二种,FINDB函数
格式为FINDB(find_text, within_text, [start_num]),参数意义和FIND函数一样,区别是对中文汉字是按两个字符计算的。在C3单元格中输入公式=FINDB(B3,A3,2),一个中文汉字算2个字符,所以结果为7。
选中D3单元格,输入公式=FIND(B3,A3,2),在find函数计算时,一个中文汉字算一个字符,所以结果是5。
Find和findB函数获取位置信息时是区分大小写字符的。在字符串aaa-bbbBBBccc中查找小写b和大写B的起始位置。
选中C4单元格,输入公式=FIND(B5,A4),回车其结果为8。
选中C5单元格,输入公式=FIND(B6,A5),回车其结果为1。
第三种,查找位置
这里用“最常见”的【Hello world!】举例。
查找o在公式中出现的位置的方法。
自己数发现字母o在字符串中有两个,【find()】默认设置只查找字母第一次出现的位置,如果想找第二个o出现的位置,其实一直忽略了find()函数的第三个参这况收从至数——查找的起始位置。如果不对它修改特别指定的话,默认从第一个字母查找,那么思路就明确了
让find()从第一个o出现的位置后开始查找
输入公式【=FIND("o",A1,FIND("o",A1)+1)】
按下回车键,如图所示,这样结果就是【8】
如果出现三次怎么办?那就开始套娃。
那要是出现了N次,套不过来呢?
那就把整个字符串打散,变成单独的字符
输入公式【=MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)】
这个公式就是专门处理“N次”的,按F9可以看到由字符串中每一个字母组成的数组,现在可以对它们进行单独调整了。
直接按下回车键,如图所示,结果为【H】,乐
用if()函数来判断:如果字母等于【l】,给出它所在的位置,否则就会给出一个超大数值,下面再说为什么要用超大数值。公式是
【=IF(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)="l",ROW(INDIRECT("1:"&LEN(A1))),65535)】
按F9观察结果【{65535;65535;3;4;65535;65535;65535;65535;65535;10;65535;65535}】,l共出现了三次,位置分别是,3、4、10,这时就和观察的结果是一致的
其它字符位置会被超大数【65535】所代替
此时需要这个数组中找出你想要的结果,也就是【3、4、10】这三个数字。此处需要用到small()函数,small(array,k)函数,有两个参数,第一个是数值集合,第二个是指定第k个最小值,它所返回的就是在数值集合中第k个最小值,刚才其它字符替换成65535作用正在于此,用small()在【{65535;65535;3;4;65535;65535;65535;65535;65535;10;65535;65535}】中查找第k个最小值,就是查找字母l在字符串中第k次出现的位置。公式是
【=SMALL(IF(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)="l",ROW(INDIRECT("1:"&LEN(A1))),65535),3)】
找第几个,就k就改成几,因为这个是数组公式,所以需要同时按下【Ctrl+Shift+Enter】才能出结果
否则就会变成这样,记得同时按下【Ctrl+Shift+Enter】哦。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 951076433@qq.com 举报,一经查实,本站将立刻删除。如若转载,请注明出处:https://www.xiaomafuwu.com/341403.html