0

我的头发才三万多tweets。我有一列有实际的tweet. 我想通过本专栏完成两件事。

首先是示例数据片段:

RT @Just_Sports: Cool page for fans of early pro #baseball. https://t.co/QCMYFQNSq8 #mlb #vintage #Chicago #Detroit #Boston #Brooklyn #Phil…
@brettjuliano you already know #unity #newengland #hiphop #boston #watertown  #network

RT我有一列使用以下公式来查看消息是否以a开头re-tweet。它返回 1 表示是,0 表示否。

我想要完成的是在两列中创建一个公式。如果 RT 列的值为 1,则将获取用户名,如果 RT 列的值为 0,则在第二列中获取用户名。由于用户名是任意长度,我不确定如何处理。

例子

RT @Just_Sports:     |     1     |     @Just_Sports     |     0
@brettjuliano        |     0     |                      |     @brettjuliano
4

1 回答 1

1

看看Excel的FIND功能。您可以使用它来标识 的位置@,然后使用指定的分隔符,匹配用户名的结尾:

=MID(A1, FIND("@",A1), FIND(":",A1,FIND("@",A1)) - FIND("@",A1))

A1包含推文的单元格在哪里,并且":"是您的分隔符。


您可以使用相同的功能来检查"RT"标识符是否存在。

=FIND("RT",A1)>0

TRUE如果找到则返回"RT"。您可能需要考虑搜索" RT "(空格) 或其他一些变体,因为在推文中使用它没有标准:

=OR(FIND("RT",A1)>0,FIND(" RT",A1)>0,FIND("RT ",A1)>0, FIND(" RT ",A1)>0)

但要小心误报:ART, START, ARTOO, 等等...

此外,您"RT"可能是小写/大写/混合大小写,在这种情况下,您需要规范化该搜索:

=OR(FIND("RT",UPPER(A1))>0,FIND(" RT",UPPER(A1))>0,FIND("RT ",UPPER(A1))>0, FIND(" RT ",UPPER(A1))>0)

我的支票与您说您已经拥有OR的支票不同0/1,因此您可以添加IF到该支票以根据需要转换0/1为:

=IF(OR(FIND("RT",A1)>0,FIND(" RT",A1)>0,FIND("RT ",A1)>0, FIND(" RT ",A1)>0),1,0)

一旦您知道您的 RT 检查正确,并且您的第二列已正确填写,您可以添加到我的原始公式中:

第2 列中1的情况:

=IF(B1=1,MID(A1, FIND("@",A1), FIND(":",A1,FIND("@",A1)) - FIND("@",A1)),"")

第2 列中0的情况:

=IF(B1=0,MID(A1, FIND("@",A1), FIND(":",A1,FIND("@",A1)) - FIND("@",A1)),"")
于 2013-04-29T19:13:12.773 回答