查找“1X2X3”中第一个“X”前的数字,为“=LEFT(D3,FIND("X",D3,1)-1)“,得到”1“,如果我想查找第二个”X“前的数字,应该怎么表达?又如果”11X22X33“,查找第一个”X“之后,第二个”X“之前的字符串,应该怎么查找?
查找“1X2X3”中第一个“X”前的数字,为“=LEFT(D3,FIND("X",D3,1)-1)“,得到”1“,如果我想查找第二个”X“前的数字,应该怎么表达?又如果”11X22X33“,查找第一个”X“之后,第二个”X“之前的字符串,应该怎么查找?
关于这个查找第N个字符的问题,看了好多的方法,Excel有个替换函数SUBSTITUTE,用法如下:SUBSTITUTE(text,old_text,new_text,[instance_num])
=substitute(需要替换的文本,旧文本,新文本,第N个旧文本)
那么解决方案就有了
1X2X3
SUBSTITUTE(D3,"X","*",2)
1X2X3→1X2*3
这样就将第二个X替换为"*"了,那么之后的事情就是查找这个"*"的位置了FIND("*",SUBSTITUTE(D3,"X","*",2))
1X2X3→1X2*3→4
这时候返回的就是第二个X的位置了,同理查找第N个,只需变更数字即可