Registriert seit: 13.04.2014
Version(en): 365
Hallo zusammen,
ich habe in einem Urlaubskalender mehrere Zeiträume, die ich untereinander auflisten möchte. Wie bewerkstellige ich das mit einer Lambda-Funktion in 365?
Mustertabelle mit vorhanden Daten (A:C) und Wunschlösung (E):
Sequenz spillen.xlsx (Größe: 10,09 KB / Downloads: 25)
Gruß Edgar Meine Antworten sind freiwillig und ohne Gewähr! Über Rückmeldungen würde ich mich freuen.
Registriert seit: 16.08.2020
Version(en): Office 2024
Hallo Edgar,
wenn es nicht dynamisch in den Vorgabespaltenbereich sein soll reicht das:
Code:
=LET(xA;SEQUENZ(2;;A1;1);xB;SEQUENZ(B2-B1+1;;B1;1);xC;SEQUENZ(C2-C1+1;;C1;1);VSTAPELN(xA;xB;xC))
Gruß Uwe
Registriert seit: 13.04.2014
Version(en): 365
Hallo Uwe, da es sich am Ende um mehr Spalten handelt, ist es mir schon wichtig, das Ganze mit einer LAMBDA zu lösen, da die Formel sonst ausufert.
Gruß Edgar Meine Antworten sind freiwillig und ohne Gewähr! Über Rückmeldungen würde ich mich freuen.
Registriert seit: 12.08.2019
Version(en): Office 365
Hallo Edgar, mit NAMEN im Namensmanager. (s. Mappe) Einfach Formel eingeben: = Datu... , dann dem MS-Assistent bei der Eingabe der Parameter folgen. Gruß Sigi
Angehängte Dateien
Datum3Bereiche.xlsx (Größe: 11,4 KB / Downloads: 5)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen, ein unausufernder Ansatz wäre vielleicht auch anders herum, also aus einer Liste der Tage eines Jahres die rausfiltern, die man (nicht) benötigt. Die Liste ist ja noch einfach ... SEQUENZ(365;1;"01.01.2026") Aber wie bekomme ich die gefiltert? Das Prinzip wäre doch =FILTER(SEQUENZ(365;1;"01.01.2026");SUMMENPRODUKT(SEQUENZ(365;1;"01.01.2026")>=($A$1:$C$1))*(SEQUENZ(365;1;"01.01.2026")<=($A$2:$C$2))) Allerdings bringt das erst mal #Wert
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 02.12.2017
Version(en): Microsoft365 Insider 64Bit
Hallo,
ich habe dir in
Zelle I1 die Funktion
=Perioden(A1:C2) eingefügt.
Die Funktion ist als LAMBDA-Funktion im Namensmanager unter dem Namen
Perioden enthalten.
PHP-Code:
Perioden = LAMBDA ( m ; LET ( r ; REDUCE ( 0 ; SEQUENZ ( 1 ; SPALTEN ( m )); LAMBDA ( Akk ; i ; LET ( AnfI ; INDEX ( m ; 1 ; i ); EndI ; INDEX ( m ; 2 ; i ); idvb ; SEQUENZ ( EndI - AnfI + 1 ; 1 ; AnfI ); VSTAPELN ( Akk ; idvb ) )) ); WEGLASSEN ( r ; 1 ) ));;
Angehängte Dateien
BoskoBiati_Sequenz spillen (2).xlsx (Größe: 13,97 KB / Downloads: 5)
Gruß Anton.Windows 11 64bit Microsoft365 Insider 64bit
Registriert seit: 16.08.2020
Version(en): Office 2024
20.11.2025, 15:06
(Dieser Beitrag wurde zuletzt bearbeitet: 20.11.2025, 15:09 von Egon12 .)
Hallo Edgar,
ich habe etwas gebraucht um den Wert 0 in der 1. Ausgabezelle rauszubekommen.
Nun wäre die Lösung so:
Code:
=LET( xZ; 1:2; xZa; INDEX(xZ;1;); xLs; MAX(WENN(ISTZAHL(xZa);SPALTE(xZa);0)); xSp; SEQUENZ(xLs;1;1); xInit; 0; xVst; REDUCE( xInit; xSp; LAMBDA(pS;pL; LET( Start; INDEX(xZ;1;pL); Ende; INDEX(xZ;2;pL); xBer; WENN(UND(ISTZAHL(Start); ISTZAHL(Ende); Ende >= Start); SEQUENZ(Ende - Start + 1; ; Start; 1); SEQUENZ(0;1) ); VSTAPELN(pS; xBer) ) ) ); FILTER(xVst; ISTZAHL(xVst)*(xVst<>0)) )
Das klappt natürlich dynamisch.
Gruß Uwe
Ich habe jetzt eben nach weiteren Tests mal noch vorsorglich Sortieren mit eingebaut, wenn die Datumsbereiche willkürlich in den Spalten stehen sollten.
Also dann so:
Code:
=LET( xZ; 1:2; xZa; INDEX(xZ;1;); xLs; MAX(WENN(ISTZAHL(xZa);SPALTE(xZa);0)); xSp; SEQUENZ(xLs;1;1); xInit; 0; xVst; REDUCE( xInit; xSp; LAMBDA(pS;pL; LET( Start; INDEX(xZ;1;pL); Ende; INDEX(xZ;2;pL); xBer; WENN(UND(ISTZAHL(Start); ISTZAHL(Ende); Ende >= Start); SEQUENZ(Ende - Start + 1; ; Start; 1); SEQUENZ(0;1) ); SORTIEREN(VSTAPELN(pS; xBer);;1) ) ) ); FILTER(xVst; ISTZAHL(xVst)*(xVst<>0)) )
Gruß Uwe
Registriert seit: 15.04.2018
Version(en): 2013
Hi
ist zwar ohne Lambda, sollte aber trotzdem beliebig viele Spalten beherrschen:
PHP-Code:
= LET ( a ; $A $ 1 : $C $ 2 ; b ; SEQUENZ ( MAX ( a )- MIN ( a )+ 1 ;; MIN ( a )); FILTER ( b ; b <= WVERWEIS ( b ; a ; 2 ; 1 )))
hier wird im ersten Schritt (b) die gesamtsequenz über alle Datumswerte erstellt, dann werden im zweiten Schritt die nicht benötigen wieder entfernt.
Gruß Daniel
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
@Daniel,
schöne Lösung,
Ansonsten, ohne LET, aber wieder nur per Formelerweiterung skalierbar, geht's auch:
=--TEXTTEILEN((TEXTVERKETTEN(";";;SEQUENZ(2;;A1;1);SEQUENZ(B2-B1+1;;B1;1);SEQUENZ(C2-C1+1;;C1;1)));;";")
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
Ich möchte mich kurz anschließen. @Daniel: Top!
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)