2015-04-07 101 views
1

請幫助,我有一個數據集,其中包含一列文字,其中包含用戶提及和他們的推文。我想提取EXCEL中推文中提到的所有用戶。換句話說,我想要完成這項任務:如果行的單元格值包含文本以@開始並以空格結束,則將該字符串值放入另一列中,對於列中的每一行,每個單元格可能包含更多而不是一個字符串的發生(在推文中提到的用戶不止一個)。問題是EXCEL公式可能與編碼無關嗎?如果是的話,你能否指導我使用哪個公式?如果不是,你知道完成這個任務的好方法嗎?請不要發送鏈接到文檔的鏈接,如果您有完善的文檔代碼來完成這項任務,或者知道可以做到這一點的軟件/工具,那將非常棒。感謝您的幫助提前。如何使用EXCEL公式從一列單元格中提取具有特定模式的文本?

回答

2

我建議你打破這個任務分解成多個列,理解公式是如何工作的一起去找你的答案。

列標題

Column A = Your Data 
Column B = First Start = Find the first occurrence of @ 
Column C = First End = Find the end of the first occurrence with a space 
Column D = Second Start = Find the Second occurrence of @ 
Column E = Second End = Find the end of the second occurrence with a space 
Column F = First Twitter Account = MID the First Start/End 
Column G = Second Twitter Account = Mid the Second Start/End 

公式

Column A = "An Example @Tweet with @two mentions" 
Column B = Find("@",A2) 
Column C = FIND(" ",A2,B2) 
Column D = FIND("@",A3,C3) 
Column E = FIND(" ",A3,D3) 
Column F = MID(A2,B2,C2-B2) 
Column G = MID(A2,D2,E2-D2) 

您可以重複上面的圖案爲儘可能多的 「提到」 需要。通過計算每個字符串中有多少個@符號,並確保編寫足夠的公式以適應該編號,您可以瞭解到這一點。

你可以將上述所有內容混合成一個公式,但它會成爲一個閱讀的野獸。

請記住,如果在字符串的END處出現「提及」,則上述公式將不會計入它。也就是說,在你的問題中,你提到提到的是在一個空間中結束,如果它發生在推文結束時可能不是這種情況。

+0

感謝您的步驟,這有助於我瞭解公式。它的作品非常好:) @josh –

+0

記得標記你使用的答案,所以這個問題被標記爲完整。謝謝! –

+0

謝謝你的幫助。我已經使用所有這個公式,它的工作:) –

2

這只是一個部分解決方案。它檢索由「@」和一個空格限定的文本的第一個實例。隨着在A1,數據B1輸入:

=LEFT(MID(A1,FIND("@",A1)+1,9999),FIND(" ",MID(A1,FIND("@",A1)+1,9999))) 

例如:

enter image description here

+0

非常感謝,它的工作完美:) @加里的學生 –

1

雖然標有[Excel的VBA]爲您提供沒有代碼,做有公式在您的標題,所以我建議:

  1. 更換@有說|@其中第一個字符是獨特的(工作您的數據的副本,全選,首頁>編輯 - 查找&選擇,替換...,查找內容:@替換爲:|@,全部替換。)
  2. 選擇相關列DATA,Text to Columns,Delimited ,下一步,分隔符其他:(僅)|,F inish。
  3. 在第一個完全空列:

    =IF(LEFT(A1)="@",LEFT(A1,FIND(" ",A1)),"") 
    

跨越如以前被佔領,所有的公式,然後複製下來,以滿足儘可能多的列複製。

這應該處理任何一個單元格中不確定數量的@實例,以及最後一個實例後面沒有空格的地方。

+0

謝謝你的幫助。我已經使用了所有這個公式,它的工作:) –

+0

@Arianna感謝*你*的反饋意見。 – pnuts

相關問題