在不同单元格中提取数据表单Excel单元格

我有以下两种格式的列A中的Excel表中的数据,并希望使用一个单一的公式将其提取到不同的列

Column A XXXXX (YYYYY (ABCDEF) 0000000000 0000000000) XXXXX (YYYYY 0000000000) 

结果必需

  A | B | C | D XXXXX | YYYYY | 0000000000,0000000000 | ABCDEFA2 XXXXX | YYYYY | 0000000000 | 

所需的一个公式既可用于条件也可用c1,c2可以是0000000000或000000000,00000000

这是这个问题的后续

因为你有非常结构化的数据,你只能看到两种情况,你可以把两个文本剥离方法放在一个if语句中,这个语句可以判断你正在使用哪种情况。 在这种情况下,我使用:

 =IF(LEN(A1)-LEN(SUBSTITUTE(A1,"(",""))>1 ,Method A, Method B) 

if语句的第一部分计算“(”的数量,如果有超过1个使用方法,那么从第一个问题开始,如果有1个或更less的“(”,那么它会尝试方法B的公式我在这个问题中添加了。

与以前的答案类似,在B1中使用相同的公式

在C1中将您的公式更改为:

 =IF(LEN(A2)-LEN(SUBSTITUTE(A2,"(",""))>1,TRIM(MID(A2,FIND("(",A2)+1,FIND("(",A2,FIND("(",A2)+1)-FIND("(",A2)-1)),LEFT(RIGHT(A2,LEN(A2)-FIND("(",A2)),FIND(" ",A2))) 

这个问题的新部分基本上是:

 =LEFT(RIGHT(A2,LEN(A2)-FIND("(",A2)),FIND(" ",A2)) 

它只是另一种可以剥离数据的方式。 我知道你从左到右阅读的第一个公式是左,但对我来说,公式确实是从右开始的。 我甚至先写了RIGHT公式,然后回去添加左边的部分。 因此,使用RIGHT函数,我们基本上舍弃了左边的所有东西,包括第一个“(”),然后我们取RIGHT公式的结果,并应用一个左边的公式,并去掉右边的所有东西,包括YYYYY 000000。

在D1使用:

 =IF(LEN(A1)-LEN(SUBSTITUTE(A1,"(",""))>1,SUBSTITUTE(TRIM(MID(A1,FIND(")",A1)+1,LEN(A1)-FIND(")",A1)-1))," ",","),MID(A2,FIND(" ",A2,FIND("(",A2))+1,LEN(A2)-1-FIND(" ",A2,FIND("(",A2)))) 

新的部分是:

 =MID(A2,FIND(" ",A2,FIND("(",A2))+1,LEN(A2)-1-FIND(" ",A2,FIND("(",A2))) 

基本上我们以前做过。 使用MID公式来翻译string中间的文本。 你需要确定一个起点,我使用了第一个空格之后的第一个“(”),而从技术上讲,我可以有第二个空格,这个句子反映了更多的嵌套的FIND公式发生了,find起始位置之后,通过从整个string的整个长度中减去第一个“)”的位置来确定要返回的字符的数量。

在E1使用:

 =IF(LEN(A1)-LEN(SUBSTITUTE(A1,"(",""))>1,MID(A1,FIND("(",A1,FIND("(",A1)+1)+1,FIND(")",A1)-FIND("(",A1,FIND("(",A1)+1)-1),"") 

这个等式的新部分是迄今为止最简单的。

 ="" 

我们需要在IF声明中。 如果我们没有它,单元格会显示FALSE,因为它是if语句的值,如果没有为其错误结果提供其他内容。

当您编辑公式并将它们放在正确的单元格中时,使用上一个问题的复制粘贴过程