Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Innovative LAMBDA-Formel zur Optimierung von Datenbereichen

Forumthread: Innovative LAMBDA-Formel zur Optimierung von Datenbereichen

Innovative LAMBDA-Formel zur Optimierung von Datenbereichen
03.07.2024 23:08:40
Karl987314
Innovative LAMBDA-Formel zur Optimierung von Datenbereichen in Excel 365

Ich habe eine benutzerdefinierte LAMBDA-Formel für Excel 365 entwickelt, die darauf abzielt, die Effizienz bei der Arbeit zu verbessern. Diese Formel optimiert den Bereich, indem sie nur die Zellen mit Daten berücksichtigt, was die Verarbeitungszeit verkürzt und die Leistung steigert.

Funktionsweise: Die Formel funktioniert wie ein intelligenter Assistent, der einen Datenbereich analysiert, die relevanten Zellen identifiziert und die Größe des zu durchsuchenden Bereichs effizient berechnet. Sie verwendet Funktionen wie AUFRUNDEN, WURZEL, MAP und FILTER, um die Daten zu durchsuchen und zu filtern, wodurch die Berechnungen beschleunigt werden.

LAMBDA(…)(Bereich;Zahlenwert)
• Bereich: Auswahl von Zeilen und Spalten einer Tabelle.
• Zahlenwert 0: Gibt den relevanten Bereich als Adresse aus.
• Zahlenwert 1: Gibt die Zeilennummer der ersten Zeile mit Inhalt als Zahl aus.
• Zahlenwert 2: Gibt die Zeilennummer der letzten Zeile mit Inhalt als Zahl aus.
• Zahlenwert 3: Gibt die Spaltennummer der ersten Spalte mit Inhalt als Zahl aus.
• Zahlenwert 4: Gibt die Spaltennummer der letzten Spalte mit Inhalt als Zahl aus.
• Zahlenwert 5: Gibt den relevanten Bereich als direkten Bereich aus.
• Zahlenwert 6: Gibt die Anzahl der Inhalte aus dem relevanten Bereich als Zahl aus.

Anleitung:
1. Öffnen Sie eine Excel-Tabelle und wählen Sie den Bereich aus, den Sie optimieren möchten.
2. Geben Sie die LAMBDA-Formel in die Formelleiste, auf einem amderen Tabellenblatt oder außerhalb vom Auswahlbereich ein und passen Sie die Parameter entsprechend Ihren Bedürfnissen an.
3. Drücken Sie Enter, um die Formel auszuführen und die optimierten Ergebnisse zu erhalten.
Beispiel: Angenommen, Sie haben einen Bereich von Tabelle1!$1:$1048576 und möchten den relevanten Bereich als direkten Bereich ausgeben. Sie würden die Formel wie folgt eingeben: =LAMBDA(AuswahlBereich;Adr0vonZeile1bisZeile2vonSpalte3bisSpalte4DirekterBereich5Anzahl6;LET(...))(Tabelle1!$1:$1048576;5)

Sie können die Formel auch im Formel Namensmanager als neu Funktion abspeichern.
1. Öffnen Sie den Namensmanager und vergeben Sie einen Namen zum Beispiel adry.
2. Wenn Sie möchten, dann können Sie ein Kommentar hinzufügen.
3. Geben Sie die Formel =LAMBDA(…) ohne den hinteren Aufruf (Bereich;Zahlenwert) ein und drücken dann OK.
4. Nun können die neue Funktion wie folgt verwenden:
=wenn(adry(Tabelle1!$A:$XFD;5)>““;“Inhalt“;“Kein Inhalt“)
Was früher nicht ging, dass ist heute möglich

Vorteile:
• Effizienzsteigerung: Automatische Erkennung und Auswahl relevanter Datenbereiche.
• Leistungsverbesserung: Schnellere Verarbeitung durch direkte Bereichsauswahl.
• Benutzerfreundlichkeit: Vereinfachte Auswahlprozesse für den Benutzer.
• Automatisierung: Integration in automatisierte Workflows möglich.

Verwendete Funktionen:
• LAMBDA: Erstellung eigener Funktionen ohne VBA.
• LET: Speicherung von Zwischenergebnissen zur Leistungssteigerung.
• AUFRUNDEN/WURZEL: Hilfreich bei der Größenberechnung von Bereichen.
• MAP/FILTER: Durchführung von Massenoperationen und Fokussierung auf relevante Daten.
• SEQUENZ/GANZZAHL/WEGLASSEN: Erstellung von benutzerdefinierten Sequenzen und Bearbeitung von Zahlen und Texten.
• HSTAPELN/ZEILENWAHL: Konsolidierung von Daten und gezielte Auswahl von Bereichen.

Diese Formel könnte für viele Excel 365-Anwender von großem Nutzen sein, insbesondere für diejenigen, die regelmäßig mit großen Datenmengen oder mit leistungsschwächeren PCs, Tablets oder Smartphones, arbeiten. Ich würde mich über Feedback und Anregungen freuen, um die Formel weiter zu verbessern und ihre Anwendung zu erweitern.

Anmerkungen
• Sprachübersetzung: Die Formel ist auf Deutsch verfasst. Wenn Sie sie in einer anderen Sprache verwenden möchten, sollten Sie die Funktionen, Bezeichner und Satzzeichen entsprechend anpassen.
• Excel 365-Version: Die Funktionalität von Excel kann je nach Version variieren. Bitte stellen Sie sicher, dass Ihre Formel mit der spezifischen Version von Excel 365 kompatibel ist, die Sie verwenden.
• Satzzeichen und Sprachkonventionen: Achten Sie darauf, dass Sie die korrekten Satzzeichen verwenden, die der Sprachkonvention entsprechen. Zum Beispiel verwenden Deutsch und Englisch unterschiedliche Satzzeichen wie Semikolon (;), Komma (,) und Punkt (.).

Hier die Formel zum Analysieren (Formelübersetzung: Deutsch):
LAMBDA(AuswahlBereich;Adr0vonZeile1bisZeile2vonSpalte3bisSpalte4DirekterBereich5Anzahl6;LET(x;AuswahlBereich;g;AUFRUNDEN(WURZEL(ZEILEN(x));0);gs;AUFRUNDEN(WURZEL(SPALTEN(x));0);xz;ZEILE(INDEX(x;1;1));xs;SPALTE(INDEX(x;1;1));zsvb;LAMBDA(x;tx;zs;LET(y;INDEX(x;1;1);n;WENN(zs=0;ZEILE(y);SPALTE(y));nm;WENN(zs=0;ZEILEN(x);SPALTEN(x));gq;MIN(MAX(tx;1);nm);q;SEQUENZ(gq+1);g;GANZZAHL((q-1)*nm/gq+n);vn;WEGLASSEN(g;-1);bn;WEGLASSEN(g;1)-1;h;HSTAPELN(vn;bn);h));l;LAMBDA(x;LET(zn;zsvb(INDEX(x;;1);g;0)-ZEILE(INDEX(x;1;1))+1;xzm;MAP(INDEX(zn;;1);INDEX(zn;;2);LAMBDA(a;b;ANZAHL2(INDEX(x;a;):INDEX(x;b;))));xzf;FILTER(zn;xzm);xzh;ZEILENWAHL(xzf;1;-1);xzh));ls;LAMBDA(x;LET(sn;zsvb(INDEX(x;1;);gs;1)-SPALTE(INDEX(x;1;1))+1;xsm;MAP(INDEX(sn;;1);INDEX(sn;;2);LAMBDA(a;b;ANZAHL2(INDEX(x;;a):INDEX(x;;b))));xsf;FILTER(sn;xsm);xsh;ZEILENWAHL(xsf;1;-1);xsh));xzl;l(x);xsl;ls(x);xzla;l(INDEX(x;INDEX(xzl;1;1);):INDEX(x;INDEX(xzl;1;2);));xsla;ls(INDEX(x;;INDEX(xsl;1;1)):INDEX(x;;INDEX(xsl;1;2)));xzlb;l(INDEX(x;INDEX(xzl;2;1);):INDEX(x;INDEX(xzl;2;2);));xslb;ls(INDEX(x;;INDEX(xsl;2;1)):INDEX(x;;INDEX(xsl;2;2)));vz;INDEX(xzla;1;1)+INDEX(xzl;1;1)-1;bz;INDEX(xzlb;2;2)+INDEX(xzl;2;1)-1;vs;INDEX(xsla;1;1)+INDEX(xsl;1;1)-1;bs;INDEX(xslb;2;2)+INDEX(xsl;2;1)-1;y;INDEX(x;vz;vs):INDEX(x;bz;bs);tbn;LAMBDA(x;u;LET(o;ZELLE("adresse";INDEX(x;1;1));t;LINKS(o;1);WENN(t="$";"";LET(p;"'"&WECHSELN((REDUCE(o;{"]"."'!"."!"};LAMBDA(a;b;WECHSELN(a;b;u))));WENN(t="'";"";"'");"''")&"'"&"!";d;LÄNGE(u);fv;FINDEN(u;p;1);fb;FINDEN(u;p;fv+1);"'"&TEIL(p;fv+d;fb-fv-d)&"'!"))));adr;tbn(x;"/")&ADRESSE(vz+xz-1;vs+xs-1)&":"&ADRESSE(bz+xz-1;bs+xs-1);ERSTERWERT(Adr0vonZeile1bisZeile2vonSpalte3bisSpalte4DirekterBereich5Anzahl6;1;vz+xz-1;2;bz+xz-1;3;vs+xs-1;4;bs+xs-1;5;y;6;ANZAHL2(y);adr)))(Tabelle1!$1:$1048576;5)
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Innovative LAMBDA-Formel zur Optimierung von Datenbereichen
03.07.2024 23:24:49
{Boris}
Hi,

