Excel里如何查找某个字符在字符串里出现的第二个位置?

我知道Find 和search 函数可以查找某个字符在字符串中的第一次出现的位置。
但是例如如下的单元格:

ф150*80*3

字符"*"出现的第二个位置,如何用函数得出?
谢谢

使用FIND函数,嵌套SUBSTITUTE函数实现。

首先假设表格如下图所示,要查找A1单元格中“知道”在该字符串中第二次出现的位置

步骤如下:

在B2单元格中输入公式”=FIND("@",SUBSTITUTE(A1,"与","@",2))“(其中@可替换成任何原文本中没有的字符),回车即可。

函数功能解析:

(1)SUBSTITUTE函数:

①函数功能:将某字符串中在指定位置出现的指定字符替换成自定义的字符。

②语法:SUBSTITUTE(text,old_text,new_text,instance_num)

(2)FIND函数

①函数功能:查找指定字符在字符串中出现的位置。

②语法: FINDB(find_text,within_text,start_num)

扩展资料:

用Excel计算一个字符串中某个字符的个数

1、用LEN和SUBSTITUTE函数配合计算。示例:假定A1="abcdacad",求a的个数。
公式=len(a1)-len(substitute(a1,"a",)) 这种方法的原理是:用原字符串长度减去删除指定字符后的字符串长度,得到指定字符的数量。

2、用SUMPRODUCT和MID函数计算。如上例,公式为:=SUMPRODUCT(N(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)="a"))
公式首先用MID函数将字符串分解为单个元素,再进行一一比对,最后用SUMPRODUCT函数汇总得到结果。

参考资料:百度百科find函数(Excel函数)

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2019-11-02

以ф150*80*3为A1中填充的字符串,第二个"*"的位置==FIND("*",A1,FIND("*",A1)+1)。

要找到第二个"*"的位置,首先要FIND函数中各个参数的意义。

FIND的用法为FIND(find_text,within_text,start_num),那么对于本题而言,将第一个"*"的位置后的第一个数字当作是新字符串的起始位置。

扩展资料

Excel中截取、替换字符串等登文本处理过程,会使用到FIND、SEARCH函数来精确定位。

FIND函数和SEARCH函数的语法完全相同,主要区别在于:FIND函数可以区分英文大小写,但不支持通配符;SEARCH函数不能区分大小写,但支持通配符。

FIND函数还可以嵌套在LEFT函数、RIGHT函数或MID函数中,截取字符串片段。

Excel中与查找有关的函数包括:

VLOOKUP函数:给定一个值从另一个表中查找符合条件的值。

OFFSET函数:可以根据偏移量和大小生成一个动态的区域

INDIRECT函数:把公式表达式转换成值,在动态取值时非常有用。

MATCH函数:查找给定的值在一个区域的位置

INDEX函数:根据位置提取值,常和MATCH函数合用

LOOKUP函数:实现多条件查找等更复杂的查找

ROW函数:返回行数,常用于复制后生成序号或在生成一组数用于数组公式中。

COLUMN函数:返回列数。

参考资料:

FIND函数——百度百科

本回答被网友采纳
第2个回答  推荐于2019-10-24

可使用函数公式:=FIND("*",A1,FIND("*",A1,1)+1)

1、A1单元格写如查找的字符,B1写入公示=FIND("*",A1,FIND("*",A1,1)+1)

2、按enter键确认,查看结果

“*”为要查找的字符

“A1”指从A1单元格的内容来查找此字符

“FIND("*",A1,1)+1”指从A1单元格确定第一个“*”的位置,第二个“*”从第一个“*”位置的后一位开始查找

扩展资料:

FIND函数使用语法:

FIND(find_text,within_text,start_num)

Find_text 是要查找的字符串。

Within_text 是包含要查找关键字的单元格。就是说要在这个单元格内查找关键字

Start_num 指定开始进行查找的字符数。比如Start_num为1,则从单元格内第一个字符开始查找关键字。如果忽略 start_num,则假设其为 1。

参考资料:百度百科-FIND函数

本回答被网友采纳
第3个回答  2019-02-02

可以用替换函数SUBSTITUTE,

用法如下:SUBSTITUTE(text,old_text,new_text,[instance_num])

=substitute(需要替换的文本,旧文本,新文本,第N个旧文本)

现以查找”11X22X33“字符串中的第二个X为例

方法/步骤

1.输入SUBSTITUTE函数

1X2X3

SUBSTITUTE(D3,"X","*",2)

1X2X3→1X2*3

2.这样就将第二个X替换为"*"了,那么之后的事情就是查找这个"*"的位置了FIND("*",SUBSTITUTE(D3,"X","*",2))

1X2X3→1X2*3→4

这时候返回的就是第二个X的位置了,同理查找第N个,只需变更数字即可


扩展资料

1.使用FIND函数,嵌套SUBSTITUTE函数实现查找字符串中字符第N个位置。

2.FIND函数
①函数功能:查找指定字符在字符串中出现的位置。

②语法: FINDB(find_text,within_text,start_num)

Find_text        是要查找的文本。
Within_text     是包含要查找文本的文本。
Start_num      指定开始进行查找的字符。within_text 中的首字符是编号为 1 的字符。
如果忽略 start_num,则假设其为 1。


本回答被网友采纳
第4个回答  推荐于2017-10-01

使用FIND函数,嵌套SUBSTITUTE函数实现。

首先假设表格如下图所示,要查找A1单元格中“知道”在该字符串中第二次出现的位置

步骤如下:

在B2单元格中输入公式”=FIND("@",SUBSTITUTE(A1,"与","@",2))“(其中@可替换成任何原文本中没有的字符),回车即可。


函数功能解析:

(1)SUBSTITUTE函数:

①函数功能:将某字符串中在指定位置出现的指定字符替换成自定义的字符。

②语法:SUBSTITUTE(text,old_text,new_text,instance_num)

text                       是需要替换其中字符的文本,或是含有文本的单元格引用;

old_text                 是需要替换的旧文本;

new_text               用于替换old_text 的文本;

instance_num        为一数值,用来指定以new_text 替换第几次出现的old_text;如果指定了instance_num,则只有满足要求的old_text 被替换;否则将用new_text 替换Text 中出现的所有old_text。

(2)FIND函数

①函数功能:查找指定字符在字符串中出现的位置。

②语法: FINDB(find_text,within_text,start_num)
Find_text        是要查找的文本。
Within_text     是包含要查找文本的文本。
Start_num      指定开始进行查找的字符。within_text 中的首字符是编号为 1 的字符。

                     如果忽略 start_num,则假设其为 1。

(3)本例解析

首先利用SUBSTITUTE函数将字符串中要查找的指定字符第二次出现时的字符替代成特殊字符(本例中采用”@“),然后利用FIND函数查找”@“出现的位置,即为原来字符串中指定字符第二次出现的位置。

相似回答