2009-09-15 23:04:12 +0000 2009-09-15 23:04:12 +0000
33
33

Как записать имя дня в ячейку в Excel?

Учитывая дату, как занести день недели (например, “понедельник”) в ячейку в Excel?

Ответы (9)

54
54
54
2009-09-15 23:06:40 +0000

Простой пример: ячейка

A1: 1/8/2009 Ячейка B1: =TEXT(WEEKDAY(A1), “dddd”)

Для данной даты будет распечатан соответствующий день.

Это то, что вы хотели?

19
19
19
2009-11-02 10:43:55 +0000

Ответ, приведенный выше, работает только по счастливой случайности, потому что Excel считает, что 1/1/1900 был Sunday*, и по умолчанию Excel использует воскресенье как первый день недели для функции “День недели”.

То, что вы вычисляется в этом методе - это день недели как число, а затем форматируется как день, основанный на этом числе, интерпретируемом как дата. Eg если ваша дата 1/2/2003 и вы используете функцию ЕЖЕНЕДЕЛЬНАЯ ДЕНЬ, то в результате получится 7 (=Суббота). Когда вы затем форматируете это как “dddd”, вы на самом деле получаете название дня 7-го дня в Excel с его “эпохи”, т.е. 7/1/1900, который случайно оказался Saturday*. Эта формула сломается, если кто-то откроет ее, у кого есть возможность использовать систему дат 1904 года, так как 1/1/1904 был не воскресенье, а пятница. (Да, я знаю, что вряд ли кто-то использует эту формулу, но вы не хотите строить решение, которое полагается на это, не так ли?).

Вы можете сделать формулу короче, быстрее и прочнее, просто используя

=TEXT(A1,"dddd")

Вы, конечно, можете просто отформатировать сами ячейки даты в пользовательском формате, как уже предлагалось, в зависимости от того, действительно ли вам это нужно в отдельном столбце или нет. Я часто использую форматы даты, такие как 0x2 и 0x2 и 0x1 и 0x2 и 0x2 и , чтобы дать, например, Sat 01 Feb 2003 так что дата является явным, но показывает название дня недели, а также.

Использование второго столбца и функции TEXT необходимо, если вы хотите явно использовать день недели где-то в почтовом слиянии (например), аналогично для таких вещей, как валюты и т.д. в Excel > Слияние Word передает фактическое значение, лежащее в основе, а не на экране отформатированную версию, так что независимо от формата ячейки, Word видит какое-то ужасное число. Истинное текстовое поле передается “как есть” и корректно отображается в Word.

* на самом деле это понедельник, но Excel был написан для соответствия неправильным датам в Лотосе 1-2-3, который рассматривал 1900 год как високосный год, когда это не так.

7
7
7
2009-09-15 23:16:11 +0000

Другая возможность, в зависимости от того, что вы хотите сделать с датой после, это установить формат ячейки на Custom: dddd

5
5
5
2012-12-08 18:02:03 +0000

Я обнаружил, что вложение IF может быть громоздким, но это работает. Однако, если вы хотите немного сэкономить на наборе текста, вы можете попробовать это:

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

Или, если вам нужны полные имена:

=CHOOSE(WEEKDAY(A2), "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")

В этом примере “A2” может быть любой ячейкой (или формулой), содержащей указанную дату. Например:

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

напечатает аббревиатуру из трех букв для любой ячейки (или формулы).

1
1
1
2014-06-18 05:49:40 +0000

Ячейка А1: 1/8/2009 B1 ячейка: =A1, затем нажмите ctrl+1 (ячейка форматирования), выберите номер вкладки, нажмите пользовательские, затем введите “DDDD” в текстовом поле типа.

1
1
1
2013-10-10 15:52:11 +0000

Вы также можете локализовать ответ, используя [$nnn] перед форматом (так что пользовательский код: [$nnn]dddd;@). измените nnn с помощью правильного кода языка. У меня нет списка, но почему-то английский код -409 (а мой локальный -421).

я думаю, что вы можете поэкспериментировать с форматом Number, изменить языковое поле, а затем изменить его обратно на пользовательский формат.

0
0
0
2016-06-29 04:04:28 +0000

Формат ячеек - Дата - Тип календаря (выберите Григорианский английский) - Тип (раздел имеет требуемый формат Среда, 14 марта 2001 г.)

0
0
0
2013-04-03 13:45:00 +0000

Отображает текущую дату

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

Отображает текущую дату с требуемым текстом.

=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")
0
0
0
2016-11-29 17:45:23 +0000

Функция Еженедельного дня может быть использована в Vba-кодах . Например :

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

Имя дня получено из TextBox1 в приведенном выше примере. Результат - “Понедельник ”.

Я использовал эту функцию при создании пользовательской формы о вводе даты в активную ячейку с помощью меню правой кнопки мыши. Шаблон можно посмотреть здесь

相关问题

6
13
9
10
4