Hierzu wurde dem Fragesteller zwar bereits von Ego eine funktionierende Formellösung und von mir eine mit Power Query erstelle Lösung präsentiert, aber ich dachte mir, dass dies eine gute Gelegenheit sein könnte, Anwender die LET bisher noch nicht benutzt haben, die Genialität und Einfachheit dieser Funktion etwas näher zu bringen.
Deshalb anbei eine Mappe, die zwar neben der LET-Lösung auch noch meine mit Power Query erstellte Lösung enthält, aber zusätzlich habe ich die LET-Lösung im Tabellenblatt "LET Step by Step" schrittweise erläutert. Wobei ich nicht unerwähnt lassen will, dass bei allen Arten von komplexen Formeln, das einfügen bzw. weglassen von Zeilenumbrüchen (Tastenkombination Alt+Enter) einen großen Einfluss auf die Lesbarkeit einer Formel hat.
Die Genialität und Einfachheit von LET ergibt sich daraus, das diese, wie bspw. ein VBA-Makro von oben nach unten anstatt von innen nach außen entwickelt wird und durch das bilden von virtuellen Hilfszellen/-spalten unnötige Mehrfachberechnungen entfallen können und auch die spätere Erweiterung der Formel viel einfacher realisiert werden kann.
habe mich auch mal am 1. Teil der Aufgabe gewagt und eines etwas anderen Weg genommen. In Deinem Beispiel habe ich sb_3a;ZEILENUMBRUCH(INDEX(sb_1;;2);10); geändert in sb_3a;ZEILENUMBRUCH(INDEX(sb_3;;2);10); und Daten;LET!B7:AE16; in Daten; Tabelle168[[sb1_1]:[sb1_10]];
vielen Dank für deinen Beitrag, der u.a. auch zeigt, dass es noch einige neue Funktionen (Hier WEGLASSEN) gibt, die sich im persönlichem Fundus der bekannten Funktion noch stärker verinnerlichen müssen, um diese auch immer auf dem Schirm zu haben.
Mal grundsätzlich zu LET mach ich es immer so, dass ich auch für die finale Berechnung eine Variable verwende und diese dann am Ende ausgebe. Dies hat aus meiner Sicht den großen Vorteil, dass ich ja in der LET nur diesen Namen durch den einer anderen Variablen ersetzen muss, damit mir das entsprechende Zwischenergebnis angezeigt wird.
Bei meiner Lösung ist es so, dass ich diese aus einer extrahiert habe, mir der ich innerhalb einer LET sowohl die die Tabelle der sortierten Werte, als auch die Tabelle der Adressreferenzen erzeugt hatte. Diese Lösung hatte nur den Nachteil, dass die Zellen der eingesteuerten Leerzeilen mit "0" angezeigt und die Sortierbretttitel nicht über die Spaltenenden angezeigt wurden. Die 0-Anzeige hätte ich ja noch durch eine Leerstelle in den Leerzeilen bereinigen können. Aber ich hatte keine Möglichkeit gefunden, dass die Sortierbretttitel über die Spaltenenden angezeigt werden können.
Deshalb habe ich dann die gemeinsame LET einfach in eine für die Werte und eine für die Adressen aufgeteilt und auf die Optimierung der Werte-LET verzichtet.
Abgesehen davon, dass es natürlich auch für die Adressen-LET bestimmt noch elegantere Möglichkeiten geben kann, war und ist mir bewusst, dass ich in dieser einige Schritte zusammenfassen können. Aber da ich ja das Ziel hatte, für LET zu werben, habe ich bewusst versucht, die einzelnen LET-Schritte nicht zu komplex zu gestalten.
Weiterhin war es mir bei dieser wichtig, dass auch dann noch die korrekten Ergebnisse gezeigt werden, wenn links oder oberhalb der Daten Zeilen/Spalten eingefügt oder gelöscht werden.
Luschis Beitrag hat mich motiviert, meine Lösung zu überarbeiten. Dabei spart die Umstellung von FILTER auf WEGLASSEN einige Schritte und macht es auch übersichtlicher. Zusätzlich habe ich die Ermittlung der Adressen optimiert, die nun in einem Schritt durchgeführt wird. Anschliessend habe ich dann auch die Werte-LET optimiert.