Wie kann man den Rest der Informationen aus einer Zelle entfernen und nur einen Teil behalten?

Wie kann man den Rest der Informationen aus einer Zelle entfernen und nur einen Teil behalten?

wenn möglich, würde ich gerne alles entfernen und die Bestellnummer erhalten. Das Problem ist: Der Speicherort der Bestellnummer und manchmal beginnt sie mit Aoder 1.

  • Zellenbeispiel A1:{"Ref":"bad order","OrderId":"ABSER27"}
  • Zellenbeispiel A2:{"OrderId":"ABSER27"}
  • Zellenbeispiel A3:{"order_id":"12345678","customer_email":"[email protected]"}

  • Gewünschtes Ergebnis: B1 = ABSER27
  • Gewünschtes Ergebnis: B3 = ABSER27
  • Gewünschtes Ergebnis: B3 = 12345678

Antwort1

Mit der Excel-Funktion „Text in Spalte“ wird das Leben einfacher.

Schritt 1 - Die Saiten in Spalten zerlegen

Entfernen Sie zunächst die führenden {und nachfolgenden }. Sie können dies mit der Funktion „replace“ oder, wenn Sie dies möchten, mit einer Funktion tun =MID(A1,2,LEN(A1)-2).

Das Ergebnis sind Quelldaten wie: Bildbeschreibung hier eingeben

Wählen Sie als Nächstes Spalte A (ohne { }) aus und wählen Sie im Menüband Daten > Datentools > Text in Spalten. Verwenden Sie die folgenden Optionen: Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben

Dann werden Ihnen die Informationen übersichtlich in 4 Spalten präsentiert: Bildbeschreibung hier eingeben

Schritt 2 - Bestellnummer aus den Spalten auswählen

Danach können Sie tun, was Sie wollen, um die Bestellnummer abzurufen. Eine einfache Möglichkeit wäre, eine Formel beispielsweise in Spalte G einzugeben, wobei Zelle G1 die folgende Formel enthält:

=INDIRECT("RC"&MATCH("order*id",A1:F1,0)+1,FALSE)

Da „OrderId“ auch die Form „order_id“ aus dem Beispiel haben könnte, verwenden wir *für die Übereinstimmung ein Platzhalterzeichen. Die Formel holt dann die Zelle rechts neben „OrderId“. Bildbeschreibung hier eingeben

Antwort2

Für diese Art von Problemen verwende ichRegex Suchen/Ersetzen-Add-In
(Ich bin in keiner Weise damit verbunden, nur ein begeisterter Benutzer)

Dabei können Sie reguläre Ausdrücke verwenden, zB:
=RegExReplace(UPPER(A1),".*ORDER_?ID"":""([^""]+)"".*","$1")

Bildbeschreibung hier eingeben

Antwort3

Verwenden Sie in Zelle B2 die Funktion Mid

Text =A2

Startnummer = Verwenden Sie die Suchfunktion (bei der Suche wird die Groß-/Kleinschreibung nicht beachtet, bei Suchen hingegen schon), um die Position der „ID“ in Zelle A2 beginnend bei Position 1 zu lokalisieren und fügen Sie dann die Anzahl der Zeichen zur Bestellnummer hinzu.

Die Anzahl der Zeichen ist die Differenz zwischen der Startnummer und der nächsten Anführungszeichenposition (ASCII-Zeichen 34).

=MID(A2,SEARCH("id",A2,1)+5,(FIND(CHAR(34),A2,(SEARCH("id",A2,1)+5))-(SEARCH("id",A2,1)+5)))

BEARBEITEN, um zusätzliche „ID/ID“ im E-Mail-Feld oder in der Bestell-ID zuzulassen, ohne dass ein Add-In oder VBA erforderlich ist

Fügen Sie wahre und falsche MID-Anweisungen in eine IF-Anweisung ein, die überprüft, ob mehr als eine ID vorhanden ist und ob die E-Mail-Adresse nicht das erste durch Kommas getrennte Feld ist.

 =IF(
AND((LEN(A2)-LEN(SUBSTITUTE(UPPER(A2),("ID"),"")))/LEN("ID")>1,ISERROR(FIND("@",LEFT(A2,FIND(",",A2)-1),1))=FALSE),

MID(A2,
FIND("~",SUBSTITUTE(UPPER(A2),"ID","~",2),1)+5,
FIND(CHAR(34),A2,FIND("~",SUBSTITUTE(UPPER(A2),"ID","~",2),1)+5)-(FIND("~",SUBSTITUTE(UPPER(A2),"ID","~",2),1)+5)
),

MID(A2,
SEARCH("ID",A2,1)+5,
(FIND(CHAR(34),A2,(SEARCH("ID",A2,1)+5))-(SEARCH("ID",A2,1)+5))
)
)

Antwort4

Basierend auf den von Ihnen angegebenen Informationen – die Bestellnummer läuft vom ersten Aoder 1im Feld bis zum ersten folgenden "(Anführungszeichen) – ist dies nicht schwierig. Am einfachsten ist es, wenn wir einige „Hilfsspalten“ verwenden:

  • C1=IFERROR(FIND("A",$A1), LEN($A1)+1)
  • D1=IFERROR(FIND("1",$A1), LEN($A1)+1)
  • E1=MIN($C1,$D1)
  • F1=FIND("""", $A1, $E1)

C1und D1sucht das erste Abzw. 1in Zelle  A1. Wenn keines vorhanden ist, FINDgibt einen Fehler zurück, und mit IFERRORsetzen wir den Wert auf die Länge von A1plus eins; also den Offset des nächsten Zeichens nach dem letzten Zeichen.  E1ist das kleinere davon; wenn also mindestens ein Aoder 1gefunden wurde, E1zeigt auf das erste. Wenn keine vorhanden sind, ist es ebenfalls Länge+1.

Und F1findet nun das erste "nach dem obigen. Wenn kein vorhanden ist ", ist dies ein Fehler. Wenn kein Aoder ein vorhanden war 1, E1ist die Länge A1+1 und somit F1ebenfalls ein Fehler.

Also endlich haben wir

  • B1=IF(ISERROR($F1), "ERROR", MID($A1, $E1, $F1-$E1))

Wenn F1ein Fehler auftritt, zeigen Sie einfach einen ERRORIndikator an. Andernfalls extrahieren Sie die Teilzeichenfolge aus der Mitte von A1, beginnend an der Position von Aoder 1und mit einer Länge bis zum begrenzenden (dieses jedoch nicht einschließenden) ".

verwandte Informationen