Excel / Bestimmter Text formatieren / RegEx

PEASANT KING

Commander
Registriert
Okt. 2008
Beiträge
2.412
Hallöchen,

ich habe eine CSV Datei aus einer Tabelle im SQL Server exportiert und müsste die anpassen.
Der Inhalt sieht folgendermaßen in abgespeckter Form aus:

[TABLE="class: grid"]
[TR]
[TD]

[TD="align: left"]WarehouseID[/TD]
[/TD]
[TD]

[TD="align: left"]WarehouseDesc[/TD]
[/TD]
[/TR]
[TR]
[TD]1[/TD]
[TD]

[TD="align: left"]Standardlager[/TD]
[/TD]
[/TR]
[TR]
[TD]2[/TD]
[TD]

[TD="align: left"]Standardlager.R1[/TD]
[/TD]
[/TR]
[TR]
[TD]3[/TD]
[TD]

[TD="align: left"]Standardlager.R1.F1[/TD]
[/TD]
[/TR]
[TR]
[TD]4[/TD]
[TD]

[TD="align: left"]Standardlager.R1.F1.E1[/TD]
[/TD]
[/TR]
[TR]
[TD]5[/TD]
[TD]

[TD="align: left"]Standardlager.R1.F1.E1.P1[/TD]
[/TD]
[/TR]
[/TABLE]

Wie man unschwer erkennen kann handelt es sich um eine Tabelle die einzelne Lager bzw. Lagerplätze beinhaltet, oder noch genauer gesagt die Lagerstruktur.
Ich würde gerne die Struktur um modeln z.B. aus Standardlager.R1.F1.E1.P1 soll Standardlager.A.1.a.1 werden und so weiter, meine ganze Tabelle beinhaltet 67107 Datensätze allein nur für diese Kombinationen.

R* = Reihe maximal 26
F* = Feld maximal 20
E* = Ebene maximal 8
P* = Platz maximal 15

Man sieht also wie die Gesamtanzahl an Datensätzen zusammen kommt...

Gibt es eine Möglichkeit mittels RegEx das Problem zu lösen und wenn ja wie.
Ich verstehe RegEx nicht und nicht in jedem Programm ist es einheitlich habe ich das Gefühl.
Meine bisherigen Versuche in Excel oder LibreOffice Calc waren eher dürftig, da die Programme iwan bei der Methode die ich versucht habe austeigen und völligen Blödsinn machen.

Meine Methode war bisher erstmal Standardlager.R in Standardlager.A etc um zu wandeln das geht 8 mal gut danach wird aus R10 komischerweise A0 warum auch immer in Excel und in LibreOffice konnte ich das beobachten.

Vielen Dank für Tipps im Voraus und sorry für den langen Post ^^


PS: Wenn es eleganter per SQL geht bin ich auch dafür offen.
 
Zuletzt bearbeitet:
1. Gedanke: warum wandelst du es nicht im sql server um? Ich kenne zwar nur Oracle aber das ist in regexp mächtiger als excel.

2. Kannst du ein Beispiel hochladen?
 
Hier ist ein Bespiel, im .xlsx Format .csv ist wohl verboten auf CB.
 

Anhänge

DJ_We$t schrieb:
Hier ist ein Bespiel,
Was daraus werden soll hab ich persönlich noch nicht verstanden.
Nur das
Standardlager.R1.F1.E1.P1
umgewandelt werden soll in
Standardlager.A.1.a.1

Dafür braucht man ja allein noch keine regulären Ausdrücke.
 
Nein das war ein Beispiel, wenn es sich um z.B. Standardlager.R10.F2.E1.P15 handelt soll es z.B. Standardlager.J.2.a.15 werden.

Reihe = A-Z
Feld = 1-20
Ebene = a-h
Platz = 1-15
 
Und wenn du in der Spalte daneben einfach schreibst:

=IF(B3="Standardlager.R1.F1.E1.P1";"Standardlager.A.1.a.1";B3)
bzw.
=WENN(B3="Standardlager.R1.F1.E1.P1";"Standardlager.A.1.a.1";B3)

Soweit ich das sehe geht es dir ja nur um die Optik der Tabelle, oder?
 
Zuletzt bearbeitet:
Nee so einfach ist das nicht, es geht darum die Lagerstruktur bzw. deren Bezeichnungen um zu stellen.
 
Ok, dann vielleicht so:

- schreib in Spalte C: =WENN(B:B="Standardlager.R1.F1.E1.P1";"Standardlager.A.1.a.1";B:B)

- kopiere die ganze Tabelle in ein .txt Dokument

- Kopier den Kram wieder zurück in ein EXCEL Dokument

- Lösche Spalte B
 
DJ_We$t schrieb:
Nee so einfach ist das nicht, es geht darum die Lagerstruktur bzw. deren Bezeichnungen um zu stellen.
Dann beschreib doch mal ein klares Schema oder gib zumindest genügend Beispiele an den das nachzuvollziehen ist.
 
Ich habe doch ein klares Schema beschrieben...

Ein Lager ist laut meiner Beispieldatei wie folgt aufgebaut:

Lagername.Reihe.Feld.Ebene.Platz

Die Reihen sind von R1 - R26 durch nummeriert
Die Felder sind von F1 - F20 durch nummeriert
Die Ebenen sind von E1 - E8 durch nummeriert
Die Plätze sind von P1 - P15 durch nummeriert

So stellt es sich in meiner Beispiel xlsx dar.

Die neue Struktur soll wie folgt sein:

Alle R1 - R26 sollen durch die Buchstaben A - Z ersetzt werden also Beispiel R1 = A; R26 = Z
Alle F1 - F20 sollen durch reine Zahlen 1 - 20 ersetzt werden Beispiel F1 = 1; F20 = 20
Alle E1 - E8 sollen durch reine Buchstaben a - h ersetzt werden Beispiel E1 = a; E8 = h
Alle P1 - P15 sollen durch reine Zahlen 1- 15 ersetzt werden Beispiel P1 = 1; P15 = 15

​Hoffe es ist nun klarer geworden.

Danke übrigens für eure Geduld.
 
Zuletzt bearbeitet:
Moin, dein Avatr und die damit gewiss verbundene Überzeugung gefällt mir. Darum habe ich mir die Arbeit gemacht ...

Die Lösung ist mit Power Query erstellt, die einzelnen Schritte sind bei Verwendung von PQ / Daten | Abrufen und transformieren im rechten Seitenfenster nachvollziehbar.
 

Anhänge

Das ist lieb mir eine Lösung fertig zu präsentieren, ich hoffe aber das ich verstehen kann bzw. nachvollziehen kann wie es gemacht wurde, denn ich will ja auch was dabei lernen.

 
Zurück
Oben