Schichtplan Abwesenheitsformel
#11
Hallo,

Zitat:Chat hat mir diese Formel gegeben: 
=WENN(SUMMENPRODUKT(ZÄHLENWENN(J$5:J$34;{"aa*";"U*";"UW*";"u*";"uw*";"ÜAW*";"üaw*";"ÜA*";"üa*";"DG*";"TR*"})) / MAX(1;ANZAHL2(J$5:J$34)) >= 0,3; "⚠️ 30%"; "OK")
diese Formel ergibt eine Abwesenheit von 4 bei einer Gesamtzahl von 11, was 4/11=0,3636... ergibt.
Die korrekte Formel müsste aber eine Abwesenheit von 2 bei einer Gesamtzahl von 11 ergeben: 2/11=0,1818...
Der Fehler liegt an den falschen Inhalten der geschweiften Klammer, wodurch eine Mehrfachzählung der Abwesenheiten erfolgt.

Korrekt:
=LET(Schicht; $J$5:$J$34;
Gesamt; MAX(1;ANZAHL2(Schicht)); 
Abwesend; SUMME(ZÄHLENWENN(Schicht;{"aa*";"U*";"ÜA*";"DG*";"TR*"}));
WENN(Abwesend/Gesamt>30%;"⚠️ 30%";"OK"))
Gruß Anton.

Windows 11 64bit
Microsoft365 Insider 64bit
Antworten Top
#12
(12.03.2026, 12:27)EA1950 schrieb: Der Fehler liegt an den falschen Inhalten der geschweiften Klammer, wodurch eine Mehrfachzählung der Abwesenheiten erfolgt.

Ja, sehe ich auch so.
das ZählenWenn ist ziemlich aufwendig.

zum einen braucht man nicht zwischen Groß- und Kleinschreibung zu unterscheiden. für ZählenWenns ist "u" = "U"
warum ist der "*" hinten dran?
ein "u*" zählt halt auch alle "U" und alle "uw" und alle "UW"

ich würde auch alle Kennzeichen für Abwesend in einer Spalte listen und dann in der Formel auf diese Spalte referenzieren anstatt die Werte in der Formel fest vorzugeben.
dann kannst du auch hier prüfen, ob richtig gezählt wird, und ob die "*" notwendig sind oder nicht.

Gruß Daniel
Antworten Top
#13
Hi,

meine Formel ist bei so vielen Abwesenheitsgründen zu kompliziert. Es geht auch einfacher:


Code:
=WENN(1-SUMME(ZÄHLENWENN(J5:J34;{"F"."N"."S"}))/ANZAHL2(J5:J34)>0,3;"nicht ";"")&"ok"
=LET(xa;J5:J34;xb;1-SUMME(ZÄHLENWENN(xa;{"F"."N"."S"}))/ANZAHL2(xa);WENN(xb>0,3;"nicht ";"")&"ok")

Damit erledigt sich das Problem mit U, u, UW etc.

Für mehrere Spalten ginge das:

Code:
=LET(xa;J5:.O34;xb;NACHSPALTE(xa;LAMBDA(a;1-SUMME(ZÄHLENWENN(a;{"F"."N"."S"}))/ANZAHL2(a)));WENN(xb>0,3;"nicht ";"")&"ok")
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#14
ja, 
ich würde auch erstmal alles Zählen, was weniger Optionen hat

als wenn es für Anwesende nur F, N und S gibt:

PHP-Code:
=Let(x;J5:J34;
g;Anzahl2(x);
a;Summe(--IstZahl(Suchen(x;"|F|S|N|")));
f=g-a;
wenn(f/a>0,3;"Achtung";"i.O."))
mit x als Zellbereich
g als gesamtanzahl
a die anwesenden
f die fehlenden
Antworten Top
#15
Vielen Dank für die große Hilfe.
Ich hatte zuerst tatsächlich die LET version, diese hat alles das gemacht was ich mir gewünscht habe, leider hat die Online Version das nicht übernommen und hat fehler geworden. 

Nun Arbeite ich mit dieser Formel:
=WENN(ANZAHL2(J$98:J$118)=0; "OK"; WENN(1-SUMMENPRODUKT(ZÄHLENWENN(J$98:J$118;{"F*";"N*";"S*";"D*"}))/ANZAHL2(J$98:J$118) >= 0,3; "⚠️ 30% erreicht"; "OK"))


Die * sind dran da sich die Bezeichnung auch ändern kann.

Mit besten Grüßen
Antworten Top
#16
qweqwe


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#17
Dein jetziges Bereich J98:J118 umfasst 21 Zellen = 21 Mitarbeiter.

In diesem Beispiel sagt Deine Formel OK...
   

...obwohl nur 14% der Mitarbeiter mit F geplant sind...
L98:  =3/21
M98:  =ZÄHLENWENN(J$98:J$118;{"F*";"N*";"S*";"D*"})/(ANZAHL2(J98:J118)+ANZAHLLEEREZELLEN(J98:J118))

...und in nur 19% der Zellen ist eine Eingabe gemacht worden.
L99:  =4/21
M99:  =ANZAHL2(J98:J118)/(ANZAHL2(J98:J118)+ANZAHLLEEREZELLEN(J98:J118))

Das was Du da ausrechnest hat nichts mit dem zu tun wonach Du gefragt hast.
L100:  =1/4
M100:  =1-SUMMENPRODUKT(ZÄHLENWENN(J$98:J$118;{"F*";"N*";"S*";"D*"}))/ANZAHL2(J$98:J$118)

Das ist das Verhältnis der geplanten Dienste zu allen gemachten Eingaben.

Andreas.
Antworten Top


Gehe zu:


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