Beliebt

Google Sheet - Extrahieren Sie mehrere E-Mails aus einer Zelle basierend auf einer Bedingung - Arbeitsblattfunktion, Google-Tabellen

Ich versuche, eine Reihe von E-Mails aus einer Zelle basierend auf einer Bedingung zu extrahieren.

In der Praxis habe ich eine Zelle mit folgendem Text:

emailAddress: {u"name": u"STAFF", u"address": u"[email protected]"}
status: {u"response": u"none", u"time": u"1601-01-01T00:00:00Z"}
type: required

emailAddress: {u"name": u"First1 Last1", u"address": u"[email protected]"}
status: {u"response": u"accepted", u"time": u"2019-07-31T14:55:01.9766714Z"}
type: optional

emailAddress: {u"name": u"First3 Last3", u"address": [email protected]"}
status: {u"response": u"accepted", u"time": u"2019-07-31T14:57:47.766Z"}
type: optional

Letztendlich m├Âchte ich in einer einzelnen durch ein Koma getrennten Zelle alle E-Mail-Adressen der Personen haben, die die Kalendereinladung angenommen haben (d. H. U "Antwort": u "angenommen").

Ich habe es in wenigen Schritten geschafft:

  1. =SPLIT(A2,"emailAddress",FALSE,TRUE) => dies teilt den obigen Text in 3 Zellen
  2. =IF(REGEXMATCH(B2,"accepted"),REGEXEXTRACT(B2,"[A-z0-9._%+-][email protected][A-z0-9.-]+.[A-z]{2,4}"),"") => dies extrahiert die E-Mail-Adresse, wenn die Zelle das Wort "akzeptiert" enth├Ąlt
  3. =TEXTJOIN(",",TRUE,B3:Z3) => Dies verkettet alle E-Mail-Adressen in einer einzigen Zelle

Das alles m├Âchte ich in einer einzigen Zelle tunaber ich bin nicht sicher wie. Die naheliegende L├Âsung w├Ąre, den zweiten Schritt auf einen Bereich anstatt auf eine bestimmte Zelle anzuwenden, aber ich konnte nicht herausfinden, wie. Vielen Dank f├╝r Ihre Hilfe!

Hier ist ein Blatt mit der Eingabezelle sowie den von mir verwendeten Formeln: https://docs.google.com/spreadsheets/d/1yi-FYmTIBoDyPrU1SbtdbtNMWizyR9cKTgJr9CuabxM/edit?usp=sharing

Antworten:

0 f├╝r Antwort Ôäľ 1

Ich habe die L├Âsung f├╝r das Problem gefunden, die sich drehteinfacher als erwartet. Alles, was ich tun musste, war, alle 3 Formeln in 1 zusammenzuf├╝hren und alles unter der "Arrayformel" zu definieren. In der Praxis sieht es so aus:

ArrayFormula(TEXTJOIN(",",TRUE,IF(REGEXMATCH(SPLIT(D2,"emailAddress",FALSE,TRUE),"accepted"),Regexextract(SPLIT(D2,"emailAddress",FALSE,TRUE),"[A-z0-9._%+-][email protected][A-z0-9.-]+.[A-z]{2,4}"),"")))


Lies jetzt