vielleicht magst Du ja mal noch ne Beispielmappe hochladen, in der die LAMBDA bereits "benamt" ist oder als "Formelmonster" in einer Zelle steht, denn

Adr0vonZeile1bisZeile2vonSpalte3bisSpalte4DirekterBereich5Anzahl6

vermag ich grad nicht direkt nachzuvollziehen.

Und wir wollen ja auch ChatGPT ausschließen ;-)

VG, Boris
Anzeige
AW: Innovative LAMBDA-Formel zur Optimierung von Datenbereichen
03.07.2024 23:35:05
Onur
Was soll denn an einer "Formel", die 1770 Zeichen hat und eine Bedienungsanleitung braucht, innovativ sein?
Ausserdem klingt wirklich alles nach ChatGPT. :)
AW: Innovative LAMBDA-Formel zur Optimierung von Datenbereichen
04.07.2024 00:09:10
Karl987314
Eine Bedienungsanleitung habe ich dazu gemacht, weil ich bislang noch keine Formel in dieser Art gefunden habe. Ich hätte sie mir auch gerne einfach kopiert und ich kann gleich damit arbeiten. Vielleicht möchte ich wirklich Feedback zur Formel haben, ob sie gut ist oder nicht. ich selbst konnte feststellen, weil ich "faul" bin und den Datenbereich immer zu groß wähle und damit die Formel an sich nicht mehr so schnell verarbeiter werden ( bitte warten sie in paar Sekunden....); Da kann mir diese Idee, dass ich einfach um den Bereich meiner Hauptformel eine Formel setze und am besten mit direktem Bereich.

Wie geschrieben, ich bin kein Roboter und ich glaube auch nicht das der mir die Formel so schreiben könnte, denn wenn der so gut wäre, dann wären bestimmt die Unterfinktionen l und ls zusammen gefasst worden sowie bei zsvb, da hatte ich noch mehr Zeit und habe die Zeilen und Spalten Berechnung in einem.

Gruß und Danke, dass das anch einer ai oder ki aussieht ;)
Anzeige
AW: Innovative LAMBDA-Formel zur Optimierung von Datenbereichen
03.07.2024 23:49:00
Karl987314
https://www.herber.de/bbs/user/170671.xlsx
Im Tabellenblatt Tabelle1 sind die Daten und in Tabelle2 die Formelbeispiele.

Und nein hier war keine ai oder ki am werken, dass musste ich mir schon selbst erarbeiten.

Denn auf dem Smartphone ist alles etwas langsamer und dann habe ich mir gedacht, dass müsste besser gehen und siehe es ging.

Nan kann die Formel im Namensmanger einbinden, dann ist die Hauptformel nicht mehr so gorß. Den habe ich hier jedoch nicht, doch es klappt auch so.

Gruß
Anzeige
AW: Innovative LAMBDA-Formel zur Optimierung von Datenbereichen
04.07.2024 06:28:20
WolfiSued
Hi,

bei mir geht bei dem Beispiel nichts.

VG
Wolfi
AW: Innovative LAMBDA-Formel zur Optimierung von Datenbereichen
04.07.2024 13:01:06
{Boris}
Hi,

also das ist schon ein (rekursives) Formelmonster.
Es gibt weitaus einfachere Möglichkeiten, den benutzen Bereich zu ermitteln (Performance mal außen vor) - wenn man das überhaupt braucht.
Wenn man z.B. intelligente Tabellen verwendet, kann man sich das alles sparen. Ist halt immer eine Sache des grundsätzlichen Aufbaus.
Ich wüsste für mich jetzt keine Einsatzmöglichkeit, die irgendwie Sinn ergibt.

Im Detail hab ich Deine Formel aber nicht analysiert.

VG; Boris
Anzeige
AW: Innovative LAMBDA-Formel zur Optimierung von Datenbereichen
04.07.2024 13:39:23
Onur
So ein Riesenaufwand (1770 Zeichen!), nur um UsedRange zu simulieren?
Mit einer UDF sind das ein paar (7) Zeilen Code.
Guckst du hier:
https://www.herber.de/bbs/user/170691.xlsm
Ist mir schon klar...
04.07.2024 14:29:26
{Boris}
Hi Onur,

...dass das per VBA ein Klacks ist ;-) Aber selbst wenn VBA tabu sein sollte, sehe ich hier für mich keine echten Anwendungsfälle, die Sinn ergeben.
Aber vielleicht übersehe ich ja irgendwas.

VG, Boris
Anzeige
AW: Ist mir schon klar...
04.07.2024 14:34:35
Onur
Aber "innovativ" !!!
Abgesehen davon: Excel365 optimiert auch deine Datei (wenn z.B. die Datei riesengross ist, weil man in Zeile 800.000 irgend eine Formatierug oder Zahl drin hat) - mann muss nur Excel das erlauben. - wenn DAS mit "Optimierung" gemeint war. :)
AW: Ist mir schon klar...
04.07.2024 16:13:27
Karl987314
Hallo und guten Tag, danke für die Rückmeldungen.

Zu die Tabelle macht bei nix:
Die xlsx Datei funktioniert nur mit Excel 365 und dann sollte diese auch etwas neuer sein und die neuen Funktionen beinhalten. Office Excel 365 geht auch, beide sind jedoch nicht gleich.
Sollte die xlsx Datei mit einem anderen Tabellenkalkulationsprogramm geöffnet worden sein, dann kommt es schon mal vor, dass die Anpassungen der Anwenung eine Formel soweit verändert und sie funktioniert dann nicht mehr.
Es kann auch sein, dass die Datei nochmals herruntergeladen muss und dann mit Excel 365 geöffnet werden.

Zu „innovativ“, UDF und Excel erlauben eine „Optimierung“ vorzunehmen:
Ich schiebt nicht wirklich ohne VBA und doch, dass das auf einem Smartphone geht und Lambda ist eine gute Möglichkeit auf Teile von VBA zu verzichten. Eine Kombination aus mehreren Möglichkeiten hilft in vielen Fällen. Es war eher eine Machbarkeitsstudie. Ich glaube 32000 Zeichen sind pro Zelle möglich, jedoch bekommen manche Funktionen ab 255 Zeichen Probleme, warum also nicht einige Zeichen mehr in ein Formel stecken.

