Ich habe in einer Tabelle Messergebnisse, bei der eine Messung pro Zeile aufgeführt ist. In der Zeile sind dann Messwerte, bei denen hinter dem Messergebnis ein C steht, wenn das Ergebnis okay ist. Ein N,M oder H stehen dahinter, wenn der Messwert Niedrig,Mittel oder hoch ist. Jetzt hätte ich gern in einem anderen Registerblatt oder unter der Originaltabelle eine Ausgabe aller Messwerte, die ein N,M oder H haben. Ich hatte das schon mit der Formel "FILTER" probiert, aber dann habe ich ja leere Spalten dazwischen.
Ich habe das mal als Beispieltabelle hinzugefügt.
Vielen Dank im Voraus schon einmal für Eure Hilfe.
Sie können auch VBA verwenden, um die gewünschten Ergebnisse zu erzielen. Hier ist ein Beispiel-Code, der Ihnen helfen könnte:
Code:
Sub FilterData() Dim ws1 As Worksheet, ws2 As Worksheet Dim lastRow As Long, i As Long Dim criteria As Variant
Set ws1 = Sheets("Sheet1") 'Ändern Sie "Sheet1" in den Namen Ihres Quellblatts Set ws2 = Sheets("Sheet2") 'Ändern Sie "Sheet2" in den Namen Ihres Zielblatts lastRow = ws1.Cells(Rows.Count, 1).End(xlUp).Row 'Letzte Zeile in Spalte A finden criteria = Array("N", "M", "H") 'Kriterien festlegen
For i = 2 To lastRow 'Von Zeile 2 bis zur letzten Zeile durchlaufen If IsNumeric(Application.Match(ws1.Cells(i, 4), criteria, 0)) Then 'Überprüfen, ob der Wert in Spalte D eines der Kriterien erfüllt ws1.Rows(i).Copy ws2.Cells(Rows.Count, 1).End(xlUp).Offset(1) 'Zeile kopieren und in das Zielblatt einfügen End If Next i End Sub
Dieser Code durchläuft alle Zeilen in Ihrem Quellblatt und überprüft, ob der Wert in Spalte D eines der Kriterien (N, M oder H) erfüllt. Wenn ja, wird die gesamte Zeile kopiert und in das Zielblatt eingefügt. Sie müssen den Code anpassen und die Namen Ihrer Arbeitsblätter angeben. Sie können diesen Code in einem VBA-Modul einfügen und ausführen.
Beispiel Datei:
Mappetest11.xlsm (Größe: 19,99 KB / Downloads: 4)
Hoffe das es Ihnen in Ihren vorhaben weiterhilft.
Folgende(r) 1 Nutzer sagt Danke an Niko für diesen Beitrag:1 Nutzer sagt Danke an Niko für diesen Beitrag 28 • Torsten67
der Makrovorschlag von Niko war schon mal ein guter Ansatz, nur es sollte eine spezifische Auswertung erfolgen. Deshalb der geänderte Vorschlag (für nicht 365 Nutzer) im Anhang.
Gruß Stephan
Folgende(r) 1 Nutzer sagt Danke an Stephan für diesen Beitrag:1 Nutzer sagt Danke an Stephan für diesen Beitrag 28 • Torsten67
03.04.2023, 18:51 (Dieser Beitrag wurde zuletzt bearbeitet: 03.04.2023, 19:00 von Torsten67.)
Hallo Shift-Del,
Vielen Dank für Deine schnelle Antwort. Die Tabelle sieht genau so aus, wie ich es mir vorgestellt habe. Also habe es heute auch gleich ausprobiert. Wenn ich die Formel allerdings eingebe, erhalte ich nur #WERT in der Zelle. Hallo Nico,
Vielen Dank für die schnelle Antwort. Der VBA-Code überprüft leider nur die Spalte D auf das Vorhandensein der Buchstaben N,M und H und nicht die gesamte Zeile. Daher erfolgt dann auch nur eine Ausgabe, obwohl in anderen Zellen auch noch Überschreitungen vorhanden sind. In der ersten Zeile gibt es ja zum Beispiel ein M in Spalte H. Also sollte auch die erste Zeile mit allen Buchstaben gefunden werden. Ich kenne mich leider mit VBA nicht aus, so dass ich es selber nicht anpassen kann.
Vielen Dank für die Anwort. Auch der VBA Code passt leider nicht ganz auf meine Tabelle, weil er von einer Regelmäßigkeit der Buchstaben ausgeht. Nicht in jeder zweiten Spalte steht ein Buchstabe. In meiner Originaltabelle habe ich das leider falsch dargestellt.
vielleicht passt diese VBA-Lösung zu deiner Frage. Der VBA-Code setzt nicht mehr voraus, dass in jeder zweiten Spalte ein Buchstabe ("H", "C", ...) steht. Er sucht in jeder Zeile einfach bis zu der Spalte, die in der Konstanten 'END_SPALTE_MESSWERTE' angegeben ist - hier z.B. die Spalte 26 (Spalte Z).
Eine Excel-Datei mit der Lösung habe ich beigefügt.
Nach ein bißchen einlesen,probieren und umbauen habe ich jetzt das, was ich mir vorgestellt habe. Ich habe einige Stunden damit verbracht, das Problem mit einer oder mehreren Formeln und Hilfstabellen hinzubekommen, bin aber leider gescheitert. Dieser Weg ist viel schöner und schneller und hat mich inspiriert, mich jetzt doch endlich mal mit der VBA-Programmierung zu beschäftigen.
Vielen Dank an Euch !! Das spart mit jetzt jeden Tag einiges an Zeit.