Excel Filter/Verweis/oder ähnlich, nur wie?

1 Antwort

Wenn die Seiten mit den Ziffern 001, 002, .. NUR Kopien von bestimmten Inhalten aus "Kasse" sind dann ist Kasse der Master und du kannst auf den Seiten 001, 002, ..Pivot Tabellen dieser Kasse erstellen und entsprechend dem Fokus dieser Seite filtern.
===
Wenn aber auf den Seiten 001, 002, .. auch Daten zu Kasse müssen, dann ist dies ein Fall für Power Pivot.
===
Auch wenn ich ein Fan von komplizierten Formel bin ist irgendwann die Wartbarkeit verloren und ein Nachfolger wird sich schwer tun Dinge den Neuerungen anzupassen.
====
Ggf gibt es aber auch noch weitere Lösungen.
Dafür musst du aber genau erklären welche Struktur die Rohdaten haben und welche berichte daraus entstehen sollen.


dersuchende1 
Beitragsersteller
 20.02.2024, 13:00

Rohdaten, sorry, sind in Seite 2. Spalte A ist nur gekürzter Inhalt von Spalte B und Spalte C müsste eigentlich .001-002-003 u.s.w heißen! Die Rohdaten habe ich nur dem Format nicht zwingend anpassen müssen.

0
IchMalWiederXY  20.02.2024, 13:27
@dersuchende1

Also für mich passt dies nicht ganz. Die "Id" scheint eine laufende Nummer zu sein, die sich verändert auch wenn der Text der gleiche ist. Über die ID wäre aus meiner Sicht alles lösbar. Die Spalte "gebucht in" und "Summe" benötigt es aus meiner Sicht nicht, wenn die ID immer identisch ist. Umsätze, Saldo, etc etc. (Alles mit Pivot lösbar und sehr leicht zu warten)
Nur Eingänge, Ausgänge, Datum des Vorgangs, Datum bis WANN der Vorgang zu erfolgen hat.

0
dersuchende1 
Beitragsersteller
 20.02.2024, 13:32
@IchMalWiederXY

Die ID ist ja auch eine laufende Nr.... Es dreht sich doch nur um einen Auszug der gesamten Tabelle eines kriterium.... Alle buchungen von z.B 007 in Blatt 007! Haltet euch bitte nicht an die Formeln und Formate fest; die sind i.O.... Und nein Pivot-Tabelle suche ich nicht!!! VBA könnte ich mir vorstellen, wenn man mir da mit einfachen Code#s helfen kann/ würde!

0
IchMalWiederXY  20.02.2024, 13:41
@dersuchende1

Wie schon gesagt. Ich kenn das Ziel nicht, daher fällt es mir schwer den entscheidenden Tipp zu geben.
Worin besteht der Fehler ?
"Welche" Formel soll "Welche" Information von "Wo" an "welche" Stelle auf "007" bringen ?
Annahme:
Die Quell Seite hat die Informationen in Zeile 1, 17, 37, ..fortlaufend noch höher
und diese Information soll auf das Zielblatt an Zeile 1,2,3,..
Dann gelingt dies NUR wenn auf der Zielseite ab der Zeile 2 zunächst in das Ergebnis in der Zeile 1 geschaut wird um dann den Index der Quellseite zu ermitteln ab dem es für die "eigene" Zeile erst gesucht werden darf.
Dies wird hässlich.
Daher der Vorschlag die ROH Daten per Pivot in die ZielSeite zu bringen und dort genau die filter zu aktivieren, die dann der Zielseite entsprechen.
===
VBA Lösung:
Per Code die AutoFilterung der "gebucht in" Spalte vornehmen.
NUR den gefilterten Inhalt auf die Zielseite kopieren.
Ca. 10 Zeilen "positiver Code" und nochmal 20 für die Robustness.
Ich meine ich hätte dies auch schon mal gepostet.

1
dersuchende1 
Beitragsersteller
 21.02.2024, 11:51
@dersuchende1

Und nun habe ich mich über meine Grenzen getraut, und stelle fest; klappt nicht!!! Ohman. . . .

0
dersuchende1 
Beitragsersteller
 27.02.2024, 14:06
@dersuchende1

Bis zum Button funktioniert irgendwas, aber kopieren und Blätter erzeugen die den Naben des Kriterium bekommen sollen, ist nur "001" autonom enstanden, und dass aber nur leer!!!

Also wenn da beim Code etwas Hilfe folgen könnte, hmmm wäre ich sehr dankbar!!!

