Biorąc pod uwagę datę, jak przenieść dzień tygodnia (np. „Poniedziałek”) do komórki w programie Excel?
microsoft-excel
worksheet-function
Don Vince
źródło
źródło
Odpowiedzi:
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ś?
źródło
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ą
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
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.
źródło
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
źródło
=A1
w przykładzie z pierwszej odpowiedzi.Odkryłem, że zagnieżdżanie
IF
instrukcji może być kłopotliwe, ale działa. Jeśli jednak chcesz zaoszczędzić trochę pisania, możesz spróbować:Lub, jeśli potrzebujesz pełnych nazwisk:
W tym przykładzie „A2” może być dowolną komórką (lub formułą) zawierającą daną datę. Na przykład:
wydrukuje trzyliterowy skrót na to, co jest dzisiaj.
źródło
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.
źródło
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
źródło
Wyświetla aktualną datę
Wyświetla bieżącą datę z wymaganym wymaganym tekstem.
źródło
Formatuj komórki - Data - Typ kalendarza (wybierz gregoriański angielski) - Typ (sekcja ma wymagany format Środa, 14 marca 2001 r.)
źródło
Funkcja WEEKDAY może być używana w kodach Vba. Na przykład :
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
źródło