EXCEL函数参数?

请帮解答一下下面EXCEL函数参数内容?
=IF(ISNUMBER(SEARCH("^",C3,SEARCH("^",C3,5)+1)),MID(C3,SEARCH("^",C3,5)+1,SEARCH("^",C3,SEARCH("^",C3,5)+1)-SEARCH("^",C3,5)-1),RIGHT(C3,LEN(C3)-SEARCH("^",C3,SEARCH("^",C3,1))))

ISNUMBER(SEARCH("^",C3,SEARCH("^",C3,5)+1))表示:如果从C3的第五个字符查找^的位置再加1的位置开始查找^,返回的是数值(即有这样的数据位置存在);
MID(C3,SEARCH("^",C3,5)+1,SEARCH("^",C3,SEARCH("^",C3,5)+1)-SEARCH("^",C3,5)-1)表示:从C3第5个字符开始的位置查找到^的位置再加1开始,截取从C3的第五个字符查找^的位置再加1的位置开始查找^的位置减去从第五个字符查找到^的位置再减1的字符长度;
RIGHT(C3,LEN(C3)-SEARCH("^",C3,SEARCH("^",C3,1)))表示:截取C3从C3的字符长度-C3第2个^位置长度右边的字符串。
感觉这样的运用公式好拗口,可以将条件整理出来,可能不需要这么复杂的公式。追问

可能公式是有点问题,是上面这个,将单元格A分列到B、C、D、E、F、G的公式,能帮我写一下吗?谢谢!!

追答

如果选择A列,直接在“数据”选项下,以^作为分隔符分列,应该来得更快一些。

追问

经常用,况且^符号不统一,还有其它符合,我是已经用公式替换过,就想设几个公式,把数据粘贴到A列,用公式替换符号到B列,再分列到其它列,用数据分列要分列多次。

追答

如果确需要公式完成

B1单元格输入=LEFT(A1,FIND("^",A1)-1)

C1单元格输入以下公式,然后向右填充公式

=TRIM(MID(SUBSTITUTE($A1,"^",REPT(" ",100)),COLUMN(A1)*100,100))

 

详见附图

 

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-09-12
  SEARCH("^",C3,5),从C3单元格的第5个字符开始,查找"^"在C3单元格中的第一次出现的位置;
  SEARCH("^",C3,1),同上,只是从第一个开始查找,1可以省略,SEARCH("^",C3),默认为从第一个字符开始;

  SEARCH("^",C3,SEARCH("^",C3,5)+1),从C3单元格的第5个字符开始,查找"^"在C3单元格中的第一次出现的位置的右侧继续查找"^"在C3单元格中的第一次出现的位置;
  如果单元格中没这么多"^",就会查不到,返回错误值,用ISNUMBER来作为IF条件,查到为真,查不到为假;

  为真时,返回MID(C3,SEARCH("^",C3,5)+1,SEARCH("^",C3,SEARCH("^",C3,5)+1)-SEARCH("^",C3,5)-1)的值,也就是返回从C3单元格的第5个字符开始,两个"^"之间的内容;
  为假时,返回RIGHT(C3,LEN(C3)-SEARCH("^",C3,SEARCH("^",C3,1))),即返回C3单元格中第一个"^"字符右侧的数据,不过这公式有点问题,要么是RIGHT(C3,LEN(C3)-SEARCH("^",C3,SEARCH("^",C3,1)+1)),即返回第二个"^"右侧的数据,要么直接用RIGHT(C3,LEN(C3)-SEARCH("^",C3))即可,估计目的是前者;
  此处SEARCH均可用FIND,另外,此公式基于至少有一个"^",否则会返回错误值,外层还要再加一个条件函数。追问

可能公式是有点问题,是上面这个,将单元格A分列到B、C、D、E、F、G的公式,能帮我写一下吗?谢谢!!

本回答被网友采纳
相似回答