首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在EXCEL中检索单元格中的部分信息

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

Stack Overflow用户
提问于 2015-02-14 00:07:15
回答 3查看 150关注 0票数 0

我隐约记得,可以解析单元格中的数据,并在设置某些条件后只保留部分数据。但是我不记得使用什么命令了。有什么帮助/建议吗?

例如,A1包含以下信息

代码语言:javascript
复制
0/1:47,45:92:99:1319,0,1320

有没有一种方法可以提取,比方说,0/11319,0,1320,并删除其余未选择的数据?我知道我可以做text-to-column和设置delimiter,然后手动删除“不需要的”数据,但是我的EXCEL电子表格包含100列X 500000行,每个单元格看起来与上面的数据相似,所以我担心EXCEL可能会在完成工作之前崩溃。(我已经尝试了LEFTLENRIGHTMID,但似乎没有一个像我希望的那样工作)任何建议都将非常感谢。

EN

回答 3

Stack Overflow用户

发布于 2015-02-14 00:23:35

我认为你正在寻找的是find和mid的组合,但你必须准确地计算出你想要如何拆分字符串:

代码语言:javascript
复制
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

这就是概念,你可能需要在多个单元格中这样做,才能拆分一个和你一样长的字符串。对于多个拆分,您可能希望复制此命令以针对上一个right/mid命令的结果。这样,您将得到如下单元格结果序列: 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命令可以接受一个单元格并将其拆分成多个单元格。

票数 0
EN

Stack Overflow用户

发布于 2015-02-14 01:12:32

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

代码语言:javascript
复制
=LEFT(F2,3)

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

代码语言:javascript
复制
=RIGHT(F2,4)

这将返回1320,返回从右开始的4个字符。

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

1)在第二个:字符后返回2个字符

在单元格F2中,我需要分离出"92":

代码语言:javascript
复制
=MID(F2,FIND(":",F2,FIND(":",F2)+1)+1,2)

最里面的Find定位字符串中的第一个: (中有4个字符)。我们添加+1以移动到第5个字符(移动到第一个:之外,这样第二个Find将看不到它),并移动到下一个Find,从该字符开始再次查找:。第二个查找返回10,因为第二个:是字符串中的第10个字符。Mid公式在这里起作用。公式是这样说的,从第10个字符开始返回下面的2个字符。返回两个字符由公式末尾的2决定( Mid公式的最后一部分)。

2)在这种情况下,我需要找到字符串中第三个:之后的2个字符。在本例中为"99":

代码语言:javascript
复制
=MID(F2,FIND(":",F2,FIND(":",F2,FIND(":",F2)+1)+1)+1,2)

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

票数 0
EN

Stack Overflow用户

发布于 2015-02-14 01:29:54

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

代码语言:javascript
复制
Column B Formula:
=LEFT(A2,FIND(":",A2,1)-1)

Column C Formula:
=RIGHT(A2,LEN(A2)-FIND("|",SUBSTITUTE(A2,":","|",LEN(A2)-LEN(SUBSTITUTE(A2,":","")))))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28503747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档