Jak uzyskać nazwę dnia w komórce w programie Excel?

33

Biorąc pod uwagę datę, jak przenieść dzień tygodnia (np. „Poniedziałek”) do komórki w programie Excel?

Don Vince
źródło
4
Cóż, możesz wpisać PONIEDZIAŁEK do komórki za pomocą klawiatury ... ale jakoś myślę, że masz na myśli coś innego.
Mike Cooper
O tak: o) Rzeczywiście mógłbym to wpisać. Zaktualizuję pytanie, aby było bardziej szczegółowe
Don Vince

Odpowiedzi:

54

Prosty przykład:

Komórka A1: 1/8/2009
Komórka B1: = TEKST (WEEKDAY (A1), „dddd”)

Spowoduje to wydrukowanie w danym dniu odpowiedniego dnia.

Czy tego chciałeś?

Wieża
źródło
Wielkie dzięki! Mała literówka: na środku jest średnik, który powinien być przecinkiem.
Don Vince
@Don Vince - Ups, przepraszam za to.
Rook
2
Średnik jest wymagany w lokalizacjach (Ustawienia regionalne w systemie Windows), które używają przecinka jako separatora dziesiętnego. Podobnie jak w językach, w których angielski 1 000,00 (tysiąc) zostałby zapisany jako 1.000,00, a zatem zostałby wpisany jako 1000,00 w Excelu. Myślałem, że średnik jest zawsze akceptowany, ale mogę się mylić.
Arjan
nie ma za co :), a poprawna odpowiedź zasługuje na głosowanie +1
4
Działa to tylko z powodu dziwności, że 1/1/1900 jest niedzielą. Całkowicie utracić funkcję dnia tygodnia, wystarczy użyć = TEKST (A1, „dddd”) (patrz moja pełniejsza odpowiedź poniżej)
AdamV,
19

Powyższa odpowiedź działa tylko dzięki Fluke, ponieważ Excel uważa, że ​​1/1/1900 była niedzielą * i domyślnie Excel używa niedzieli jako pierwszego dnia tygodnia dla funkcji Dnia tygodnia.

W tej metodzie faktycznie obliczasz dzień tygodnia jako liczbę, a następnie formatujesz go jako dzień na podstawie tej liczby interpretowanej jako data. Np. Jeśli masz datę 1/2/2003 i korzystasz z funkcji WEEKDAY, to daje 7 (= sobota). Kiedy następnie sformatujesz to jako „dddd”, w rzeczywistości otrzymujesz nazwę dnia 7 dnia w programie Excel od jego „epoki”, tj. 7/1/1900, która przypada na sobotę *. Ta formuła się zepsuje, jeśli ktoś ją otworzy, kto ma opcję korzystania z systemu dat opartego na 1904 r., Ponieważ 1/1/1904 nie była niedzielą, ale piątkiem. (tak, wiem, że mało kto tego używa, ale nie chcesz budować rozwiązania, które na tym polega?)

Możesz sprawić, że formuła będzie krótsza, szybsza i bardziej niezawodna, po prostu za pomocą

=TEXT(A1,"dddd")

Możesz oczywiście po prostu sformatować same komórki daty za pomocą niestandardowego formatu, jak już sugerowano, w zależności od tego, czy naprawdę potrzebujesz tego w osobnej kolumnie, czy nie. Często używam formatów dat, takich jak

ddd dd mmm yyyy

dać np sob 01 lutego 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 wyraźnie użyć dnia tygodnia w korespondencji seryjnej (na przykład), podobnie do rzeczy takich jak waluty itp. Excel> Scalanie słów przekazuje rzeczywistą przechowywaną wartość bazową zamiast Wersja sformatowana na ekranie, więc niezależnie od formatu komórki, Word widzi okropną liczbę. Prawdziwe pole tekstowe jest przekazywane „tak jak jest” i wyświetla się poprawnie w programie Word.

* w rzeczywistości jest poniedziałek, ale Excel został napisany tak, aby pasował do niepoprawnych dat w Lotus 1-2-3, które traktowały 1900 jako rok przestępny, gdy tak nie jest.

AdamV
źródło
Już go głosowałem przed twoją edycją. Teraz jest jeszcze lepiej.
Jeroen Wiert Pluimers
7

Inną możliwością, w zależności od tego, co chcesz zrobić z datą później, jest ustawienie formatu komórki na Niestandardowy: dddd

Małgorzata
źródło
Wspaniały! To załatwia sprawę i jest świetny w sytuacji, gdy nie chcesz używać innej kolumny. Dzięki
Don Vince
Nawet jeśli chcesz użyć innej kolumny, możesz to zrobić i po prostu wpisać formułę jak =A1w przykładzie z pierwszej odpowiedzi.
Arjan
5

Odkryłem, że zagnieżdżanie IFinstrukcji może być kłopotliwe, ale działa. Jeśli jednak chcesz zaoszczędzić trochę pisania, możesz spróbować:

=CHOOSE(WEEKDAY(A2), "Sun","Mon","Tue","Wed","Thur","Fri","Sat")

Lub, jeśli potrzebujesz pełnych nazwisk:

=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ą daną datę. Na przykład:

=CHOOSE(WEEKDAY(TODAY()), "Sun","Mon","Tue","Wed","Thur","Fri","Sat") 

wydrukuje trzyliterowy skrót na to, co jest dzisiaj.

Ćwiek
źródło
1

możesz także 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).

myślę, że możesz eksperymentować z formatem liczb, zmienić pole języka, a następnie zmienić go z powrotem na format niestandardowy.

użytkownik261479
źródło
1
Witamy w SuperUser. Odpowiedzi powinny zawsze być samodzielne, więc proszę rozszerzyć swoją odpowiedź na działający przykład. Nie wiemy też, skąd pochodzisz, więc mój lokal jest trochę nieokreślony.
Tim
1

Komórka A1: 1/8/2009 Komórka B1: = A1, a następnie naciśnij ctrl + 1 (formatuj komórkę) wybierz kartę liczbową, kliknij niestandardowe, a następnie wpisz „DDDD” w polu tekstowym txtbox

użytkownik334332
źródło
0

Wyświetla aktualną datę

=TEXT(WEEKDAY(MONTH(TODAY())),"dddd")  

Wyświetla bieżącą datę z wymaganym 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")
Glen Lloyd
źródło
To tylko powielenie kilku wcześniejszych odpowiedzi.
fixer1234
0

Formatuj komórki - Data - Typ kalendarza (wybierz gregoriański angielski) - Typ (sekcja ma wymagany format Środa, 14 marca 2001 r.)

Raj
źródło
0

Funkcja WEEKDAY może być używana w kodach Vba. Na przykład :

Label1.Caption = WeekdayName(Weekday(TextBox1, 0), False, 0)

Nazwa dnia pochodzi z TextBox1 w powyższym przykładzie. Wynik to „poniedziałek” .

Użyłem tej funkcji, kiedy utworzyłem formularz użytkownika o wprowadzeniu daty do aktywnej komórki za pomocą menu prawym przyciskiem myszy.

Szablon można przejrzeć tutaj

kadrleyn
źródło
Wskazówka: to, co wyróżnia twoją odpowiedź, część, która bezpośrednio odpowiada na pytanie, to nazwa dnia tygodnia, a nie dzień tygodnia. Jest to termin, na którym należy się skupić w pierwszym zdaniu.
fixer1234,