我在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
这是此question
的后续内容答案 0 :(得分:0)
因为你有非常结构化的数据,并且它只是你正在看的两个案例,你可以把你的两个文本剥离方法放在一个if语句中,它可以找出你正在使用的案例。在这种情况下,我使用:
=IF(LEN(A1)-LEN(SUBSTITUTE(A1,"(",""))>1 ,Method A, Method B)
if语句的第一部分计算"的数量("有。如果你有一个以上的使用方法A公式来自你的第一个问题。如果你有1个或更少& #34;("然后它会尝试我在这个问题中添加的方法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))
它只是你可以剥离数据的另一种方式。我知道你从左到右阅读的第一个公式是LEFT,但对我来说,公式真的从右边开始。我甚至先写了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公式来删除字符串中间的文本。你需要确定一个起点,我使用了第一个"之后的第一个空格。("。虽然从技术上讲我可以有第二个空格。句子反映了更多的是嵌套的FIND公式。找到起始位置后,通过减去第一个")的位置来确定要返回的字符数。从整个字符串的长度。
在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语句的值。
编辑公式并将其放入正确的单元格后,使用上一个问题中的复制粘贴程序