Sub KopiereNachKriterium()

  Dim Quellblatt As Worksheet

  Dim Zielblatt As Worksheet

  Dim Suchwerte As Variant

  Dim Suchwert As Variant

  Dim letzteZeile As Long

  Dim Zeile As Long

  Dim ZielZeile As Long

   

  ' Festlegen der Blattnamen und der Suchwerte

  Set Quellblatt = ThisWorkbook.Worksheets("Kasse")

  Suchwerte = Array("001", "002", "003", "004", "005", "006", "007", "008", "009", "010", _

           "011", "012", "013", "014", "015", "016", "017", "018", "019", "020", _

           "021", "022", "023", "024", "025", "026", "027", "028", "029", "030", _

           "031", "032", "033", "034", "035", "036", "037", "038", "039", "040", _

           "041", "042", "043", "044", "045", "046", "047", "048", "049", "050")

   

  ' Durchlaufen der Suchwerte

  For Each Suchwert In Suchwerte

    ' Überprüfen, ob das Zielblatt bereits existiert, andernfalls erstellen

    On Error Resume Next

    Set Zielblatt = ThisWorkbook.Worksheets(Suchwert)

    On Error GoTo 0

     

    If Zielblatt Is Nothing Then

      ' Arbeitsblatt erstellen, wenn es nicht existiert

      Set Zielblatt = ThisWorkbook.Worksheets.Add(After:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count))

      Zielblatt.Name = Suchwert

    End If

     

    ' Bestimmen der letzten Zeile im Quellblatt

    letzteZeile = Quellblatt.Cells(Rows.Count, 7).End(xlUp).Row ' Spalte "G" ist die 7. Spalte

     

    ' Durchlaufen der Zeilen im Quellblatt

    ZielZeile = Zielblatt.Cells(Zielblatt.Rows.Count, 1).End(xlUp).Row + 1 ' Initialisieren der Zielzeile im Zielblatt

     

    For Zeile = 2 To letzteZeile ' Annahme: Daten beginnen in Zeile 2, Spalte 7 (G)

      ' Überprüfen, ob der Wert in Spalte 7 (G) mit dem aktuellen Suchwert übereinstimmt

      If Quellblatt.Cells(Zeile, 7).Value = Suchwert Then

        ' Kopieren der gesamten Zeile in das Zielblatt (Spalten 1-5)

        Quellblatt.Range("A" & Zeile & ":E" & Zeile).Copy Destination:=Zielblatt.Cells(ZielZeile, 1)

         

        ' Erhöhen der Zielzeile für den nächsten Kopiervorgang

        ZielZeile = ZielZeile + 1

      End If

    Next Zeile

  Next Suchwert

   

  ' MsgBox am Ende des Vorgangs

  MsgBox "Kopiervorgang abgeschlossen!", vbInformation

End Sub

0
IchMalWiederXY  29.02.2024, 18:09
@dersuchende1

Wenn ich dies so lese glaube ich dass es sehr "lange" läuft alles zu erstellen und dann alles zu suchen.
Da jedes neue Tabellenblatt offenbar einer KalenderWoche entspricht ?
Zumindest eine "Ziffer" ist kann man zunächst auch alle Worksheets durchlaufen die numerisch (im Namen sind um dann das FolgeBlatt mit "+1" zu erstellen.
Damit würde die Fehlerbehandlung entfallen.
Mit "Application.Match" (Entspricht dem "VERGLEICH") kann man direkt die Zeile erhalten in der der Suchwert ist. Geht schneller als ne eigene Suche.
Ich empfehle die Dinge unabhängig von einander zu implementieren.
Erst herausfinden, ob es das Blatt benötigt.
Die Unterschiede ja, nein dann in separaten Funktionen abarbeiten.

0
dersuchende1 
Beitragsersteller
 02.03.2024, 10:50
@dersuchende1

So funktioniert es bei GoogleDriveCalc: =filter(IMPORTRANGE("16UHN-StWtX8ceC6juZsmZkzHlZ16nq7ki9xaWt_3o_4";"Tabellenblatt1!A7:J500");

IMPORTRANGE("16UHN-StWtX8ceC6juZsmZkzHlZ16nq7ki9xaWt_3o_4";"Tabellenblatt1!F7:F500")="Fährstraße.2") Inhalte und Spalten sind jetzt Furz.... Dreht sich nur um; was bei Google funktioniert möchte ich für Excel2021 haben... Und egal ob als Formel Excel, oder VBA- nur wichtig ist wie immer bei mir, nur schreiben was reingehört :-)

0