Hilfe zu LET() ,Lambda() benötigt
#1
Hi,

ich beiße mir grad die Zähne an einem, dachte ich, einfachen Teil aus. 
Es wäre echt klasse wenn mir einer der Kollegen hier auf die Sprünge helfen könnte. 
Es geht darum das ich in einem Datensatz bestimmte Spaltenblöcke identifizieren möchte und als neue Tabelle(Suchergebnis) darstellen will.  
Im Grunde erhalte ich statt meiner Daten nur einen #calc , #wert oder #nv Fehler. Je nachdem was ich versuche. Der nicht funktionierende Teil ist der "mapping"- Abschnitt  

PHP-Code:
=LET(DatenTabelle1[#Alle];
ÜberschriftenINDEX(Daten1; );
aktrowINDEX(DatenVERGLEICH(A8SPALTENWAHL(DatenVERGLEICH("ID"Überschriften0)); 0); 0);
suchbegriffeMTRANS(WECHSELN(FILTER(ÜberschriftenISTZAHL(SUCHEN("T*_Bez"Überschriften))); "_Bez"""));
mapping;MAP(suchbegriffeLAMBDA(zFILTER(aktrowLINKS(ÜberschriftenLÄNGE(z)) = z)));
HSTAPELN(suchbegriffe;mapping)


In der Beispieldatei habe ich auch ein Wunschergebnis abgebildet. 

.xlsx   Formel_fuer _Zeile.xlsx (Größe: 18,42 KB / Downloads: 10)

danke schonmal fürs Draufschauen und evtl. auch einen Tip.

rb
Antworten Top
#2
Warum so kompliziert?

.xlsx   Formel_fuer _Zeile2.xlsx (Größe: 18,49 KB / Downloads: 3)
Antworten Top
#3
Moin!
Du weißt ja, dass eine Lösung immer nur so gut wie das Beispiel sein kann. Wink
Dein Ergebnis erhalte ich ohne LET() und LAMBDA()
Zitat:=VSTAPELN(
    TEXTTEILEN("T Bez L B H"; " ");
    HSTAPELN(
        {"T1"; "T2"};
        ZEILENUMBRUCH(
            WEGLASSEN(INDEX(Tabelle1; VERGLEICH(A8; Tabelle1[ID]; 0); ); ; 1);
            4
        )
    )
)

Fragt sich nur, ob das alle Fälle der tatsächlichen Datei abdeckt.

Gruß vom Namensvetter
Ralf
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)
Antworten Top
#4
Hier sogar mit Überschriften:


Angehängte Dateien
.xlsx   Formel_fuer _Zeile3.xlsx (Größe: 18,71 KB / Downloads: 9)
Antworten Top
#5
Da die Überschriften (Spalten (B8:F8) und Zeilen (B9:B10)) ja ohnehin fest sind, wird die Formel mittels XVERWEIS "etwas" kürzer als das Original …
ABCDEFGHI
1IDT1_BezT1_LT1_BT1_HT2_BezT2_LT2_BT2_H
2000001beh1325beh1_2432
3000002beh2147beh2_2569
4000003beh3325beh3_2432
5000004beh4147beh4_2147
6
7Wunschergebnis
8000002TBezLBH
9T1beh2147
10T2beh2_2569

ZelleFormel
C9=ZEILENUMBRUCH(XVERWEIS(A8;A:A;B:I);4)

ZelleGültigkeitstypOperatorWert1Wert2
A8Liste=$A$2:$A$5
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)
Antworten Top
#6
Danke an euch Beide für die Lösungsansätze. 

Ich bin noch lange nicht so weit mit den neuen Funktionen, das ich weis was jede so für Nutzbarkeiten mit sich bringt.  
Zeilenumbruch() hab ich noch nicht auf dem Schirm. 

Leider sind eure Ansätze für mich nicht direkt anwendbar aber sehr nützlich. Ich habe die Tabelle stark eingekürzt, um es auf den für mich wichtigen Teil zu konzentrieren.
Ich erweitere mal die Voraussetzungen, da sie doch etwas wichtiger sind als gedacht.   

Die Z1S1 Bezugsart kann ich nicht verwenden. 
Die Tabelle hat eigentlich noch viel mehr Spalten.
Die T1, T2 ..Tn  Spaltenblöcke sind dynamisch. Die Tabelle wird durch PQ eingelesen. Die Anzahl der T-Blöcke ist erstmal unbekannt. 
Deshalb zähle ich in meiner Vorgabe erstmal die "T*_Bez" Spalten.
Auch für die anderen Werte habe ich deshalb separate Elemente erstellt, das ich später mal die Funktion besser durchblicke.  
 
Den MAP (Lambda()) Teil habe ich so übernommen ,weil ich sowas schon anderweitig umsetzen konnte. Mir ist aber völlig unklar wieso das hier nicht funktioniert. Es würde mich freuen ,wenn mir hier genau bei dem Punkt etwas Licht ins Dunkel bringt. 

hier mal eine erweiterte Basteldatei 
.xlsx   Formel_fuer _Zeile4.xlsx (Größe: 16,48 KB / Downloads: 6)


vielen Dank schon Mal falls hier noch wer bissel basteln möchte. 

rb
Antworten Top
#7
" Die Z1S1 Bezugsart kann ich nicht verwenden.  "?
Ähmmm - Ist das jetzt ein Witz? Du brauchst doch nur auf A1 umzustellen. Das ändert doch gar nix an der Funktion der Formeln.
Antworten Top
#8
Hallo,
Zitat:Den MAP (Lambda()) Teil habe ich so übernommen ,weil ich sowas schon anderweitig umsetzen konnte. Mir ist aber völlig unklar wieso das hier nicht funktioniert.
wenn du auf das kleine Fehlerdreieck neben der Zelle mit dem #CALC!-Fehler mit der Maus zeigst, bekommst du den Hinweis, warum es nicht funktioniert: "Geschachtelte Matrizen werden nicht unterstützt."
Du hast nämlich folgende Code-Zeile bei der MAP-Funktion:
mapping;MAP(suchbegriffe; LAMBDA(z; FILTER(aktrow; LINKS(Überschriften; LÄNGE(z)) = z)));
Du darfst aber pro z-Parameter-Wert nur jeweils 1 Wert zurückgeben - deine FILTER-Funktion gibt da aber sicher mehrere Werte (nämlich ein Array) zurück.
Mit lieben Grüßen
Anton.

Windows 10 64bit
Office365 32bit
Antworten Top
#9
Hier die neue Formel:

.xlsx   Formel_fuer _Zeile4b.xlsx (Größe: 16,69 KB / Downloads: 2)
Antworten Top
#10
(09.11.2024, 16:49)oee schrieb: Ähmmm - Ist das jetzt ein Witz? Du brauchst doch nur auf A1 umzustellen. Das ändert doch gar nix an der Funktion der Formeln.

das hast du recht, es ist aber kein Witz eher ein Missverständnis. Ich hätte schreiben sollen: "möchte ich nicht verwenden".  Ich verwende es nie und möchte auch nicht solche Umstellungen machen müssen, da die Datei später mal andere Leute verwenden  sollen.

(09.11.2024, 16:54)EA1950 schrieb:  "Geschachtelte Matrizen ..."
 das sind für mich fast noch böhmische Dörfer. Aber danke für die Erklärung.
Antworten Top


Gehe zu:


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