Zu intelligente Tabellen und Möglichkeiten:
Die intelligente Tabelle finde ich auch wunderbar und oft verwendet, damit geht viel.
Jetzt wurde eine Tabelle fertig gestellt: Hilfspalten und Formeln wurden ausgeblendet, es wurde Optisch einiges getan und dann je nach Zweck verwendet. Monate gehen rum und man will was neues machen und erinnert sich, da war doch mal die eine Formeln und Lust alles einzublenden oder neu zu schreiben … und man ist mit dem Smartphone unterwegs … kurz um, die innovative Formel kopieren, ein neuesTabellenblatt hinzufügen, die Formel mit dem Bereich vom gewünschten Tabellenblatt und der Ausgabe als direkter Bereich, einfügen. Ggf. Let… Formeltext Funtion verwenden und die Inhalte nach wunsch herausholen. Oder um schnell nachzuschauen wo was steht.
Dann wieder das Tabellenblatt löschen oder Datei schließen ohne zu speichern.
Ich verwende die Formel nicht ganz so oft, jedoch war ich schon froh, dass ich die Formel hatte.

Gruß
Anzeige
AW: Ist mir schon klar...
04.07.2024 16:15:53
Onur
"Ich schiebt nicht wirklich ohne VBA " ???? Was heisst der Satz auf deutsch??
AW: Ist mir schon klar...
04.07.2024 22:07:40
Karl987314
Da ich eine Verwendung von einem Smarphone nicht ausgeschossen habe, ist VBA mit großer Wahrscheinlichkeit keine Option. Sicherlich wirft die Formel auf den ersten, zweiten und nten Blicke, Fragen auf. Die Sinnfrage der Formel zum Beispiel....

Es gibt viele Wege an ein Ziel und VBA und intelligente Tabellen sind sicherlich eine gute Möglichkeit einen Weg zu finden; jedoch sind es nicht die einzigen und auch hier die Frage: Wo möchte ich Excel einsetzen?

Um bei der Formel zu bleiben:

Teile aus der Formel kann ich ganz gut verwenden. Wie zum Beispiel zsvb, die mir einen Bereich in definierte Teilbereiche von Zeilen oder Spalten ausgibt. Die Aufteilung ist nicht an Zeilen und Spalten gebunden, es sind Zahlen die für verschiedene Dinge stehen können.

Der Tabellenname kann mit einem Smartphone auch nicht so einfach ermittelt werden und muss über Umwege mit Zelle("adresse") gefunden werden, hier mit tbn in der Formel.

Die Ausgabe als Bereich, um versteckte Inhalte zu finden.

In nicht ganz klaren Fällen die erste oder letzte Zeile oder Spalte.

Auch ab und an die Adressangabe.

Das Beispiel in der xlsx Datei ist von der Performance nicht so gut und im Normalfall würde auch nicht 7 mal mit einen zu großen Bereich gearbeitet, sondern nur einmal und die weiteren Formeln würden mit dem angespassten Bereich arbeiten bzw. die Formel selbst mit den entsprechenden Ausgaben anpassen werden.

Früher und Formeln und ein zu großer Bereich wurde ausgewählt, da wartete man manchmal auf das Ergebnis eine lange Zeit oder die Berechnung war garnicht erst möglich; Auch heute kann es noch so sein, obwohl das mit der Recherleistung heute weniger ein Problem darstellt. Dann schließe ich den Bereich einfach mit meiner Formel ein und aus lamgsam wird schnell oder die alte Formel kann doch die Berechnung durchführen und ich muß nicht lange nach einer anderen Lösung suchen.

Oft hat man schon eine sehr gute Lösung, wie aus den oben Aufgeführten oder mit anderen Wegen. Was ist, wenn sich die Bedingungen änderen, wie die gewohnte Rechenleistung und das Gerät, auf dem Excel verwendet wird?

Die Formel zu optimieren wird erstmal zurückgestellt, da die Anwendungsmöglichkeiten für sie zu klein sind.

Danke für die Rückmeldungen













Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige