我在下面的格式的A列中的Excel表格中有数据,并希望将其提取到不同的列
Column A
XXXXX (YYYYY (ABCDEF) 0000000000 0000000000)
XXXXX (YYYYY 0000000000)
结果必需
A | B | C | D
XXXXX | YYYYY | 0000000000,0000000000 | ABCDEF
XXXXX | YYYYY | 0000000000,0000000000 |
由于无法对数据进行排序,因此希望对这两种情况使用单一公式
答案 0 :(得分:0)
在B1地方
=TRIM(LEFT(A1,FIND("(",A1)-1))
此公式采用第一个“(”左侧的所有字符.TRIM函数删除多余的空格和一些其他特殊字符。您可能想也可能不想使用修剪。如果不减少-1到-2或-3等,直到你返回的字符数正确,最后没有空格。
C1中的
=TRIM(MID(A1,FIND("(",A1)+1,FIND("(",A1,FIND("(",A1)+1)-FIND("(",A1)-1))
有点棘手,而且很多重复性使得难以阅读。基本上我们找到第一个“(”并在其右边的1个字符并开始拉动字符。为了确定要拉动的字符数,第二个“(”的位置被找到。这是通过找到第一个“(”在第一个之后“(”。
D1中的
=SUBSTITUTE(TRIM(MID(A1,FIND(")",A1)+1,LEN(A1)-FIND(")",A1)-1))," ",",")
与我们在前面的例子中在找到第一个“)”的起始点之后拉动文本以及我们查看字符串长度并减去第一个“)”的位置的字符数相同。 。一旦它被分隔为空格的数字,则用substitue命令代替昏迷空间。
在E1中
=MID(A1,FIND("(",A1,FIND("(",A1)+1)+1,FIND(")",A1)-FIND("(",A1,FIND("(",A1)+1)-1)
在找到不同的起点和终点来翻录文本之前,这只是我们所做的非常难看的重复。
您需要执行以下操作才能将所有信息反馈回A1。你需要粘贴价值,否则你的公式将指向所有错误的东西,而且通常看起来非常糟糕。
如果您经常这样做,可以将此过程记录在宏中。