Microsoft Excel

Das Portal zum Thema Excel-Formeln

Gruppe: Listen/Datensätze

Beitrag: Tabellenspalten dynamisch anzeigen

Aufgabe
Aus einer Gesamtliste möchtest Du dynamisch auswählen, welche der Tabellenspalten angezeigt werden sollen.

Lösung
Die Ausgangstabelle (in diesem Fall eine strukturierte Tabelle mit dem Namen 'Tabelle1') befindet sich im Bereich D1:M6.
In Spalte B - ab B2 - werden die Spaltenbezeichnungen aufgelistet mit (Spill-)Formel in
B2:
=MTRANS(Tabelle1[#Kopfzeilen])
In Spalte A werden Kontrollkästchen (aus dem Menü 'Einfügen') eingefügt (alternativ kann man auch 1 und 0 bzw. leer verwenden). Damit wird gesteuert, welche Spalten angezeigt werden sollen oder eben nicht.
Das Ergebnis erhält man dann mit dieser (Spill-)Formel in
D12:
=LET(Tab;Tabelle1[#Alle];Show;WENN(INDEX(A:A;ZEILE(B2#));ZEILE(B2#)-(MIN(ZEILE(B2#))-1);"");SPALTENWAHL(Tab;FILTER(Show;Show<>"")))
Erläuterung
Der Variablen 'Tab' wird die gesamte strukturierte Tabelle inkl. Kopfzeilen zugewiesen. In der Variablen 'Show' werden alle Spalten(nummern) gespeichert, die angezeigt werden sollen. Indiziert wird dabei die gesamte Spalte mit den Kontrollkästchen (hier: A:A). B2# steht für den Spillbereich zur Auflistung aller Spaltenbezeichnungen und muss entsprechend angepasst werden, wenn ihr die Formel woanders stehen habt. Die Subtraktion von (MIN(ZEILE(B2#))-1) sorgt dafür, dass immer die richtigen Spaltennummern ermittelt werden - egal, wo die Formel steht. Wichtig ist nur, dass ihr die gesamte (!) Spalte mit den Kontrollkästchen an INDEX übergebt.
Zur Veranschaulichung haben wir das Formelergebnis auf dem selben Tabellenblatt erzeugt. In der Praxis bietet es sich an, ein separates Tabellenblatt zu nutzen.
Die Lösung benötigt zwingend die Excelversion 365.
Beispiel
Die Beispieldatei findet ihr hier: DOWNLOAD