[Excel] Autofilter Formel Aggregat
#1
Zuweilen steht die Aufgabe, gefilterte Daten in einen anderen Tabellenbereich zu übernehmen.

Im Excel 365 gibt es neue Möglichkeiten mit der Funktion FILTER. Diese ist leider in älteren und auch in der aktuellen Desktop-Version 2019 nicht enthalten. Für den Austausch müsste man demzufolge auf eine andere Formellösung zurückgreifen.

Im Netz findet man zuweilen Formellösungen für den Autofilter. Diese basieren oft auf den eingeschränkten Möglichkeiten älterer Excelversionen vor 2010.

Seit 2010 bietet die AGGREGAT - Funktion in Verbindung mit der INDEX - Funktion alternative Möglichkeiten zum Filtern nach einem oder mehreren Kriterien. Hier habe ich ein Beispiel für eine einfache Filterung.

In den Spalten A und B habe ich eine Datenliste, aus der ich meine Daten extrahieren will. In D2 habe ich (m)ich dazu eingetragen. In Spalte E habe ich eine zum Filtern passende Funktion eingetragen - hier nur für E2 angezeigt. De Funktion kann nach Eingabe so weit erforderlich nach unten gezogen werden.

Zu den Parametern in der verwendeten AGGREGAT-FUNKTION:

15 entspricht der Funktion KKLEINSTE
6  steht für ignorieren von Fehlerwerten

ZEILE($A$2:$A$10)
ist das Array, in dem die Daten stehen
-1
ist ein Zeilenversatz da hier im Beispiel die Arrayangabe in Zeile 2 beginnt und die Auswertung aber mit dem ersten Element beginnen soll.

/($A$2:$A$10=$D$2)
ist die Angabe des Vergleichs- / Filterwertes und des Bereichs, in dem der Filterwert verglichen wird
Hier können z.B. auch mehrere Filter für verschiedene Spalten gesetzt werden, z.B. /(Bereich2=Filter2)/(Bereich3=Filter3)
ZEILE(A1)
ist der Index für KKLEINSTE

Hinweis zum Array ZEILE($A$2:$A$10) und dem Subtrahend (Zeilenversatz) 1
Das Array kennzeichnet genau genommen hier den Zeilenumfang / die Zeilenanzahl des Bereichs, in dem die Daten stehen. Ich könnte stattdessen auch ZEILE($X$66:$X$74)-65 schreiben - der Zeilenversatz ist dann also auch entsprechend größer - oder ZEILE($A$1:$A$9) und das dann ohne Zeilenversatz.
Die Angabe ZEILE($A$2:$A$10) - 1 erhöht aber m.E. die Nachvollziehbarkeit der Formel. Ich muss weder schauen, was in $X$66 steht noch grübeln, ob bei $A$1:$A$9 auch Zeile 10 berücksichtigt wird ... Dass hier im Beispiel die Überschrift nicht in die Formel einbezogen ist, soll zeigen, dass man mit dieser Formel sehr einfach auch Bereiche betrachten kann, die nicht in Zeile 1 beginnen.

Arbeitsblatt mit dem Namen 'Tabelle3'
ABCDE
1WerWannWerWann
2ich01. Mrzich01. Mrz
3du02. Mrz04. Mrz
4er03. Mrz07. Mrz
5ich04. Mrz
6du05. Mrz
7er06. Mrz
8ich07. Mrz
9du08. Mrz
10er09. Mrz

ZelleFormel
E2=WENNFEHLER(INDEX(B$2:B$10;AGGREGAT(15;6;ZEILE($A$2:$A$10)-1/($A$2:$A$10=$D$2);ZEILE(A1)));"")
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.2) erstellt. ©Gerd alias Bamberg
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 2 Nutzer sagen Danke an schauan für diesen Beitrag:
  • maninweb, PIVPQ
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste