Wie kann ich in Excel folgendes Problem lösen?

3 Antworten

Die Funktion WENNS() ist Dein Freund (Die Formel "schlägt zu", sobald von links nach rechts gelesen eine Bedingung erfüllt ist. Daher ist manchmal die Reihenfolge der Bedingungen von großer Bedeutung):

=WENNS(D5="N";"22:00";D5="SN";"....";...)

Achtung: Du schreibst das nur in die erste Zeile 5 und kopierst dann die Formel nach unten. Du gibst nicht den ganzen Bereich D5:D300 an. Das ist in Deiner WENN-Formel schon falsch (bzw. funktioniert evtl. nur, weil Excel eine Matrix-Evaluierung draus macht).


Gadomi 
Beitragsersteller
 07.09.2024, 12:10

Ich habs jetzt mal probiert und umgewandelt in folgende Formel:" =WENNS(D6="N1";"18:00h";D6="NF";"22:00h";D6="SLN";"22:00h";D6="F";"06:00h";D6="SF";"08:00h";D6="FL";"18:00h";D6="N";"22:00h";D6="S";"14:00h";D6="W";"07:00h";D6="T";"15:45h") " (Ja ich habe die Zeile in 6 geändert, weil ich noch was einfügen musste. Nun sagt er mir überall "#NAME?"

evtldocha  07.09.2024, 12:20
@Gadomi

Meine Herren und Damen. Du knallst in Deiner Frage ein Bild hin, ohne zu sagen, was da sonst noch an Formeln, Berechnungen und Formatierungen und Zellinhalten steht, und schreibst dann blind ab. Soweit so gut und normal hier: Und dann beschwerst Du Dich mit der lapidaren Meldung. "Nun sagt er mir überall "#NAME?". Schönen Tag noch ... ich bin aber dann mal weg, denn bei dieser "Mach' mal"-Haltung habe ich keine weiteren Hilfe-Ambitionen.

Gadomi 
Beitragsersteller
 07.09.2024, 12:35
@evtldocha

Was ist denn mit Dir? Ich verstehe einfach nicht, warum er jetzt überall "#NAME?" schreibt, obwohl laut -meiner- logig eigtl. klar sein sollte, dass er Spalte D6 bis in meinem Falle 492 abfragt, ob dort ein N, ein F, ein SLN oder anderer Schichteintrag steht, und mir dann im Gegenzug in Spalte E den entsprechenden Text schreibt, wie z.B. 06:00h, oder 22.00h, oder welche Zeit auch immer. Excel ist halt nicht meine Stärke, für mich wäre quasi ein Befehl sinnvoll, wie z.B. "Wenn in Spalte D6 N steht, schreibe 22.00h in Spalte E6, steht jedoch ein F, dann schreibe 06:00h in spalte E6 und so weiter. Den Rest der Tabelle, hab ich mir schon raussuchen können, wie z.B. eine Trennung nach Wochen, Sonntage und Samstage extra markieren usw..
Ich hab sogar mal versucht, das ganze ins englische zu übernehmen mit "IFS". Ich verstehe in dem Falle einfach den Logikfehler nicht, warum er mir eben jetzt #NAME? anzeigt. Aber okay, dann schau ich einfach mal weiter..Werd mich mal mit der unten aufgeführten Hilfstabelle versuchen zu beschäftigen. Excel-Programmierung ist halt nicht meine Stärke.

Gipfelstuermer  11.09.2024, 10:02
@Gadomi

#Name bedeutet, dass Excel die Formel unbekannt ist, hier vermutlich WENNS, ich tippe mal du hast eine Version älter 2019

Mache eine Hilfstabelle irgendwo, ich gehe mal davon aus, dass du die in J4:L10 hast (wo du die hinmachst ist aber egal, musst das dann nur in der Formel anpassen, kann auch auf ein anderes Blatt):

J4: Bezeichnung, K4: Start, L4: Ende; J5: N, K5: 6:00; L5: 14:00 (die Zeiten eben, da drunter für die anderen Schichten, ich gehe mal davon aus, dass die bis Zeile 10 geht).

In E4 schreibst du dann =SVERWEIS(D4; $J$5:$L$10; 2; FALSCH);

In F4 analog: =SVERWEIS(D4; $J$5:$L$10; 3; FALSCH);

Die Formel dann aus Zeile 4 iun die anderen Zeilen kopieren.

Spart im Vergleich zu vielen WENN Tipparbeit und lässt sich einfacher ändern/erweitern.

Bild zum Beitrag

 - (Microsoft, Formel, Microsoft Excel)

Gadomi 
Beitragsersteller
 07.09.2024, 13:26

VIELEN lieben Dank. Ich hab zwar jetzt ein bisschen gebraucht, aber nun hab ich es geschafft. das ist SO toll.... das einzige was mir -noch- nicht gefällt, ist, dass an Tagen wo keine Schicht ist, er eben dann #NV einträgt :)

Gadomi 
Beitragsersteller
 07.09.2024, 12:22

Nein, ich habe keine Hilfstabelle. Mit sowas hab ich mich noch nie beschäftigt :-) Für mich ist es mein privater Schichtplan,den ich jährlich im Voraus bekomme.Ich möchte aber eben nicht ständig die Zeit eintragen, sondern möchte eigtl. nur, dass er automatisch bei der entsprechenden Schichtkennzeichnung automatisch in die Spalten E und F im jetzigen Fall, die Zeit einträgt, von wann bis wann die Schicht geht etc. Mit dem vielen tippen hab ich genrell weniger ein Problem, nur will er mir halt einfach die Bedingung nicht anerkennen. Ich will halt gern, dass ich quasi in Spalte D nur die Schichtkennzeichnung eintippen muss (F,SF,LF,N1,N,SLN usw.) und er mir dann automatisch die Startuhrzeit einträgt, bzw. dann in Spalte F die Enduhrzeit.

