簡體   English   中英

如何使用EXCEL公式從一列單元格中提取具有特定模式的文本?

[英]How can I extract a text that has a specific pattern from a column of cells using EXCEL formula?

請提供幫助,我有一個數據集,其中包含一列文本,其中包含用戶提及的內容及其推文。 我想提取EXCEL推文中提到的所有用戶。 換句話說,我想執行此任務:對於列中的每一行,如果該行的單元格值包含以@開頭並以空格結尾的文本,則將該字符串值放在另一列中,則每個單元格可能包含更多而不是一次出現字符串(一條推文中提到了多個用戶)。問題是,可能與EXCEL公式有關而不與編碼有關? 如果是,請您指導我使用哪個公式。如果沒有,您是否知道完成此任務的好方法/方法? 如果您有記錄良好的代碼可以完成此任務,或者知道可以執行此操作的軟件/工具,那么請不要給我發送文檔鏈接。 感謝您的幫助。

這只是部分解決方案。 它檢索由“ @”和一個空格限制的文本的第一個實例。 對於A1中的數據,在B1中輸入:

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

例如:

在此處輸入圖片說明

我建議您將此任務分為多列,以了解公式如何協同工作以獲取答案。

列標題

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)

您可以根據需要重復上述模式進行多次“提及”。 您可以通過計算每個字符串中有多少@符號並確保編寫足夠的公式來容納該數字來了解這一點。

您可以將以上所有內容合並為一個公式,但是這將是閱讀的野獸。

同樣要記住,如果在字符串的末尾進行“提及”,則上述公式將不對其進行計數。 即在您的問題中,您提到的提及以空格結尾,如果它發生在推文結尾可能不是這種情況。

盡管標有[excel-vba],但您沒有提供任何代碼,並且標題中確實包含公式 ,因此我建議:

  1. @替換為|@ ,其中第一個字符是唯一字符(處理數據副本,全選,HOME>編輯-查找並選擇,替換...,查找內容: @替換為: |@ ,全部替換。 )
  2. 選擇相關列,數據,文本到列,定界,下一步,定界符其他:(僅) | ,完成。
  3. 在第一個完全空的列中:

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

復制之前占用的列數,然后將所有公式向下復制以適合。

這應該可以處理任意一個單元格中不確定數量的@實例,並且在最后一個實例后沒有空格的情況下也是如此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM