2011-11-17 13:40:49 +0000 2011-11-17 13:40:49 +0000
22
22

Excel extrahiert Teilzeichenfolge aus Zeichenfolge

Ich suche nach einer Möglichkeit, eine Teilzeichenkette variabler Länge aus einer Zeichenfolge zu extrahieren.

Meine Zellen werden etwa so aussehen:

ABC - DEF
ABCDE - DEF
ABCD - ABC

Ich möchte die Zeichenkette am Zeichen - teilen, sodass die Zellen wie folgt aussehen:

ABC
ABCDE
ABCD

Dies sollte mit einer Formel und nicht mit VBScript gemacht werden.

Ich verwende Excel 2010

EDIT

Ich habe festgestellt, dass der Datensatz nicht immer das Zeichen - enthält, was bedeutet, dass es keine Änderung geben sollte.

Antworten (5)

26
26
26
2011-11-17 13:51:09 +0000

Dieses Problem kann in zwei Schritte unterteilt werden:

  1. Finden Sie den Index in der Zeichenkette Ihres gewünschten Trennzeichens (in diesem Fall "-" oder " - ").
  2. Ermitteln Sie die Präfix-Teilzeichenkette vom Anfang des Originaltextes bis zum Split-Index.

Die Befehle FIND und SEARCH würden jeweils den Index eines gegebenen needle in einem haystack zurückgeben (FIND unterscheidet zwischen Groß- und Kleinschreibung, SEARCH unterscheidet nicht zwischen Groß- und Kleinschreibung und erlaubt Wildcards). Damit haben wir:

FIND(search_text, source_cell, start_index)

oder in diesem Fall:

FIND(" - ", A1, 1)

Sobald wir den Index haben, brauchen wir das Präfix von source_cell, um den “Split” durchzuführen. MID macht genau das:

MID(source_cell, start_index, num_characters)

Wenn wir beide zusammenfügen, haben wir:

=MID(A1,1,FIND(" - ",A1,1))

mit A1 mit dem Text von ABC - DEF ergibt ABC.

7
7
7
2011-11-17 15:22:44 +0000

Erweiterung der Antwort von Andrew auf der Grundlage Ihrer Bearbeitung: Um die Zeichenkette zu finden, an der geteilt werden soll, verwenden wir die Funktion FIND. Wenn die Funktion FIND die angegebene Zeichenkette nicht finden kann, gibt sie einen #VALUE?-Fehler zurück. Wir müssen also auf diesen Wert prüfen und stattdessen einen Ersatzwert verwenden.

Um auf einen beliebigen Fehlerwert einschließlich #VALUE zu prüfen, verwenden wir die Funktion ISERROR, also:

=ISERROR(FIND(" - ", A1, 1))

Das wird wahr sein, wenn die Funktion FIND die Zeichenkette “ - ” in der Zelle A1 nicht finden kann. Also verwenden wir das, um zu entscheiden, welcher Wert verwendet werden soll:

=IF(ISERROR(FIND(" - ", A1, 1)), A1, MID(A1, 1, FIND(" - ", A1, 1)))

Das besagt, dass, wenn der Find-Befehl einen Fehler zurückgibt, die unmodifizierte Zelle A1 verwendet wird. Andernfalls führen Sie die Funktion MID aus, die Andrew bereits bereitgestellt hat.

2
2
2
2014-08-11 08:59:14 +0000

Vielen Dank @AndrewColeson für Ihre Antwort.

Also nur um das zu ergänzen, wenn Sie alles auf der rechten Seite des - haben wollen, verwenden Sie diesen Code:

=MID(A1,LEN(B1)+3,LEN(A1))

Das ist:

A1 = ABC - DEF
B1 = =MID(A1,1,FIND(" - ",A1,1))
    B1 = ABC
Therefore A1 = DEF

Dieser Code ist ideal, wenn Sie eine unbestimmte Anzahl von Zeichen nach dem - haben.

Zum Beispiel:

Wenn Sie haben:

ABC - DEFG
AB - CDEFGH
...
1
1
1
2014-08-19 22:50:39 +0000

Hier ist eine sehr einfache Möglichkeit, das 5. Zeichen von links aus einer Textzeichenfolge in Excel zu extrahieren:

Angenommen, die Zeichenfolge ABCDEFGHIJ ist in Zelle A1 in einem Excel-Arbeitsblatt gespeichert, dann ergibt die folgende Formel

=RIGHT(LEFT(A1,5),1)

das 5. Zeichen von links in der Zeichenfolge, nämlich E.

0
0
0
2017-05-02 10:15:45 +0000

Die folgende Formel entfernt eine Teilzeichenkette von [TEXTCOLUMN_1]

z. B.: Wenn Sie -./thumb/hello.jpg in thumb/hello.jpg umwandeln möchten, verwenden Sie die folgende Formel

=SUBSTITUTE([TEXTCOLUMN_1],LEFT([TEXTCOLUMN_1],[NUM_OF_CHARACTERS]),)

[TEXTCOLUMN_1] = der Spaltenname, den Sie ändern möchten[NUM_OF_CHARACTERS] = Anzahl der Zeichen auf der linken Seite, die Sie entfernen möchten

Wenn Sie auf der rechten Seite entfernen möchten, verwenden Sie folgende

=SUBSTITUTE([TEXTCOLUMN_1],RIGHT([TEXTCOLUMN_1],[NUM_OF_CHARACTERS]),)