iQa1x  07.09.2024, 12:27
@Gadomi

Mache eben eine Hilfstabelle. Ich häng oben noch ein Bild an. Die Hilfstabelle kann irgendwo hin, auch auf ein anderes Blatt, musst nur den Bezug in der Formel passend ändern. Im Bild habe ich die Schichtbezeichnungen etwas vereinfacht...

iQa1x  07.09.2024, 12:31
@Gadomi

Ggf. musst du in der "Haupttabelle" die Zellen mit den Formeln noch formatieren, da also als Format "Zeit" auswählen, damit er es richtig einträgt.

Gadomi 
Beitragsersteller
 07.09.2024, 12:42
@iQa1x

ich versuch mich mal mit so einer Hilfstabelle. Generell versteh ich den Ansatz, kappier es zwar noch nicht so ganz, aber versuche es mal. Meine "Programmierkenntnisse" beschränken sich auf damals Qbasic, und selbst da hatte ich oft Probleme. Bisher bekam ich eigtl. alles immer ganz gut hin, aber da bin ich jetzt echt mal überfragt.

iQa1x  07.09.2024, 13:36
@Gadomi

Die Hilfstabelle ist einfach "nur" eine Tabelle der Zuordnungen von Schichtname zu Zeiten. Wichtig ist nur, dass der Schichtname, also das was gesucht werden soll, in der ersten Spalte steht. Die ganze Arbeit mach SVERWEIS. Das bekommt als erstes, was es suchen soll, also die Zelle mit der Eingabe. Dann den Tabellenbereich, in dem es suchen soll, wobei nur die erste Spalte durchsucht wird. Der ist in der Formel mit $ festgelegt, damit er beim Kopieren der Formel gleich bleibt (absoluter Bezug). Dann die Nummer der Spalte, die als Ergebnis ausgegeben werden soll. Zum Schluss "FALSCH", weil nach genauer Übereinstimmung gesucht werden soll. Mit "WAHR" dort könnte man auch Tabellen mit von 0 bis 1, 1 bis 3, etc als Kriturium machen, dann muss die Hilfstabelle aber sortiert sind. Das ist hier nicht nötig (z.B. bei Punkten in Noten umrechnen habe ich das schon verwendet).

z.BG. so

=WENN($D5="N";"22:00";WENN($D5="SLN";"23:00";WENN($D5="SF";"13:00";WENN($D5="F";"14:45";WENN($D5="FL";"18:00";WENN($D5="S";"22:45";WENN($D5="N1";"03:45";WENN($D5="NF";"05:45";WENN($D5="SN";"00:00";"")))))))))

Bild zum Beitrag

... usw. Formel kopieren und die Zerit für das Ende entsprechend anpassen

Bild zum Beitrag

Ich würde folgendes vorziehen

Bild zum Beitrag

 - (Microsoft, Formel, Microsoft Excel)  - (Microsoft, Formel, Microsoft Excel)  - (Microsoft, Formel, Microsoft Excel)

Gadomi 
Beitragsersteller
 07.09.2024, 14:19

Danke, das werd ich in der nächsten Variante meines Schichtplanes mal austesten. Jetzt hab ich es mit dem Hinweis von @iQa1x erst mal mit einer Hilfstabelle lösen können. Hab diese Hilfstabelle einfach um einige Zeilen erweitert, z.B. für freie Tage etc. damit nicht in dem Plan zwischendrin "#NV" steht. so langsam komm ich ein wenig dahinter :)

GutenTag2003  07.09.2024, 14:27
@Gadomi

Die Formel um Wennfehler ... ergänzen siehe meine Antwort

=WENNFEHLER(SVERWEIS($D5;$H:$J;2;FALSCH);"")