2016-04-04 26 views
0

Ich habe eine große Liste von Menschen, wo jede Person eine Zeile wie folgt hat.Erhalte Daten zwischen zwei und drei Trennzeichen

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

Ich möchte den Firmennamen in einer bestimmten Zelle extrahieren. In diesem Beispiel wäre Microsoft zwischen dem zweiten und dritten Trennzeichen (in diesem Fall ist das Trennzeichen ", "). Wie kann ich das machen?

Momentan verwende ich die Split-Methode (=SPLIT(A2, ", ",false)). Aber es gibt mir vier verschiedene Zellen mit Informationen. Ich möchte nur einen Befehl, um die Firma in einer Zelle auszugeben. Kann jemand helfen? Ich habe verschiedene Dinge ausprobiert, aber ich kann nichts finden, was funktioniert.

Vielleicht einige Regex kann es tun, aber ich bin nicht in Regex.

+0

Schlagwörter fixiert, es ist für Google-Tabelle – niels306

Antwort

2

Kurzantwort

Verwenden Sie INDEX und SPLIT, um den Wert zwischen zwei Trennzeichen zu erhalten. Beispiel

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

Explation

  • SPLIT gibt ein 1 x N-Array.
  • Das erste Argument von INDEX könnte ein Bereich oder ein Array sein.
  • Das zweite und dritte Argument von INDEX sind optional. Wenn der erste Parameter ein Array ist, das nur eine Zeile oder eine Spalte enthält, wird davon ausgegangen, dass das zweite Argument der größeren Seite des Arrays entspricht. Daher muss das dritte Argument nicht verwendet werden.
0

Ein bisschen eklig, aber diese Formel funktioniert, unter der Annahme, Daten in Zelle D3.

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

Gegliedert ist das, was sie tut:

  • Nehmen Sie den mittleren Punkt D3 =MID(D3
  • zwei Zeichen nach dem zweiten Komma FIND(",",D3,FIND(",",D3)+1)+2
  • und die Anzahl der Zeichen zwischen dem Start 2. und 3. Komma, ohne Leerzeichen FIND(",",D3,FIND(",",D3,FIND(",",D3)+1)+1)-FIND(",",D3,FIND(",",D3)+1)-2)
0

Ich füge meine Lieblings-ArratFormula hinzu, mit der Sie die Liste automatisch erweitern können, ohne die Draggind-Formel zu verkleinern. Annahmen:

  1. Sie haben die Liste mit Daten im Bereich "A1: A20"
  2. alle Daten haben gleiche sintax "..., Firmenname, < ..."

In diesem Fall Sie könnten ARRAYFORMULA, eingefügt in die Zelle B1 verwenden:

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

Wenn Ihre Daten immer wie“aussehen doest ist ..., Firmenname, < ..."Oder Sie wollen verschiedene ounput erhalten, verwenden Sie diese Formel in Zelle B1:

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

in dieser Formel:

  • Wechsel 2 in offset 2-0, 1, 2, 3, Name, Position zu erhalten , Firma, Link
  • in skipping 4 4 ist eine Reihe von Punkten

Anzahl der Teile durch die Formel gezählt werden können.

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

und letzte Formel ist:

=QUERY(QUERY(TRANSPOSE(SPLIT(JOIN(", ",A1:A20),", ",0)),"offset 2"), 
"skipping "&len(A1)-len(SUBSTITUTE(A1,",",""))+1) 
Verwandte Themen