2016-04-04 41 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) 
相关问题