Простой пример:
Ячейка A1: 08.01.2009.
Ячейка B1: = TEXT (WEEKDAY (A1), "dddd")
Для данной даты будет напечатан соответствующий день.
Это то, что вы хотели?
Учитывая дату, как я могу получить день недели (например, «понедельник») в ячейку в Excel?
Простой пример:
Ячейка A1: 08.01.2009.
Ячейка B1: = TEXT (WEEKDAY (A1), "dddd")
Для данной даты будет напечатан соответствующий день.
Это то, что вы хотели?
Ответ, приведенный выше, работает только по счастливой случайности, потому что Excel считает, что 01.01.1900 было воскресеньем *, и по умолчанию Excel использует первый день недели в качестве функции недели.
То, что вы на самом деле вычисляете в этом методе, - это день недели как число, а затем форматирование его как дня на основе этого числа, интерпретируемого как дата. Например, если ваша дата 1/2/2003 и вы используете функцию WEEKDAY, это приводит к 7 (= суббота). Когда вы затем форматируете это как «dddd», вы фактически получаете название дня 7-го дня в Excel с момента его «эпохи», то есть 1/19/1900, что является субботой *. Эта формула сломается, если кто-то откроет ее, выбрав опцию для использования системы дат 1904 года, поскольку 01.01.1904 было не воскресенье, а пятница. (да, я знаю, что вряд ли кто-то использует это, но вы не хотите создавать решение, которое опирается на это, не так ли?)
Вы можете сделать формулу короче, быстрее и надежнее, просто используя
=TEXT(A1,"dddd")
Конечно, вы можете просто отформатировать сами ячейки даты с помощью пользовательского формата, как уже предлагалось, в зависимости от того, действительно ли вам это нужно в отдельном столбце или нет. Я часто использую форматы даты, такие как
ddd dd mmm yyyy
например, суббота 01 февраля 2003 г., поэтому дата является явной, но также указывается название дня недели.
Использование второго столбца и функции TEXT очень важно, если вы хотите явно использовать день недели где-нибудь в почтовом слиянии (например), аналогично для таких вещей, как валюты и т. Д. В Excel> Слияние Word передает фактическое базовое хранимое значение, а не версия отформатирована на экране, поэтому, независимо от формата ячейки, Word видит какое-то ужасное число. Истинное текстовое поле передается «как есть» и правильно отображается в Word.
* на самом деле это понедельник, но Excel был написан так, чтобы соответствовать неверным датам в Lotus 1-2-3, в которых 1900 год считался високосным, когда это не так.
Другая возможность, в зависимости от того, что вы хотите сделать с датой позже, - установить формат ячейки в Custom: dddd.
I found that nesting IF
statements can be cumbersome, but it does work. If, however, you'd like to save a little typing, you may try this:
=CHOOSE(WEEKDAY(A2), "Sun","Mon","Tue","Wed","Thur","Fri","Sat")
Or, if you need full names:
=CHOOSE(WEEKDAY(A2), "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
In this example, "A2" can be whatever cell (or formula) contains the date in question. For instance:
=CHOOSE(WEEKDAY(TODAY()), "Sun","Mon","Tue","Wed","Thur","Fri","Sat")
would print the three letter abbreviation for whatever today is.
you can also localize the answer by using [$nnn] before the format (so the custom code is: [$nnn]dddd;@). change nnn with the proper language code. i don't have the list, but somehow, english code is -409 (and my local is -421).
i think you can experiment with Number format, change the language field, then change it back to custom format.
Ячейка A1: 08.01.2009. Ячейка B1: = A1, затем нажмите Ctrl + 1 (ячейка формата), выберите вкладку номера, нажмите «Custom», затем введите «DDDD» в поле типа txtbox
Displays current date
=TEXT(WEEKDAY(MONTH(TODAY())),"dddd")
Displays current date with required required text.
=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")
Ячейки формата - Дата - Тип календаря (выберите григорианский английский) - Тип (в разделе указан необходимый формат среда, 14 марта 2001 г.)
Функция WEEKDAY может использоваться в кодах Vba. Например :
Label1.Caption = WeekdayName(Weekday(TextBox1, 0), False, 0)
Название дня получено из TextBox1 в приведенном выше примере. Результат "понедельник" .
Я использовал эту функцию, когда создавал пользовательскую форму для ввода даты в активную ячейку с контекстным меню.