2017-03-15 2 views
1

Ich muss einige Spalten aus einer Zelle erstellen, die durch "_" getrennten Text enthält.Wie kann ich eine Zeichenfolge durch Unterstreichung (_) in Google-Tabellen mit Regex trennen?

Der Eingang sei: campaign1_attribute1_whatever_yes_123421

Und die Ausgabe hat in verschiedenen Spalten (eine pro Feld) sein, ohne „_“ und ohne die endgültige Zahl, wie folgt: Campaign1 attribute1 was auch immer ja

Es muss mit einer Regex Formel erfolgen!

Hilfe!

Vielen Dank im Voraus (und sorry für mein Englisch)

+0

Die Antwort zu diesem Q war hier: http://stackoverflow.com/questions/26137115/arrayformula-does-not-work-with-split –

Antwort

1

Um dies zu lösen, die Sie

Lösung der SPLIT und REGEXREPLACE Funktionen verwenden können:

Text  - A1 = "campaign1_attribute1_whatever_yes_123421" 
Formula - A3 = =SPLIT(REGEXREPLACE(A1,"_+\d*$",""), "_", TRUE) 

Erläuterung:

in der Zelle A3 Wir benutzen SPLIT (text, delimiter, [split_by_each]), der Text ist in diesem Fall mit Regex = REGEXREPLACE (A1, "_ + \ d $“,‚‘) * 123421 zu entfernen, Hexe geben Sie eine Spalte für jedes Wort, begrenzt durch‚

A1 = "campaign1_attribute1_whatever_yes_123421" 
A2 = "=REGEXREPLACE(A1,"_+\d*$","")" //This gives you : *campaign1_attribute1_whatever_yes* 
A3 = SPLIT(A2, "_", TRUE) //This gives you: campaign1 attribute1 whatever yes, each in a separate column. 
+0

Bitte geben Sie eine Art Erklärung oder Erzählung über Ihre Antwort. Auch wenn es richtig sein mag, ist nur eine direkte Antwort oft nutzlos. –

1

=REGEXEXTRACT("campaign1_attribute1_whatever_yes_123421","(("&REGEXREPLACE("campaign1_attribute1_whatever_yes_123421","((_)|(\d+$))",")$1(")&"))")

Was ist das ganze _ mit Klammer ersetzt Erstellen Sie Capture-Gruppen, wobei Sie auch die Ziffernfolge am Ende ausschließen und dann die gesamte Zeichenfolge mit Klammern umgeben.

enter image description here

Wir haben dann regex Extrakt verwenden, um actuall die aus Stücke ziehen, um die Gruppen automatisch schieben sie in ihre eigenen Zellen/Spalten

enter image description here

+0

, um es in arrayFormula umzuwandeln: '= ArrayFormel (REGEXEXTRACT (A1: A13," (("& REGEXREPLACE (A1: A13," ((_) | (\ d + $)) ",") $ 1 (") &")) "))' –

0

ich es schließlich gestern in Stackoverflow heraus (Spanisch): https://es.stackoverflow.com/questions/55362/c%C3%B3mo-separo-texto-por-guiones-bajos-de-una-celda-en ...

Es war doch einfach genug ...

Der Grund fragte ich nur in regex und für Google-Blätter zu sein, weil ich es in Google Data Studio (gleiche Regex Funktionen als Tabellen) verwenden muß

Um jede Spalte nur verwendet diese regex Extrakt Funktion zu erhalten:

1. Säule: REGEXP_EXTRACT(Campaña, '^(?:[^_]*_){0}([^_]*)_')

2. Säule: REGEXP_EXTRACT(Campaña, '^(?:[^_]*_){1}([^_]*)_')

3. Spalte: REGEXP_EXTRACT(Campaña, '^(?:[^_]*_){2}([^_]*)_')

etc ... Die einzige Sache, die in der Formel geändert werden muss, um die Spalten zu wechseln, ist die Zahl innerhalb von {}, (Spaltennummer - 1). Wenn Sie nicht die endgültige Nummer haben, legen Sie nicht das letzte "_".

Schließlich sollten Sie daran denken, alle berechneten Felder erneut auszuführen, da (z. B.) ein Fehler mit CPC, CTR und anderen AdWords-Metriken auftritt, die automatisch berechnet werden.

Hoffe es hilft!

Verwandte Themen