Ganze Zeilen in eine andere Tabelle kopieren, wenn eine bestimmte Bedingung erfüllt ist.

Hallo,

ich arbeite mit Office 2007 unter Win7. In Excel habe ich eine Tabelle EINS mit 5 Zeilen und 3 Spalten angelegt. Immer wenn von der gesamten Tabelle EINS (Zeilen 1-5)  in der 3. Spalte C ein bestimmter Wert enthalten ist, möchte die gesamte Zeile mit allen 3 Spalten in eine neue Tabelle ZWEI kopieren.

Beispiel:

Tabelle EINS

20,00 12,00 Wert
76,98 16,98
38,10 12,99 Wert
12,99 23,00 Wert
14,03 14,98

Ergebnis in Tabelle ZWEI

20,00 12,00 Wert
38,10 12,99 Wert
12,99 23,00 Wert

Gibt es dazu über Funktionen eine Möglichkeit ohne zu programmieren?

 Gruß Dieter

|
Antworten Antwort auf gelöschte Nachricht

du könntest deine Tabelle EINS nach dem Wert filtern und dann die gefilterte Liste kopieren. Oder du schaust dir mal den Spezialfilter an und richtest den in Tabelle ZWEI ein und rufst ihn von dort aus auf.

Hallo Claus,

danke für Deine schnelle Antwort. Die Situation ist komplexer, deshalb möchte ich es nicht mehr manuell sondern automatisch erzeugen.

Bei meiner ersten Anfrage habe ich es vereinfacht und nur eine Tabelle EINS genannt. Ich habe aber eine Excel gestützte Einnahmen-Überschuss-Rechnung mit 12 Tabellen - je Monat eine Tabelle. Nun möchte ich eine Statistik erstellen, in dem ich beliebig viele Zeilen aus den 12 monatlichen Tabellen mit einem bestimmten Wert, der immer in der gleichen Spalte vorhanden sein muss, in eine neue Tabelle STATISTK automatisch kopieren lasse.

Es geht also um das Zusammensetzen (mergen) von Tabellen nach bestimmten Kriterien.

Gibt es dafür auch Lösungsmöglichkeiten?

Gruß Dieter

   

1 Person fand diese Antwort hilfreich

·

War diese Antwort hilfreich?

Das war leider nicht hilfreich.

Toll! Vielen Dank für Ihr Feedback.

Wie zufrieden sind Sie mit dieser Antwort?

Vielen Dank für Ihr Feedback. Das hilft uns, die Website zu verbessern.

Wie zufrieden sind Sie mit dieser Antwort?

Vielen Dank für Ihr Feedback.

Antworten Antwort auf gelöschte Nachricht

du kannst in Tabelle ZWEI in A1 auch eingeben:

=WENNFEHLER(INDEX(Eins!A:A;KKLEINSTE(WENN(Eins!$C$1:$C$1000="Wert";ZEILE($1:$1000));ZEILE(A1)));"")

die Eingabe mit STRG+Shift+Enter abschließen und nach rechts und unten ziehen.

Hallo Claus,

ich habe es ausprobiert; verstehe aber nicht Deinen Hinweis "und nach rechts und unten ziehen".

Derzeit kommt bei meinem Test in A1 nur die Zahl 41675 an. Was könnte ich falsch gemacht haben?

Gruß Dieter

58 Personen fanden diese Antwort hilfreich

·

War diese Antwort hilfreich?

Das war leider nicht hilfreich.

Toll! Vielen Dank für Ihr Feedback.

Wie zufrieden sind Sie mit dieser Antwort?

Vielen Dank für Ihr Feedback. Das hilft uns, die Website zu verbessern.

Wie zufrieden sind Sie mit dieser Antwort?

Vielen Dank für Ihr Feedback.

Antworten Antwort auf gelöschte Nachricht

.. über Daten => Konsolidieren auf einem anderen Blatt zusammenfassen....fasst so deine Tabellen in einer Pivot-Tabelle zusammen... ein Loop durch

Hallo Claus,

Deine Formel über eine Tabelle EINS:

 =WENNFEHLER(INDEX(Eins!A:A;KKLEINSTE(WENN(Eins!$C$1:$C$1000="Wert";ZEILE($1:$1000));ZEILE(A1)));"")

funktioniert sehr gut.

Was wäre bei mehreren Tabellen die einfachste und schnellste Lösung (Daten-Konsolidierung, Pivot oder Loop), wenn eine längere Laufzeit nicht stört? Pivot hört sich kompliziert an. Loop hört sich gut an. Konsolidierung wäre schön, wenn es einfach zu erreichen ist.

Gruß Dieter

5 Personen fanden diese Antwort hilfreich

·

War diese Antwort hilfreich?

Das war leider nicht hilfreich.

Toll! Vielen Dank für Ihr Feedback.

Wie zufrieden sind Sie mit dieser Antwort?

Vielen Dank für Ihr Feedback. Das hilft uns, die Website zu verbessern.

