Hilfe zu LET() ,Lambda() benötigt
#11
"möchte auch nicht solche Umstellungen machen müssen " ? Umstellungen ? Das ist doch nur ein Mausklick unter Optionen - Du sollst nicht die Excel-Sprache auf Englisch umstellen. Du hörst dich an wie ein blutiger Anfänger und nicht wie ralf_b
Höchstens Anfänger werden doch "aus der Bahn geworfen", wenn sie Z1S1 sehen.

Hier die A1-Version, damit du nicht zuviel Arbeit hast 21 :

.xlsx   Formel_fuer _ZeileA1-Format.xlsx (Größe: 16,68 KB / Downloads: 2)
Antworten Top
#12
Hallo,

meine Version, die deine dynamische Tabelle beherrschen sollte, sieht wie folgt aus:
Code:
=LET(
    Daten; Tabelle1[#Alle];
    DatenKopf; INDEX(Daten; 1; 0);
    DatenZeile; XVERWEIS(A8; SPALTENWAHL(Daten; 1); WEGLASSEN(Daten; ; 1));
    TBezSpArr; FILTER(SEQUENZ(1; SPALTEN(DatenKopf)); ISTZAHL(SUCHEN("T*_Bez"; DatenKopf)));
    TBezSp1Nr; INDEX(TBezSpArr; 1);
    TBezSp2Nr; INDEX(TBezSpArr; 2);
    AnzSp; TBezSp2Nr - TBezSp1Nr;
    SpalteKopf; HSTAPELN("T"; TEXTNACH(SPALTENWAHL(DatenKopf; SEQUENZ(1; AnzSp; TBezSp1Nr)); "_"));
    SpalteT; TEXTVOR(ZUSPALTE(INDEX(DatenKopf; 0; TBezSpArr)); "_");
    SpalteDat; ZEILENUMBRUCH(DatenZeile; AnzSp);
    VSTAPELN(SpalteKopf; HSTAPELN(SpalteT; SpalteDat))
)
falls das noch von Belang sein sollte. Ansonsten vergiss den Vorschlag. 
Ich weiß auch nicht, ob deine Excel-Version ihn beherrscht.
Mit lieben Grüßen
Anton.

Windows 10 64bit
Office365 32bit
Antworten Top
#13
Zitat:Die Tabelle wird durch PQ eingelesen. Die Anzahl der T-Blöcke ist erstmal unbekannt. 

Soll dies heißen, dass du diesen Aufwand nur betreibst, um das Ergebnis mit Power Query einzulesen?

Wenn dem so ist, warum machst du diese Transformation nicht in Power Query?

Anbei die gewünschte Transformation, die mit Power Query auch ganz einfach geht.


Angehängte Dateien
.xlsx   cef - Hilfe zu LET() ,Lambda() benötigt (PQ).xlsx (Größe: 25,27 KB / Downloads: 3)
Antworten Top
#14
(09.11.2024, 17:25)oee schrieb: Du hörst dich an wie ein blutiger Anfänger und nicht wie ralf_b
Höchstens Anfänger werden doch "aus der Bahn geworfen", wenn sie Z1S1 sehen.

das klingt schon fast wie ein Kompliment.   98 

Ich fühle mich tatsächlich auch öfters wie ein blutiger Anfänger. Da ich eigentlich nur bissel VBA als Hobby mache und den andern Kram ,Formeln, intelligente Tabellen, Pivottabellen, PQ, Sharepoint, Teams, Spillformeln, und jetzt Let(), Lambda(), Officescript nur so ankratze. 

Die Leute, die diese Datei benutzen sollen, werden mit Sicherheit ab und an irgendwo aus der Bahn geworfen. Mich stört das umstellen auf Z1S1 einfach, weil ich in der Vergangenheit da schon mal Probleme damit hatte das mir mein ganzes System immer mit der Einstellung gestartet ist und das hat genervt.  
 
@ WS_53  PowerQuery holt mir nur eine Quelltabelle in die Mappe. Daraus will ich die Daten teilweise auf die Arbeitsblätter holen und mit Dropdownauswahl einzelne Teilbereiche einblenden. Bei aktuell 53 Spalten dachte ich das wäre ne gute Möglichkeit, um nicht immer 53 Spalten eines Datensatzes dem User vor die Nase zu klatschen.    
Die Transformation schaue mich mir gleich mal an. 

Ich würde die ganze Sache auch anders aufbauen wenn ich wüßte wie.   

Danke für Eure Hilfe.   

rb
Antworten Top
#15
" Ich würde die ganze Sache auch anders aufbauen wenn ich wüßte wie.   "
Dafür müsste man aber das Problem im vollem Umfang kennen und nicht nur die Endphase.
Antworten Top
#16
ja das stimmt, ich frage einfach viel zu wenig nach Hilfe.  

Es geht um eine etwas umfangreichere(aus meiner Sicht) Berechnung, die in einem Bericht münden soll.  
Wahrscheinlich das ganz normale Übel, das die Profis im Controlling und/oder Sales or whereever den ganzen lieben langen Tag machen. 
Aktuell versuche ich hier die Eingangsdaten zu strukturieren, damit die für die Berechnungen sauber zur Verfügung stehen und später dann einzelne Werte daraus in einem Wordbericht per OLE-Verlinkung eingebettet werden können. Ich habs mir bissel einfacher vorgestellt als es sich grad entpuppt.
Antworten Top
#17
Hallo,

anbei mein Beitrag mit einer Formellösung (und auch Randbedingungen) ...

Code:
=LET(vnIdentity; A8;
     vnTable; Tabelle1[#Alle];
     vnData; WENNFEHLER(INDEX(vnTable; VERGLEICH(vnIdentity; INDEX(vnTable; 0; 1); 0); 0); "");
     vnHeaders; INDEX(vnTable; 1; 0);
     vnPositions; LET(A; WENNFEHLER(SUCHEN("T*_"; vnHeaders); 0) * SEQUENZ(1; SPALTEN(vnHeaders)); FILTER(A; A > 0; 1));
     vnLeft; EINDEUTIG(REDUCE("T"; vnPositions; LAMBDA(A;V; HSTAPELN(A; INDEX(TEXTTEILEN(INDEX(vnHeaders; 1; V); "_"); 1; 1)))); WAHR);
     vnTop; EINDEUTIG(WEGLASSEN(REDUCE(""; vnPositions; LAMBDA(A;V; HSTAPELN(A; LET(X; INDEX(TEXTTEILEN(INDEX(vnHeaders; 1; V); "_"); 1; 2); WENN(ISTZAHL(--TEIL(X; 2; 1)); LINKS(X; 1); X))))); 0; 1); WAHR);
     vnMatrix; REDUCE(vnTop; SEQUENZ(SPALTEN(vnLeft) - 1); LAMBDA(A;V; VSTAPELN(A; WENNFEHLER(INDEX(vnData; 1; SPALTENWAHL(vnPositions; SEQUENZ(1; SPALTEN(vnTop); SPALTEN(vnTop) * (V - 1) + 1))); ""))));
     HSTAPELN(MTRANS(vnLeft); vnMatrix))

Erkennt auch versetzte Böcke, also mit Spalten zwischen den Blöcken, die nicht dem Muster T*_* entsprechen.
Setzt allerdings voraus, dass die jeweils erkannten Blöcke alle dieselbe Reihenfolge der Felder Bez, L, B und H haben, wie der erste.
Und, dass alle Blöcke dieselbe Breite an Spalten haben, also einmal Bez-L-B-H und Bez-L-H geht nicht.
Die Variable vnTop entfernt die Zahlen aus L3 bei bspw. T3_L3. Ein Muster wie  T3_Labc würde allerdings nicht erkannt.

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awards
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
Antworten Top
#18
Zitat:PowerQuery holt mir nur eine Quelltabelle in die Mappe. Daraus will ich ...

Ja, dann musst du halt mal den gesamten Prozess erklären, anstatt nur eine Puzzleteil zu nennen, das du nicht gelöst bekommst. Denn nur dann lässt sich tendenziell erkennen, wie es insgesamt am besten gestaltet werden könnte.
Antworten Top
#19
Hallo Ralf,

hier mal meine PQ-Version, um 1  per DropDown festgelegte Tabellenzeile auszulesen und als Tabelle darzustellen.

Gruß von Luschi
aus klein-Paris


Angehängte Dateien
.xlsx   Formel_fuer _Zeile4b.xlsx (Größe: 31,04 KB / Downloads: 3)
Antworten Top
#20
Hi Luschi,

der Shritt: Table.RemoveColumns(Quelle,{"T1_Bez", "T1_L", "T1_B", "T1_H", "T2_Bez", "T2_L", "T2_B", "T2_H", "T3_Bez", "T3_L", "T3_B", "T3_H"})

ist wohl ein kleiner Flüchtigkeitsfehler, da ja die Anzahl der T-Blöcke unterschiedlich ist.

Somit eher:     #"Behaltene Spalten" = Table.SelectColumns(Quelle,{"ID", "neue Sp"}),

Und ich würde, wenn es denn den Erwartungen entspricht, die 2 Abfragen bei Änderung der Auswahl per Makro aktualisieren. Aber das würdest du vermutlich auch so machen.
Antworten Top


Gehe zu:


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