Wie kann ich bei einem vorgegebenen Datum den Wochentag (z. B. "Montag") in eine Zelle in Excel übertragen?
Wie kann ich bei einem vorgegebenen Datum den Wochentag (z. B. "Montag") in eine Zelle in Excel übertragen?
Antworten:
Einfaches Beispiel:
A1 Zelle: 08.01.2009
B1 Zelle: = TEXT (WOCHENTAG (A1), "dddd")
Dies gibt für das angegebene Datum den entsprechenden Tag aus.
Ist es das, was du dir gewünscht hast?
Die oben angegebene Antwort funktioniert nur mit Zufall, da Excel den 1.1.1900 für einen Sonntag * hält und Excel standardmäßig den Sonntag als ersten Wochentag für die Wochentagsfunktion verwendet.
Was Sie in dieser Methode tatsächlich berechnen, ist der Wochentag als Zahl und das Formatieren dieses als Tag basierend auf dieser Zahl, die als Datum interpretiert wird. Wenn Ihr Datum beispielsweise 1/2/2003 ist und Sie die WEEKDAY-Funktion verwenden, ergibt dies 7 (= Samstag). Wenn Sie dies dann als "dddd" formatieren, erhalten Sie in Excel tatsächlich den Tagesnamen des 7. Tages seit seiner "Epoche", dh dem 1.1.1900, der zufällig ein Samstag * ist. Diese Formel bricht ab, wenn jemand sie öffnet, der die Option ausgewählt hat, das auf 1904 basierende Datumssystem zu verwenden, da der 1.1.1904 kein Sonntag, sondern ein Freitag war. (Ja, ich weiß, dass kaum jemand das nutzt, aber Sie möchten keine Lösung entwickeln, die darauf aufbaut, oder?)
Sie können die Formel einfach mit kürzer, schneller und robuster machen
=TEXT(A1,"dddd")
Sie können die Datumszellen natürlich wie bereits vorgeschlagen mit einem benutzerdefinierten Format formatieren, je nachdem, ob Sie dies wirklich in einer separaten Spalte benötigen oder nicht. Ich verwende oft Datumsformate wie
ddd dd mmm yyyy
Um zB Sa 01 Feb 2003 anzugeben , ist das Datum explizit, zeigt aber auch den Wochentagsnamen an.
Die Verwendung einer zweiten Spalte und einer TEXT-Funktion ist unerlässlich, wenn Sie den Wochentag explizit irgendwo in einem Seriendruck verwenden möchten (z. B. für Währungen usw.). Beim Zusammenführen von Excel> Word wird der tatsächlich zugrunde liegende gespeicherte Wert anstelle des Werts "on" übergeben -bildschirmformatierte Version, so dass Word unabhängig vom Zellenformat eine schreckliche Zahl sieht. Ein echtes Textfeld wird unverändert übergeben und in Word ordnungsgemäß angezeigt.
* Tatsächlich ist es ein Montag, aber Excel wurde geschrieben, um mit den falschen Daten in Lotus 1-2-3 übereinzustimmen, die 1900 als Schaltjahr behandelten, wenn dies nicht der Fall ist.
Eine andere Möglichkeit, abhängig davon, was Sie später mit dem Datum tun möchten, besteht darin, das Format der Zelle auf Benutzerdefiniert: dddd festzulegen
=A1
im Beispiel der ersten Antwort eingeben .
Ich fand, dass Verschachtelungsanweisungen IF
umständlich sein können, aber es funktioniert. Wenn Sie jedoch ein wenig Tipparbeit sparen möchten, können Sie Folgendes versuchen:
=CHOOSE(WEEKDAY(A2), "Sun","Mon","Tue","Wed","Thur","Fri","Sat")
Oder wenn Sie vollständige Namen benötigen:
=CHOOSE(WEEKDAY(A2), "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
In diesem Beispiel kann "A2" eine beliebige Zelle (oder Formel) sein, die das betreffende Datum enthält. Zum Beispiel:
=CHOOSE(WEEKDAY(TODAY()), "Sun","Mon","Tue","Wed","Thur","Fri","Sat")
würde die Abkürzung mit drei Buchstaben für das drucken, was heute ist.
Sie können die Antwort auch lokalisieren, indem Sie [$ nnn] vor dem Format verwenden (der benutzerdefinierte Code lautet also: [$ nnn] dddd; @). Ändern Sie nnn mit dem richtigen Sprachcode. Ich habe die Liste nicht, aber irgendwie ist der englische Code -409 (und mein lokaler ist -421).
Ich denke, Sie können mit dem Zahlenformat experimentieren, das Sprachfeld ändern und es dann wieder in ein benutzerdefiniertes Format ändern.
A1-Zelle: 08.01.2009 B1-Zelle: = A1, dann drücken Sie Strg + 1 (Zelle formatieren), wählen Sie die Registerkarte Nummer, klicken Sie auf Benutzerdefiniert und geben Sie "DDDD" in das Textfeld ein
Zeigt das aktuelle Datum an
=TEXT(WEEKDAY(MONTH(TODAY())),"dddd")
Zeigt das aktuelle Datum mit dem erforderlichen Text an.
=CHOOSE(WEEKDAY(MONTH(TODAY())), "S-U-N-D-A-Y","M-O-N-D-A-Y","T-U-E-S-D-A-Y","W-E-D-N-E-S-D-A-Y","T-H-R-S-D-A-Y","F-R-I-D-A-Y","S-A-T-U-R-D-A-Y")
Die WEEKDAY-Funktion kann in VBA-Codes verwendet werden. Beispielsweise :
Label1.Caption = WeekdayName(Weekday(TextBox1, 0), False, 0)
Der Tagesname wird in obigem Beispiel von TextBox1 abgerufen. Ergebnis ist "Montag" .
Ich habe diese Funktion verwendet, als ich ein Benutzerformular zur Eingabe des Datums in die aktive Zelle mit einem Rechtsklick-Menü erstellt habe.