Wie zufrieden sind Sie mit dieser Antwort?

Vielen Dank für Ihr Feedback.

Antworten Antwort auf gelöschte Nachricht

..ich gehe mal davon aus, dass du keine Überschriften in deinen Tabellen hast und der Bereich über die Spalten A:D geht.

Hallo Claus,

vielen Dank für Deine große Mühe. Ich habe allerdings überall in den Zeilen 1-3 die gleichen Überschriften und der Bereich geht über die Spalten A-H.

Gleichwohl ist der angebotene Weg über Deine Programmierung nicht mein Favorit. Denn ich bevorzuge eine Lösung, die ich auch vollständig nachvollziehen kann.  Da ich die von Dir verwendete  Programmier-sprache  nicht kenne, sondern noch aus der alten Schule von Assembler, Algol, FORTRAN, Cobol usw. der 70er Jahre komme, müsste ich mich in die neue Pragrammiersprache kurz einarbeiten.

Ich möchte mir jedoch diesen Aufwand ersparen, denn meine Anforderung ist ziemlich einmalig. Deshalb die Frage, ob es einen alternativen einfacheren Weg über die Funktionen gibt?

Herzliche Grüße

Dieter

    

War diese Antwort hilfreich?

Das war leider nicht hilfreich.

Toll! Vielen Dank für Ihr Feedback.

Wie zufrieden sind Sie mit dieser Antwort?

Vielen Dank für Ihr Feedback. Das hilft uns, die Website zu verbessern.

Wie zufrieden sind Sie mit dieser Antwort?

Vielen Dank für Ihr Feedback.

Antworten Antwort auf gelöschte Nachricht

Hallo Claus,

vielen Dank für die Funktion auch von mir - sie funktioniert ganz super. Nun habe ich noch eine ergänzende Frage: Für eine mögliche Tabelle DREI (um bei dem obigen Beispiel zu bleiben) würde ich gerne nach mehreren (drei) Werten filtern. 

Zur näheren Erklärung: "Werte" gibt in meiner Tabelle den Lagerort (A bis H) von Produkten an. Ziel ist es, aus Tbl EINS eine Tabelle DREI zu erstellen, die mir alle Produkte mit Lagerort A, B und C auflistet (anstatt z.B. nur A).

Geht das auch auf Basis der anfänglich erwähnten Formel, wenn ja, wie? Ich danke Dir schon mal recht herzlich!

André

War diese Antwort hilfreich?

Das war leider nicht hilfreich.

Toll! Vielen Dank für Ihr Feedback.

Wie zufrieden sind Sie mit dieser Antwort?

Vielen Dank für Ihr Feedback. Das hilft uns, die Website zu verbessern.

Wie zufrieden sind Sie mit dieser Antwort?

Vielen Dank für Ihr Feedback.

Hallo Andrè,

kannst du dein Problem nicht mit einer Pivot Tabelle lösen?

Gruß

Michael

War diese Antwort hilfreich?

Das war leider nicht hilfreich.

Toll! Vielen Dank für Ihr Feedback.

Wie zufrieden sind Sie mit dieser Antwort?

Vielen Dank für Ihr Feedback. Das hilft uns, die Website zu verbessern.

Wie zufrieden sind Sie mit dieser Antwort?

Vielen Dank für Ihr Feedback.

Antworten Antwort auf gelöschte Nachricht

Hallo Claus,

danke schon einmal für Deine prompte Antwort!

Leider musste ich während meines weiteren Fortkommens gestern Vormittag feststellen, dass die ursprünglich verwendete Formel =WENNFEHLER(INDEX(Eins!A:A;KKLEINSTE(WENN(Eins!$C$1:$C$1000="Wert";ZEILE($1:$1000));ZEILE(A1)));"") in der benötigten "Menge" (1000 Zeilen, mehrere Registerkarten) Excel unfassbar verlangsamt. 

Ich habe das Ganze nun über ein Makro gelöst, das die Werte in ein neues Tabellenblatt filtert und direkt im Anschluss (nach vier Bedingungen) sortiert sowie am Ende die Spaltenbreite automatisch anpasst. 

Leider Gottes sortiert er jedoch die Daten nicht - und ich weiß nicht warum. Anbei ein entsprechender Ausschnitt meines verwendeten Makros. Kannst Du mir sagen, was ich falsch gemacht habe?

Ich danke Dir und allen weiteren für Anregungen und Tips..

André

Sub FilternSpaltenbreiteSortieren()
'
'
' Tastenkombination: Strg+q
'

Dim lngLastRowMA As Long
Dim lngLastRowF1 As Long

