
Ich formatiere einen Datendump aus unserer Software und versuche, den Prozess zu optimieren. Die erste Spalte enthält mehrere Zeichengruppen, die durch _ zwischen den einzelnen Gruppen getrennt sind. Dann nehme ich diese Spalte und verwende Text in Spalten, um sie zu trennen. Das Problem ist, dass ich wirklich nur die ersten beiden Gruppen getrennt brauche, den Rest würde ich zusammen lassen. Im Gegenzug erstelle ich eine Verkettung, um alle kleineren Gruppierungen zusammenzustellen, diese sind jedoch nicht immer konsistent mit der Anzahl der gruppierten Spalten, was zu zusätzlichen _ führt, die ich dann zurückgehen und entfernen muss.
Ich muss dieses Ding jeden Tag bauen, also wäre es großartig, wenn ich die richtige Formel finden könnte, um es zu rationalisieren und ein Makro darin einzubauen. Ich mache das, um die Spalten H und I von A zu trennen, und kombiniere dann mit _ zwischen jeder Zelle JM.
Screenshot des Datenbeispiels:
Antwort1
In solchen Fällen benötigt Excel wirklich einige Datenbankoperatoren wie PART
.
Trotzdem können wir es selbst tun.
1.B
Das ist natürlich einfach.
=LEFT(A2,FIND("_",A2,1)-1)
2.C
Das hier ist nicht wirklich so.
=MID(A2,FIND("_",A2,1)+1,FIND("_",A2,FIND("_",A2,1)+1)-FIND("_",A2,1)-1)
Wenn Sie sich die Zeit nehmen, das zu analysieren, werden Sie sehen, dass es das MID
eines Strings erhält, dessen Bezeichnung ein verschachteltes enthält, FIND
um ein _
innerhalb eines Strings zu finden, der mit einem FIND
eines begonnen hat _
. Lustige Sache.
3.D
Sobald Sie das haben, können Sie den Rest ganz einfach auf verschiedene Arten abrufen. Das hier schien mir eine schnelle Möglichkeit zu sein, die keine beliebigen Werte enthält:
=MID(A2,LEN(B2)+LEN(C2)+3,LEN(A2))