比如在表一中A列是一列类似这样的单元格:1524-1854[+]。 我怎么样能提取出"-"这个符号后的1854这个数值在另外一列中。难点在于这一列当中还有类似这样的单元格:888-888需要取值888、1025-654[-]需要取值654。 求大神求高手在线等。
公式:
=IF(ISERROR(FIND("[",A1,1)),MID(A1,FIND("-",A1,1)+1,LEN(A1)-FIND("-",A1,1)),MID(A1,FIND("-",A1,1)+1,FIND("[",A1,1)-FIND("-",A1,1)-1))
这个。。。能解释一下么?
追答按照你的说法,判定:
1)只有“-”这个后面的部分,亦即从字符串的中间截取到字符串尾,因此,用MID函数;但是,
2)你给的有的字符串的尾部可能有“[+]”等情况出现,因此,需要判定字符串中是否包括,我用FIND函数查找是否包括“[”去实现;如果没有的话,则返回#VALUE这个错误值,因此,我用ISERROR去判断是否找到;
LOOKUP函数不是很懂 能解释一下整条函数的原理么?
追答FIND("-",A1)+1搜索“-”后数据的起始位置。
ROW($1:$9),返回{1,2,3……9}九个数字。
MID(A1,位置数,{1,2……9},取A1指定的位置开始的1至9个字符。前面加上“-”将数据变为负值,文本转为错误值。
LOOKUP(,……,实际上是LOOKUP(0,……,即在前面公式取得的负值和错误值组成的数组中,搜索0值,LOOKUP会自动区域最后一个负值(即MID取得的最多位数字的负值)。最前面的“-”将负值转为正值。