Clever-Excel-Forum

Normale Version: Filterergebnis auf Anzahl Zeilen beschränken
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
[attachment=23518]

Hallo zusammen, 

vielleicht hat jemand eine Idee für mein Problem und würde mir damit sehr weiterhelfen:

Durch die Auswahl in einer Combobox wird eine bestimmte Filterkombination (ca. 30 Auswahlmöglichkeiten) gesetzt. 
Ich möchte jetzt, dass er mir nur die ersten 50 Zeilen des Filterergebnisses (Daten sind schon absteigend sortiert) anzeigt und die restlichen Zeilen ausblendet.
Sodass man für jede Filterkombination dann die Top 50 angezeigt bekommt. 



Ich freue mich über jeden Ansatz und jeden, der seine Zeit zur Lösungsfindung opfert.
Ich hänge mal noch eine Beispieldatei an! (Makro zur Erstellung der Filter heißt "Arbeitsvorrat). Nach Öffnen der Datei kurz Button "Dropdown füllen" drücken, um die Auswahl angezeigt zu bekommen. Wählt man Auswahl "a" (bezieht sich auf Feld "Disponent"  und führt aus versteht man was ich meine. Das Ergebnis soll am Ende auf 50 Zeilen ab Zeile 14 begrenzt sein. 


Vom Prinzip her wäre meine Idee- "Finde die erste befüllte und nicht ausgeblendete Zelle in Spalte C, merke dir die Poisition. Dann finde die nächste befüllte und nicht ausgeblendete Zelle in Spalte C und blende alle Zeilen dazwischen aus. Wiederhole 50x und beende."
Da ich aber leider eher nur Basics in VBA beherrsche, scheitert es an der Umsetzung- falls denn die Überlegung selbst überhaupt logisch ist.

Danke schonmal!
Moin

Ich sehe hier eher Lösungen mit Pivot oder PQ.
Die Combobox kommt dann natürlich auf den Müll.
Aber das wäre doch dann je eine Pivot für jede Filtermöglichkeit und somit dann ziemlich unübersichtlich, oder? 
Zudem benötige ich die Einzragungen,, die in dem Reiter in dem die Filter gesetzt werden, gemacht werden für eine Datenbank. Das wäre als Pivot auch eher ungünstig. 

Und was meinst du mit PQ?
(09.04.2019, 20:20)robert_r schrieb: [ -> ]...
Und was meinst du mit PQ?

Hallo, ich denke hier ist Power Query gemeint... (^_-)
(09.04.2019, 20:20)robert_r schrieb: [ -> ]Zudem benötige ich die Einzragungen,, die in dem Reiter in dem die Filter gesetzt werden, gemacht werden für eine Datenbank. Das wäre als Pivot auch eher ungünstig. 
Du brauchst die Datenbank für eine andere Datenbank?
Dann geht das in Richtung PQ oder VBA (Quertables) oder Access.
Hi

in X14 die Formel und bis X1000 nach unten kopieren.
=TEILERGEBNIS(103;C14)*(MAX($X$13:X13)+1)

Jetzt deinen Filter wie bisher anwenden und danach noch Spalte X auf < 51 filtern.

Gruß Elex
Hat fantastisch funktioniert, vielen herzlichen Dank!!
Ich habe es sogar problemlos in meinen Code integriert bekommen, sodass alles automatisch abläuft.

Allerdings konnte ich mit der Formel so gar nichts anfangen, vielleicht könntest du mir bei Gelegenheit kurz "übersetzen", warum sie tut, was sie tut? 
So hat das ganze dann noch einen besseren Lerneffekt :)
Denn So wie ich sie verstehe, würde sie ja schon in X14 den Wert 2 ausgeben. Huh
Hi
 
Die Funktion Teilergebnis kann sich bei ihrer Auswertung auf sichtbare Zeilen beschränken.
Einen ersten Überblick zur Funktion Teilergebnis verschafft die Excelhilfe.
 
Zum Testen kannst du folgende Beispiele nutzen.
Bsp 1.
Blende jetzt mal ein paar Zeilen (2 – 10) aus und schau dir die drei Ergebnisse in Zeile 12 an.
____|___A__|____B___|___C__|_D|
   1|Name  |Vorname |Alter |  |
   2|Name1 |Vor1    |    11|  |
   3|Name2 |Vor2    |    12|  |
   4|Name3 |Vor3    |    13|  |
   5|Name4 |Vor4    |    14|  |
   6|Name5 |Vor5    |    15|  |
   7|Name6 |Vor6    |    16|  |
   8|Name7 |Vor7    |    17|  |
   9|Name8 |Vor8    |    18|  |
  10|Name9 |Vor9    |    19|  |
  11|      |        |      |  |
  12|     9|       9|     9|  |

A12    =ANZAHL2(C2:C10)
B12    =TEILERGEBNIS(3;C2:C10)
C12    =TEILERGEBNIS(103;C2:C10)
 
Bsp 2.
So kannst du dir die Ergebnisse für die Formel in D2 – D10 sichtbar machen, wenn du Zeilen ausblendest.
____|___A__|____B___|____C___|_D|
   1|Name  |Vorname |Alter   |  |
   2|Name1 |Vor1    |      11| 1|
   3|Name2 |Vor2    |      12| 2|
   4|Name3 |Vor3    |      13| 3|
   5|Name4 |Vor4    |      14| 4|
   6|Name5 |Vor5    |      15| 5|
   7|Name6 |Vor6    |      16| 6|
   8|Name7 |Vor7    |      17| 7|
   9|Name8 |Vor8    |      18| 8|
  10|Name9 |Vor9    |      19| 9|
  11|      |        |        |  |
  12|      |        |        |  |
  13|      |        |D2  ->  | 1|
  14|      |        |D3  ->  | 2|
  15|      |        |D4  ->  | 3|
  16|      |        |D5  ->  | 4|
  17|      |        |D6  ->  | 5|
  18|      |        |D7  ->  | 6|
  19|      |        |D8  ->  | 7|
  20|      |        |D9  ->  | 8|
  21|      |        |D10  -> | 9|

D2      =TEILERGEBNIS(103;C2)*(MAX($D$1:D1)+1)        'bis D10 kopieren
D13    =D2        'bis D21 kopieren
 
Da die Funktion Teilergebnis(103 “Anzahl2“ ; C2) sich jeweils nur auf eine Zelle bezieht ist das Ergebnis 0 wenn die Zelle ausgeblendet ist, da ausgeblendete nicht mit gezählt werden.
 
Gruß Elex