lngLastRowMA = Sheets("MASTER").Cells(Rows.Count, 1).End(xlUp).Row
lngLastRowF1 = Sheets("F1").Cells(Rows.Count, 1).End(xlUp).Row

    Sheets("F1").Select
    Sheets("MASTER").Range("A1:J" & lngLastRowMA).AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Sheets("spezialfilter").Range("A1:J3"), CopyToRange:=Range( _
        "A1"), Unique:=False
    ActiveWorkbook.Worksheets("F1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("F1").Sort.SortFields.Add Key:=Range("I2:I" & lngLastRowF1), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("F1").Sort.SortFields.Add Key:=Range("C2:C" & lngLastRowF1), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("F1").Sort.SortFields.Add Key:=Range("B2:B" & lngLastRowF1), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("F1").Sort.SortFields.Add Key:=Range("A2:A" & lngLastRowF1), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("F1").Sort
        .SetRange Range("A1:J" & lngLastRowF1)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Columns("A:A").EntireColumn.AutoFit
    Columns("B:B").EntireColumn.AutoFit
    Columns("C:C").EntireColumn.AutoFit
    Columns("D:D").EntireColumn.AutoFit
    Columns("E:E").EntireColumn.AutoFit
    Columns("F:F").ColumnWidth = 40.5
    Columns("G:G").EntireColumn.AutoFit
    Columns("H:H").EntireColumn.AutoFit
    Columns("I:I").EntireColumn.AutoFit
    Columns("J:J").EntireColumn.AutoFit

End Sub

War diese Antwort hilfreich?

Das war leider nicht hilfreich.

Toll! Vielen Dank für Ihr Feedback.

Wie zufrieden sind Sie mit dieser Antwort?

Vielen Dank für Ihr Feedback. Das hilft uns, die Website zu verbessern.

Wie zufrieden sind Sie mit dieser Antwort?

Vielen Dank für Ihr Feedback.

Antworten Antwort auf gelöschte Nachricht

Lieber Claus,

zu Deinen Fragen wiefolgt:

1) Den Spezialfilter nutze ich, da die Lagerplätze zwar an sich grob unterscheidbar sind (z.B. wie im oben erwähnten Makro-Ausschnitt gibt es das Lager "F1"), diese jedoch selbst noch weiter unterteilt werden (F1 A1, F1 A2...; F1 B1, usw). Dies kann ich über einen normalen Filter leider so ohne weiteres nicht abbilden .

2) Im Tabellenblatt "spezialfilter" sind die einzelnen Spezialfilter für die Lagerplätze untereinander aufgeschrieben. Im konkreten Beispiel von "F1" findet sich in A1:J3 der Kriterienbereich, wobei nur die Spalte I ausgefüllt ist - hier finden sich nämlich die gesuchten Lagerstandorte (3. Frage).

4) Im Tabellenblatt "F1" sollen die Spalten I (Lagerstandort) - C (Produkt) B (Auslieferungstour durch Fahrer) und A (Name des Kunden) sortiert werden.

Hilft Dir das schon weiter, um mir behilflich zu sein? Im Zweifelsfall würde ich die Tabelle irgendwo hochladen, wobei ich dafür erst die Daten anonymisieren müsste.

Danke! :-)

War diese Antwort hilfreich?

Das war leider nicht hilfreich.

Toll! Vielen Dank für Ihr Feedback.

Wie zufrieden sind Sie mit dieser Antwort?

Vielen Dank für Ihr Feedback. Das hilft uns, die Website zu verbessern.

Wie zufrieden sind Sie mit dieser Antwort?

Vielen Dank für Ihr Feedback.

Antworten Antwort auf gelöschte Nachricht

Danke, das werde ich gleich mal testen! 

Problem allerdings: Bei drei Lagerorten bleibt es jedoch nicht bei der gewöhnlichen Unter-Klassifizierung (bisher: F1 mit Unterteilung in F1 A1, F1 A2; F1 B1, F1 B2 usw.). Dort werden dann statt dessen diverse Kürzel wie K2, XK1, ADD, BOX verwendet, die nichts miteinander gemeinsam haben. Dies war auch einer der Gründe, warum ich den Spezialfilter gewählt habe - ich dachte, bevor ich mehrere verschiedene Filterarten über die Tabellenblätter hinweg anwende (und es mir als absoluter Makro-Anfänger so nur unnötig kompliziert mache), bleibe ich beim Spezialfilter, auch wenn es dann z.B. beim Lagerstandort F1 bei F1* als Kriterium bleibt.

Gibt es denn eine logische Erklärung, warum die Sortierung der Daten in meinem Makro nicht funktioniert? Filtern und die automatische Spaltenbreite funktioniert ja super...

Liebe Grüße,

André

War diese Antwort hilfreich?

Das war leider nicht hilfreich.

Toll! Vielen Dank für Ihr Feedback.

Wie zufrieden sind Sie mit dieser Antwort?

Vielen Dank für Ihr Feedback. Das hilft uns, die Website zu verbessern.

Wie zufrieden sind Sie mit dieser Antwort?

Vielen Dank für Ihr Feedback.

 
 

Frageninformationen


Zuletzt aktualisiert 14 Juni, 2021 Aufrufe 103.901 Gilt für: