Jak wprowadzić nazwę dnia do komórki w Excelu?
Jak mogę wprowadzić dzień tygodnia (np. “poniedziałek”) do komórki w Excelu, biorąc pod uwagę datę?
Jak mogę wprowadzić dzień tygodnia (np. “poniedziałek”) do komórki w Excelu, biorąc pod uwagę datę?
Odpowiedź podana powyżej działa tylko przez przypadek, ponieważ Excel uważa, że 1/1/1900 to niedziela, a domyślnie Excel używa niedzieli jako pierwszego dnia tygodnia dla funkcji Dzień tygodnia.
To, co faktycznie obliczasz w tej metodzie, to dzień tygodnia jako liczba, a następnie formatowanie tego jako dzień w oparciu o tę liczbę interpretowaną jako data. Na przykład, jeśli twoją datą jest 1/2/2003 i używasz funkcji WEEKDAY, daje to wynik 7 (=sobota). Kiedy sformatujesz to jako “dddd”, otrzymasz nazwę siódmego dnia w Excelu od jego “epoki”, czyli 7/1/1900, która przypada na sobotę. Ta formuła się zepsuje, jeśli otworzy ją ktoś, kto ma wybraną opcję używania systemu dat opartego na 1904 roku, ponieważ 1/1/1904 nie był niedzielą, ale piątkiem. (tak wiem, że mało kto tego używa, ale chyba nie chcesz budować rozwiązania, które na tym bazuje, prawda?)
Możesz sprawić, że formuła będzie krótsza, szybsza i bardziej wytrzymała, po prostu używając
=TEXT(A1,"dddd")
Możesz oczywiście po prostu sformatować same komórki daty za pomocą niestandardowego formatu, jak już zasugerowano, w zależności od tego, czy naprawdę potrzebujesz tego w oddzielnej kolumnie, czy nie. Często używam formatów daty, takich jak
ddd dd mmm yyyy
, aby dać np. Sat 01 Feb 2003, więc data jest wyraźna, ale pokazuje również nazwę dnia tygodnia.
Użycie drugiej kolumny i funkcji TEKST jest niezbędne, jeśli chcesz użyć dnia tygodnia gdzieś w mail merge (na przykład), podobnie dla rzeczy takich jak waluty i tak dalej w Excelu > Łączenie Worda przekazuje rzeczywistą podstawową przechowywaną wartość, a nie wersję sformatowaną na ekranie, więc niezależnie od formatu komórki, Word widzi jakąś straszną liczbę. Prawdziwe pole tekstowe jest przekazywane “tak jak jest” i wyświetla się poprawnie w programie Word.
*W rzeczywistości jest to poniedziałek, ale Excel został napisany tak, aby dopasować błędne daty w Lotus 1-2-3, który traktował rok 1900 jako rok przestępny, podczas gdy tak nie jest.
Odkryłem, że zagnieżdżanie deklaracji IF
może być uciążliwe, ale działa. Jeśli jednak chciałbyś zaoszczędzić trochę pisania, możesz spróbować tego:
=CHOOSE(WEEKDAY(A2), "Sun","Mon","Tue","Wed","Thur","Fri","Sat")
Lub, jeśli potrzebujesz pełnych nazw:
=CHOOSE(WEEKDAY(A2), "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
W tym przykładzie “A2” może być dowolną komórką (lub formułą) zawierającą datę, o której mowa. Na przykład:
=CHOOSE(WEEKDAY(TODAY()), "Sun","Mon","Tue","Wed","Thur","Fri","Sat")
wydrukowałoby trzyliterowy skrót dla dowolnego dnia dzisiejszego.
A1 komórka: 1/8/2009 B1 komórka: =A1 następnie wciśnij ctrl+1 (formatuj komórkę) wybierz zakładkę liczby, kliknij custom następnie wpisz “DDDD” w polu type txtbox
możesz również zlokalizować odpowiedź, używając [$nnn] przed formatem (więc niestandardowy kod to: [$nnn]dddd;@). zmień nnn z odpowiednim kodem języka. nie mam listy, ale jakoś, angielski kod to -409 (a mój lokalny to -421).
i myślę, że możesz eksperymentować z formatem Number, zmienić pole językowe, a następnie zmienić je z powrotem na format niestandardowy.
Wyświetla aktualną datę
=TEXT(WEEKDAY(MONTH(TODAY())),"dddd")
Wyświetla aktualną datę z wymaganym tekstem.
=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")
Funkcja WEEKDAY może być używana w kodach Vba. Na przykład:
Label1.Caption = WeekdayName(Weekday(TextBox1, 0), False, 0)
Nazwa dnia jest pobierana z TextBox1 w powyższym przykładzie. Wynikiem jest “Poniedziałek ”.
Użyłem tej funkcji podczas tworzenia userform o wprowadzaniu daty do aktywnej komórki z menu prawego przycisku myszy. Szablon można przejrzeć tutaj