我有一个电子表格,单元格中有多行,都有换行符。
e.g。
Name: a
Age: 1
University: 1
Degree: 3
Year: 3
我希望提取(在此示例中)单元格中包含的大学信息,并将其复制到另一列中的另一个单元格中。
我的文档中有大约1000条记录,因此手动复制和粘贴将非常耗时。
任何帮助将不胜感激
干杯
乔
答案 0 :(得分:1)
您可以使用Excel公式执行此操作。
假设您的数据位于A列,并且您希望在B列中进行提取,并假设您在第1行中添加标题,则可以执行如下图所示:
(注意我在公式中有一个分号作为列表分隔符,改为使用逗号)
B2
中的公式为:
=MID($A2, FIND(B$1, $A2) + LEN(B$1),
FIND(CHAR(10), $A2 & CHAR(10), FIND(B$1, $A2)) - FIND(B$1, $A2) - LEN(B$1))
该公式有一些重复;以下是一些解释的部分:
FIND(B$1, $A2)
返回文字FIND(B$1, $A2) + LEN(B$1)
返回文字FIND(CHAR(10), $A2 & CHAR(10), FIND(B$1, $A2))
返回标题后面的换行符的位置,确保如果不存在,则返回超出字符串长度的位置只要将列标题放在您要查找的任何子字符串中,就可以将相同的公式复制/拖动到其他列和行。
答案 1 :(得分:1)
如果每行之间有单分隔符,则在 B1 中输入:
=TRIM(MID(SUBSTITUTE($A1,CHAR(10),REPT(" ",999)),COLUMNS($A:C)*999-998,999))
这假定:
答案 2 :(得分:0)
我提供了一个答案,即使你还没有提供你到目前为止所做的尝试,这就是这个网站上的问题通常是如何工作的...但是今天我感觉很慷慨:)
使用MID
和FIND
公式的组合,如下所示:
=MID(A1,FIND("University",A1),FIND("Degree",A1)-FIND("University",A1)-2)
我将您的示例文本放在Cell A1中进行测试,然后返回University: 1
。但是,只有在文本字符串中University
始终跟Degree
后才会有效。
另一种方法是将MID
语句的最后一部分(要求返回长度的部分)替换为要返回的确切字符数,在这种情况下将为13,如下所示:
=MID(A1,FIND("University",A1),13)
这假设与University
关联的整数的长度始终为1个字符。
无论哪种方式,上述两个公式的组合应该可以满足您的需求。在这种情况下,VBA不是必需的。
答案 3 :(得分:0)
单元格值中的行由换行符State
分隔,因此要从单元格值中提取信息,可以使用字符串函数{"name" : "Machine 1", "numCores" : 8, "state" : 1}
和vbLf
:< / p>
Mid(...)
我还没有对代码进行测试,但你应该明白这个想法。