Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Tabelle aus Textdatei erstellen
#1
Hallo zusammen

Ich habe folgendes Problem:

Ich möchte anhand eines Textdokuments eine Tabelle erstellen, die mir Daten von Werkzeugen auflistet. Ein Werkzeug besteht aus der Werkzeuggruppe, einem Namen, Durchmesser, Schnittgeschwindigkeit usw...
Im Anhang befindet sich die Excelliste, die ich aus der Textdatei erstellt habe.
.xlsx   WerkzeugeIMA.xlsx (Größe: 85,1 KB / Downloads: 11)

Nun habe ich zwei Spalten. Viele dieser Werte sind für mich nicht von Bedeutung, jedoch benötige ich die Daten die unterhalb einer Werkzeuggruppe aufgelistet sind. 
In meinem Fall sind das zum Beispiel die Zeilen ab dem Wert [WKZBOHR] (Zeile 38) und alle folgenden Zeilen, bis zur nächsten Leerzeile. Diese Zeilen definieren ein Werkzeug.
Diese Zeilengruppen wiederholen sich mit verschiedenen Gruppentitel (WKZBOHR, WKZAUFW4, WKZFRAES, usw)
Diese Werte möchte ich sortiert in eine horizontale Tabelle kopieren. Ich habe im Tabellenblatt "Sortiert" ein Soll-Muster erstellt.
Jede Werkzeuggruppe soll in einem eigenen Tabellenblatt stehen.

Kann man so etwas mit den herkömmlichen Excelformeln erstellen?

Ich freue mich auf eure Antworten.
Antworten Top
#2
Hallo,

habe eine Lösung gefunden.
Allerdings ist es nicht die eleganteste, da hier sehr viele Matrix-Formeln notwendig waren. Die Berechnung dauert daher ziemlich lange.
Das Endergebnis habe ich in einer separaten Datei gespeichert. Dann kannst du es dir erstmal anschauen und prüfen, ob es so ist, wie du es dir vorgestellt hast.
Du müsstest dann noch entsprechend filtern oder die Daten mittels Pivot aufbereiten.

Zu meiner Lösung:

Formel ab Zelle D2 im Blatt "Wkzschr1":
Code:
=WENN(A2<>"";ZÄHLENWENN(A$2:A2;"[*");"")

Einträge/Formeln im neuen Blatt "Sortiert2":
A1:A2: 1
ab A3: =WENN(MAX(Wkzschr1!$D:$D)=A1;"";A1+1)
ab B1: {=INDEX(Wkzschr1!$A:$B;VERGLEICH(Sortiert2!$A1;Wkzschr1!$D:$D;0);1)} --> Als Matrix-Formel abschließen
C1:W524: {=WENNFEHLER(INDEX(Wkzschr1!$A:$B;KKLEINSTE(WENN((Wkzschr1!$D:$D=$A1);ZEILE(Wkzschr1!$D:$D));SPALTE(B$1));WENN($B1<>"";1;2));"")} --> Als Matrix-Formel abschließen

Ich habe leider nur die Excel-Version 2016. Mit 365 ist sicher eine elegantere Lösung möglich.

Beste Grüße


Angehängte Dateien
.xlsx   WerkzeugeIMA.xlsx (Größe: 353,01 KB / Downloads: 2)
.xlsx   WerkzeugeIMA_FINAL.xlsx (Größe: 104,92 KB / Downloads: 3)
Antworten Top
#3
Vielen Dank für die schnelle Antwort.
Wenn ich das richtig verstanden habe, hast du als erstes alle Zeilen nummeriert, die mit einem Wert "[" beginnen und die Zählung erhöht, sobald eine neue Zelle mit "[" beginnt. Alle leeren Werte hast du ausgeschlossen.
Das verstehe ich.

Was du anschliessend erstellt hast übersteigt meine Excel-Kenntnis.
 Die Daten in der Tabelle "Sortiert2" sind ohne die Werte. Huh
In der Finalen Version in der "Tabelle1" hast du die Werte wider eingesetzt. (Also Nr. 7, Zelle WKZID steht wider dem Wert "leer" gegenüber)
Kannst du mir erklären was du genau gemacht hast?

Die Tabelle1 der Finalen Version ist etwa das, was ich brauche.

Für die Sortierung wäre es jedoch sinnvoll, wenn ich die Bezeichnung z.B. [WKZBOHR] der Datenzeile hinzufügen könnte. Ist das auch möglich?
Antworten Top
#4
Hallo,

entschuldige bitte!
Für die finale Version habe ich einmal die Formel im Blatt "Sortiert2" ab Zelle B1 geändert.
Ändere diese in:
Code:
=WENN(A1=A2;INDEX(Wkzschr1!$A:$B;VERGLEICH(Sortiert2!$A1;Wkzschr1!$D:$D;0);1);"")
Dann werden auch die Werte beigestellt. 
Ich hatte die Formel bei der Erstellung der finalen Version geändert, um die Werte der Spalte B (alles mit "[...") für jede Zeile darzustellen.

Kombiniere in der finalen Version einfach "Tabelle1" und "Tabelle2" (Kopiere die Werte ab Spalte C:W aus dem Blatt "Tabelle1" in das Blatt "Tabelle2").

Beste Grüße
Antworten Top
#5
in VBA

Code:
Sub M_snb()
  For Each it In Sheet1.Columns(2).SpecialCells(2).Areas
      If it.Cells(1).Row > 1 Then If Left(it.Cells(1).Offset(-1, -1), 4) <> "[WKZ" Then it.Columns(1).Offset(-1).Resize(it.Cells.Count + 2) = "=1/0"
  Next
  Sheet1.Columns(2).SpecialCells(-4123, 16).EntireRow.Delete

  For Each it In Sheet1.Columns(2).SpecialCells(2).Areas
    If it.Cells(1).Row > 1 Then
        it.Cells(1).Offset(, 1).Resize(, it.Cells.Count) = Application.Transpose(it.Offset(, -1))
        it.Cells(1).Offset(1, 1).Resize(, it.Cells.Count) = Application.Transpose(it)
    End If
  Next
 
  Columns(1).Resize(, 2).Delete
  Columns(1).SpecialCells(4).EntireRow.Delete
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste