excel FIND查找多个不同字符串 位置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了excel FIND查找多个不同字符串 位置相关的知识,希望对你有一定的参考价值。

实际操作是文本,如图列子,求一个公式让A列得出B列的数值,用FIND搞了半天只能查找是否包含不能返回正确的值或位置,求高人指点。
看来是我表述有问题。B列是我想要的结果,不能参与运算。
我重新描述:A列会有很多数据,其中部分数据会包含C、D、Q三个字母中的一个(不会同时包含两个或三个)。首先我要查找哪些包含,C或D或Q,如果包含就返回所包含的字母,谢谢。

示例公式:

=index(find("abc","123",a$1),row(a1)) 按组合键ctrl+shift+enter结束公式,下拉填充2行。
公式得到的结果是字符串"abc"和"123"在A1中的位置。
其中:FIND函数的语法为:
FIND(find_text,within_text,start_num)
参数Find_text为要查找的文本,可以是单个字符或字符串,也可是一个字符串组合;Within_text为包含要查找文本的文本;Start_num为指定查找字符的起始位置,省略 start_num则假设其为 1。
参考技术A 如果要确定B列字符在A列中出现的位置,在C1中输入公式 =FIND(B1,A1)
如果要得到B列字符,可以在C1中输入公式 =MID(A1,FIND(B1,A1),1)

我理解了,下面的公式可以满足

=INDEX("C";"D";"R",MIN(IF(LEN(SUBSTITUTE(A1,"C";"D";"R",""))<>4,ROW($1:$3))))
数组公式,按ctrl+shift+enter结束追问

=MID(A1,FIND(B1,A1),1),只能取对应B列的字母。A列数据会包含C,D,Q其中一个字母,我要一个公式判断每个数据包含其中的哪一个,然后返回所包含的字母。

追答

=INDEX("C";"D";"R",MIN(IF(LEN(SUBSTITUTE(A1,"C";"D";"R",""))4,ROW($1:$3))))
数组公式,按ctrl+shift+enter结束
不过你没说清楚,如果找不到这三个字符怎么显示

本回答被提问者采纳
参考技术B C1=LOOKUP(0,0/(MID(A1,ROW($1:$99),1)=B1),ROW($1:$99))
CTRL+ENTER+SHIFT三键结束
下拉追问

看来是我表述有问题。B列是我想要的结果,不能参与运算。
我重新描述:A列会有很多数据,其中部分数据会包含C、D、Q三个字母中的一个(不会同时包含两个或三个)。首先我要查找哪些包含,C或D或Q,如果包含就返回所包含的字母,谢谢。

追答

=IF(ISNA(LOOKUP(0,0/(MID(A1,ROW($1:$99),1)=B1),ROW($1:$99))),"",B1)

追问

人才,可以了,谢谢

追答

不存对应关系在你写给我们看干嘛?

A列每个单元格可能含有CDQ其中一个,且不重复,对吧!也肯能三个都不存在

=IF(ISNUMBER(LOOKUP(0,0/(MID(A1,ROW($1:$99),1)="C"),ROW($1:$99))),"C","")&IF(ISNUMBER(LOOKUP(0,0/(MID(A1,ROW($1:$99),1)="D"),ROW($1:$99))),"D","")&IF(ISNUMBER(LOOKUP(0,0/(MID(A1,ROW($1:$99),1)="Q"),ROW($1:$99))),"Q","")
三键结束

find()函数怎么用

这是怎么回事?漂流牛

Find函数用来对原始数据中某个字符串进行定位,以确定其位置。Find函数进行定位时,总是从指定位置开始,返回找到的第一个匹配字符串的位置,而不管其后是否还有相匹配的字符串。
使用语法
  FIND(find_text,within_text,start_num)
  Find_text 是要查找的文本。
  Within_text 是包含要查找文本的文本。
  Start_num 指定开始进行查找的字符。within_text 中的首字符是编号为 1 的字符。如果忽略 start_num,则假设其为 1。追问

我要 “AAA:BB” 或“AAA:BBB ”或“AAA:BBBB”,中“:”的后面的值。

追答

嗯,好办。假设你的数据在A1单元格中。
=MID(A1,FIND(":",A1)+1,10)

追问

对不起,一激动我漏了这2种情况“AA:BB”和“AA:BBB”

追答

无所谓啊。。都一样。。
这个公式的意思是:
从数据中查找到 : 的地方往后加1开始取,取10个。。这个10你可以根据你后边文本的长度修改。。

参考技术A 帮你查一下MSDN
template<class InIt, class T>
InIt find(InIt first, InIt last, const T& val);
The template function determines the lowest value of N in the range [0, last - first) for which the predicate *(first + N) == val is true. It then returns first + N. If no such value exists, the function returns last. It evaluates the predicate once, at most, for each N.
参考技术B 回答

Find函数用来对原始数据中某个字符串进行定位,以确定其位置。它的语法结构是=FIND(find_text,within_text, [start_num])find_text 必需。要查找的文本。闲言少叙,举一个具体的例子看看,查找学字在文本中的位置。在单元格输入公式=FIND(B2,A2),即可以查找到学字的位置。

参考技术C 查MSDN。。追问

莫有啊

追答

网上有在线版的
http://msdn.microsoft.com/en-us/library/h64454kx(VS.71).aspx

以上是关于excel FIND查找多个不同字符串 位置的主要内容,如果未能解决你的问题,请参考以下文章

Excel 函数功能分享之Find 函数

Excel 函数功能分享之Find 函数

Excel 函数功能分享之Find 函数

EXCEL中FIND函数的用法

Excel中使用vba代码查找字符串并返回该单元格的位置

批处理查找字符串