2016-04-04 38 views
0

我有一大羣人,每個人都有一條這樣的線。獲取第二個和第三個分隔符之間的數據

Bill Gates, IT Manager, Microsoft, <https://www.linkedin.com/in/williamhgates> 

我想提取特定單元格中的公司名稱。在這個例子中,它是Microsoft,它位於第二和第三個分隔符之間(在這種情況下,分隔符是", ")。我怎樣才能做到這一點?

現在我正在使用拆分方法(=SPLIT(A2, ", ",false))。但它給了我四個不同的信息單元。我只想在一個單元格中輸出公司的命令。誰能幫忙?我嘗試了不同的東西,但我似乎無法找到任何可行的東西。

也許一些正則表達式可以做到這一點,但我沒有進入正則表達式。

+0

標籤固定的,它是谷歌的電子表格 – niels306

回答

2

簡短回答

使用INDEX和SPLIT獲取兩個分隔符之間的值。實施例

=INDEX(SPLIT(A1,", ",FALSE),2) 

Explation
  • SPLIT返回一個1×N陣列。
  • INDEX的第一個參數可能是一個範圍或數組。
  • INDEX的第二個和第三個參數是可選的。如果第一個參數是隻有一行或一列的數組,那麼它將假定第二個參數對應於數組的較大邊,所以不需要使用第三個參數。
0

有點討厭,但是這個公式的工作原理,假設單元格D3中的數據。

=MID(D3,FIND(",",D3,FIND(",",D3)+1)+2,FIND(",",D3,FIND(",",D3,FIND(",",D3)+1)+1)-FIND(",",D3,FIND(",",D3)+1)-2) 

看,這就是它的作用:

  • 以D3 =MID(D3的中間點
  • 第二逗號FIND(",",D3,FIND(",",D3)+1)+2
  • 與之間的字符數之後開始兩個字符第二和第三個逗號,不包括空格FIND(",",D3,FIND(",",D3,FIND(",",D3)+1)+1)-FIND(",",D3,FIND(",",D3)+1)-2)
0

我會添加我最喜歡的ArratFormula,您可以使用它自動展開列表,而不用拖拉式公式。假設:

  1. 你必須在範圍內的數據列表 「A1:A20」
  2. 所有數據都相同sintax 「......,公司名稱,< ...」

在這種情況下,你可以使用ARRAYFORMULA,在B1單元格粘貼:

=ArrayFormula(REGEXEXTRACT(A1:A20,", ([^,]+), <")) 

如果您的數據行的事總是看起來像」 ...,公司名稱,< ...「或你希望得到不同ounput,用這個公式在單元格B1:

=QUERY(QUERY(TRANSPOSE(SPLIT(JOIN(", ",A1:A20),", ",0)),"offset 2"),"skipping 4") 

在該式中:

  • 變化2在offset 2爲0,1,2,3得到名稱,位置,公司,在skipping 4 4鏈路
  • 是多個項目

項目數可由式計數:

=len(A1)-len(SUBSTITUTE(A1,",",""))+1 

和最終公式是:

=QUERY(QUERY(TRANSPOSE(SPLIT(JOIN(", ",A1:A20),", ",0)),"offset 2"), 
"skipping "&len(A1)-len(SUBSTITUTE(A1,",",""))+1) 
相關問題