05.12.2024, 17:37 (Dieser Beitrag wurde zuletzt bearbeitet: 05.12.2024, 17:37 von Driver.)
Hallo zusammen,
irgendwie funktioniert eine LET Funktion nicht. Diese sieht so aus: =LET( e; EINDEUTIG(HSTAPELN(JAHR('time_card | Tag | ohne 0'!A2:A4000); TEXT('time_card | Tag | ohne 0'!A2:A4000; "MMMM"); 'time_card | Tag | ohne 0'!D2:D4000; 'time_card | Tag | ohne 0'!C2:C4000; 'time_card | Tag | ohne 0'!L2:L4000)); VSTAPELN( {"Jahr"."Monat"."Name"."Kategorie"."Tagessatz"."Stunden"."Kosten"}; HSTAPELN( e; SUMMEWENNS( 'time_card | Tag | ohne 0'!I2:I4000; JAHR('time_card | Tag | ohne 0'!A2:A4000); INDEX(e;;1); TEXT('time_card | Tag | ohne 0'!A2:A4000; "MMMM"); INDEX(e;;2); 'time_card | Tag | ohne 0'!D2:D4000; INDEX(e;;3); 'time_card | Tag | ohne 0'!C2:C4000; INDEX(e;;4) ); SUMMEWENNS( 'time_card | Tag | ohne 0'!I2:I4000; JAHR('time_card | Tag | ohne 0'!A2:A4000); INDEX(e;;1); TEXT('time_card | Tag | ohne 0'!A2:A4000; "MMMM"); INDEX(e;;2); 'time_card | Tag | ohne 0'!D2:D4000; INDEX(e;;3); 'time_card | Tag | ohne 0'!C2:C4000; INDEX(e;;4) ) * INDEX(e;;5) / 8 ) ) )
Idee ist: nun möchte ich unter Blatt 'Blatt 2' eine Tabelle die mir anzeigt: Spalte 1 Jahr Spalte 2 Monat Spalte 3 Benutzer Spalte 4 Kategorie Spalte 5 Tagessatz Spalte 6 Stunden (alle in diesem Monat abgeleisteten Stunden von dem Benutzer aufsummiert) Spalte 7 Kosten (berechnet nach Anzahl der Stunden in dem Monat * den Tagessatz /8) Erklärung ein Arbeitstag hat 8 Stunden.
anbei auch das Excel (genutzt wird Excel 365 deutsch)
Du kannst doch nicht innerhalb der Definition von Variable e diese Variable e benutzen - sie ist ja noch gar nicht zu Ende definiert. Das wäre ein klassischer "Zirkelbezug".
06.12.2024, 10:04 (Dieser Beitrag wurde zuletzt bearbeitet: 06.12.2024, 10:04 von BoskoBiati.)
Hi oee,
Zitat:Du kannst doch nicht innerhalb der Definition von Variable e diese Variable e benutzen - sie ist ja noch gar nicht zu Ende definiert. Das wäre ein klassischer "Zirkelbezug".
das ist nicht das Problem, der Teil ist korrekt! Problem ist, dass SUMMEWENNS nicht mit Jahr(Bereich);Monat(Bereich) und Tag(Bereich) umgehen kann!
@Driver,
so sollte es passen:
Code:
=LET(e;EINDEUTIG(HSTAPELN(JAHR('time_card | Tag | ohne 0'!A2:A4000);TEXT('time_card | Tag | ohne 0'!A2:A4000;"MMMM");'time_card | Tag | ohne 0'!D2:D4000;'time_card | Tag | ohne 0'!C2:C4000;'time_card | Tag | ohne 0'!L2:L4000));VSTAPELN({"Jahr"."Monat"."Name"."Kategorie"."Tagessatz"."Stunden"."Kosten"};HSTAPELN(e;SUMMEWENNS('time_card | Tag | ohne 0'!I2:I4000;'time_card | Tag | ohne 0'!A2:A4000;">=1."&INDEX(e;;2)&"."&INDEX(e;;1);'time_card | Tag | ohne 0'!A2:A4000;"<="&MONATSENDE("1."&INDEX(e;;2)&"."&INDEX(e;;1);0);'time_card | Tag | ohne 0'!D2:D4000;INDEX(e;;3);'time_card | Tag | ohne 0'!C2:C4000;INDEX(e;;4));SUMMEWENNS('time_card | Tag | ohne 0'!I2:I4000;'time_card | Tag | ohne 0'!A2:A4000;">=1."&INDEX(e;;2)&"."&INDEX(e;;1);'time_card | Tag | ohne 0'!A2:A4000;"<="&MONATSENDE("1."&INDEX(e;;2)&"."&INDEX(e;;1);0);'time_card | Tag | ohne 0'!D2:D4000;INDEX(e;;3);'time_card | Tag | ohne 0'!C2:C4000;INDEX(e;;4))*INDEX(e;;5)/8)))
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr! Über Rückmeldungen würde ich mich freuen.
Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag 28 • Driver
06.12.2024, 12:20 (Dieser Beitrag wurde zuletzt bearbeitet: 06.12.2024, 12:20 von maninweb.)
Hallo,
in der Beispieltabelle wird Ralf Rabi im selben Monat (Feb. 23) einmal mit einem Tagessatz von 60 und einmal mit 65 aufgeführt. Meiner Ansicht nach müsste somit auch nach Tagessatz gesplitted werden, so denn Tagessatz als Spalte im Ergebnis aufgeführt wird.
Die Formel sieht dann bei wie mir folgt aus, die zudem ein anderes Ergebnis in Summe liefert, als die Formeln hier oben im Thread.
um den schrecklichen Arbeitsblattnamen in der Formel zu beseitigen und den Datenbereich dynamisch zu gestalten, habe ich aus den Quelldaten eine strukturierte (intelligente) Tabelle erzeugt mit Namen "tbDaten". Ferner habe ich für die Jahr/Monats-Gruppierung nur 1 Spalte verwendet und erst die Ausgabe im Arbeitsblatt gesplittet auf 2 Spalten.