我的头发超过30,000 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
开头,意味着re-tweet
。它返回1表示是,0表示否。
我想要完成的是在两列中创建一个公式。如果RT列的值为1,则会获取用户名;如果RT列的值为0,则会在第二列中获取用户名。由于用户名具有任意长度,因此我不确定如何进行此操作。
实施例
RT @Just_Sports: | 1 | @Just_Sports | 0
@brettjuliano | 0 | | @brettjuliano
答案 0 :(得分: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检查正确,并且您的第二列填写正确,您可以添加到我原来的公式:
第二栏 1 的案例:
=IF(B1=1,MID(A1, FIND("@",A1), FIND(":",A1,FIND("@",A1)) - FIND("@",A1)),"")
第二栏 0 的情况:
=IF(B1=0,MID(A1, FIND("@",A1), FIND(":",A1,FIND("@",A1)) - FIND("@",A1)),"")