Excel Filter/Verweis/oder ähnlich, nur wie?
Hallo Leute,
ich hoffe diesmal auch für Helfer, die mich sonst gerne mal fragen, was genau ich mit dem PLUS Zeichen machen möchte:
Meine eigentliche Frage sollte den Screenshots sehr gut zu entnehmen sein!
Ok, die Reihenfolge ist nicht der Hit, egal. . . Und wie gehabt und immer, ich bleibe der stetige Excel-Neuling!!! :-)
Danke für alle Tipp's
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.
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.
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!
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.
Unter folgenden Link habe ich meine Tabelle in abgespeckter Form. : https://1drv.ms/x/s!AvREzE5xB_3v0wnqRXp9k9fT7flc
Und nun habe ich mich über meine Grenzen getraut, und stelle fest; klappt nicht!!! Ohman. . . .
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
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.
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 :-)
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.