在EXCEL中检索单元格中的部分信息

时间:2015-02-13 16:07:15

标签: excel excel-formula excel-2010

我依稀记得,在设置某些条件后,可以解析单元格中的数据并仅保留部分数据。但我不记得使用什么确切的命令。任何帮助/建议?

例如,A1包含以下信息

0/1:47,45:92:99:1319,0,1320

有没有办法提取,比如0/11319,0,1320并删除其余未选择的数据? 我知道我可以text-to-column并设置delimiter,然后手动删除“不需要的”数据,但我的EXCEL电子表格包含100列X 500000行,每个单元格与上面的数据类似,所以我担心EXCEL可能会在完成工作之前崩溃。 (一直在尝试使用LEFTLENRIGHTMID,但似乎没有一种方法可以按照我希望的方式运行 任何建议将不胜感激。

3 个答案:

答案 0 :(得分:0)

我认为你要找的是find和mid的组合,但你必须弄清楚你想要如何拆分你的字符串:

A1 = 0/1:47,45:92:99:1319,0,1320  //your number
B1 = Find(“:“,A1)               //location of first ":" symbol
C1 = LEN(A1) - B1                 //character count to copy ( possibly requires +1 or -1 after B1.
=Left(A1,B1)                      //left of your symbol
=Mid(A1,B1+1,C1)                  //right size from your symbol (you can also replace C1 with better defined number to extract only 1 portion
//You can also nest the statements to save space, but usually at cost of processing quantity increase

这是一个概念,您可能需要在多个单元格中执行此操作以分割字符串。对于多个拆分,您可能希望复制此命令以定位先前右/中间命令的结果。 这样,您将获得如下的单元格结果序列: 0/1:47,45:92:99:1319,0,1320; 47,45:92:99:1319,0,1320; 92:99:1319,0,1320; 99:1319,0,1320 ...... 从每个中,您可以检索字符串的左侧到“:”以获取字符串的每个部分。

如果您正在使用大型表,则可能需要查看VB脚本。据我所知,没有一个excel命令可以占用1个单元并将其拆分为多个单元。

答案 1 :(得分:0)

鉴于您有100x列的声明,我想在某些情况下您需要在字符串中间隔离字符,因此LeftRight可能并不总是有效。但是,尽可能在可能的地方使用它们。 假设您的字符串位于单元格F2中:0/1:47,45:92:99:1319,0,1320

=LEFT(F2,3)

返回0/1,它是从左边开始计算的字符串中的前3个字符。同样,Right的功能类似:

=RIGHT(F2,4)

返回1320,从右边开始返回4个字符。

您可以使用MidFind的组合,根据已定义的字符动态查找字符或字符串。以下是在字符串中动态显示值的方法的几个示例。请记住,这些示例的关键是嵌套的Find公式,其中最内层Find是字符串中的第一个字符。

1)在第二个:字符

后返回2个字符

在单元格F2中,我需要隔离“92”:

=MID(F2,FIND(":",F2,FIND(":",F2)+1)+1,2)

最里面的Find找到字符串中的第一个:(4个字符)。我们添加+1以移至第5个字符(超出第一个:,以便第二个查找将无法看到它)并移至下一个开始查找:的查找那个角色。第二个Find返回10,因为第二个:是字符串中的第10个字符。 Mid公式接管此处。公式是说,从第10个字符开始返回以下2个字符。返回两个字符由公式末尾的2(Mid公式的最后一部分)决定。

2)在这种情况下,我需要在字符串中的第3个:之后找到2个字符。在这种情况下“99”:

=MID(F2,FIND(":",F2,FIND(":",F2,FIND(":",F2)+1)+1)+1,2)

您可以看到我们只是在示例1的公式中添加了一个嵌套的Find

答案 2 :(得分:0)

让我试着帮助你,我不是专业人士所以你可能会面临一些问题。首先,我的解决方案包含2列要添加到源列,如下所示。但是,您可以使用此原则改进公式。

enter image description here

Column B Formula:
=LEFT(A2,FIND(":",A2,1)-1)

Column C Formula:
=RIGHT(A2,LEN(A2)-FIND("|",SUBSTITUTE(A2,":","|",LEN(A2)-LEN(SUBSTITUTE(A2,":","")))))