在Excel中将所有@提及和#哈希标记从A列复制到B列和C列
我有一个很大的推特数据库。大多数推特都有多个标签和@提及。我希望所有的#hashtag在一列中用空格分隔,所有@提及在另一列中。我已经知道如何提取第一次出现的在Excel中将所有@提及和#哈希标记从A列复制到B列和C列,excel,twitter,extract,vba,Excel,Twitter,Extract,Vba,我有一个很大的推特数据库。大多数推特都有多个标签和@提及。我希望所有的#hashtag在一列中用空格分隔,所有@提及在另一列中。我已经知道如何提取第一次出现的#hashtag和@提词。但我不知道怎么把它们都弄到手?一些推特上有多达8个标签。手动浏览推文并复制/粘贴#hashtags和@references对于5000多条推文来说似乎是一项不可能完成的任务 这是我想要的一个例子。我有A列,我想要一个宏来填充B列和C列。(我在Windows和Excel 2010上) 我希望B列如下所示: Colum
#hashtag
和@提词
。但我不知道怎么把它们都弄到手?一些推特上有多达8个标签。手动浏览推文并复制/粘贴#hashtags和@references对于5000多条推文来说似乎是一项不可能完成的任务
这是我想要的一个例子。我有A列,我想要一个宏来填充B列和C列。(我在Windows和Excel 2010上)
我希望B列如下所示:
Column B
--------
#DavidStern #Pop #Spurs
#mixlr #pop #dance
#Pop #Rock
#battleofthegenerations #Monkeys #DonnieOsman #Dubstep #Pop
#pop
C列如下所示:
Column C:
----------
@spurs @heat
@Nacho_xtreme
@EmilNow
@michaelbuble
@McKinzeepowell @m0ore21
考虑使用正则表达式 通过从
Tools->References
添加对MicrosoftVBScript正则表达式5.5
的引用,可以在VBA中使用正则表达式
是一个很好的起点,有很多有用的链接。
已更新 添加对
正则表达式库的引用后,将以下函数放入VBA模块中:
然后,在单元格B1
中输入以下公式(用于哈希标记):
在列C1
中输入以下公式:
=JoinMatches(A1,"@")
现在,您可以一直复制公式。您可以使用另一个字符@将文本转换为列,然后与for#s相对,然后将其余文本重新连接到列A,如果您不熟悉正则表达式,请参见(@Zev Spitz)您要付多少钱:)?说真的,如果你能描述一下你所做的尝试和你的编程技能水平:创建宏、使用VBA、使用Excel对象模型和正则表达式,那会有所帮助。常见问题解答:你的问题应该合理界定范围。如果你能想象一整本书都能回答你的问题,那你问得太多了。。另外,请看。这与其说是回答,不如说是评论。
Public Function JoinMatches(text As String, start As String)
Dim re As New RegExp, matches As MatchCollection, match As match
re.pattern = start & "\w*"
re.Global = True
Set matches = re.Execute(text)
For Each match In matches
JoinMatches = JoinMatches & " " & match.Value
Next
JoinMatches = Mid(JoinMatches, 2)
End Function
=JoinMatches(A1,"#")
=JoinMatches(A1,"@")