Як отримати ім'я дня в клітинку в Excel?


33

З огляду на дату, як я можу перенести день тижня (наприклад, "понеділок") у клітинку в Excel?


4
Ну, ви можете набрати в понеділок в клітинку за допомогою своєї клавіатури ... але я якось думаю, що ви маєте на увазі щось інше.
Майк Купер

О так: о) Я справді міг би це набрати. Я оновлю питання, щоб зробити його більш конкретним
Дон Вінс,

Відповіді:


54

Простий приклад:

Комір A1: 8/8/2009
клітинка B1: = ТЕКСТ (ТИЖДЕНЬ (A1), "dddd")

Це за вказану дату надрукує відповідний день.

Це те, що ти побажав?


Велике дякую! Невеликий друк: посередині є крапка з комою, яка повинна бути комою.
Дон Вінс

@Don Vince - Ups, вибач за це.
Корінь

2
Точка з комою потрібна в локалізаціях (Регіональні налаштування в Windows), у яких використовується кома для десяткового роздільника. Як і в мовах, де англійська 1000,00 (одна тисяча) буде записана як 1.000,00 і, таким чином, буде введено як 1000,00 в Excel. Насправді я вважав, що крапка з комою завжди приймається, але я можу помилитися з цим.
Ар'ян

ласкаво просимо :) і правильна відповідь заслуговує на підсумок +1

4
Це працює лише через дивну ситуацію, коли 1.01.1900 був неділею. Повністю втрачайте функцію у будній день, просто використовуйте = TEXT (A1, "dddd") (див. Мою більш повну відповідь нижче)
AdamV

19

Відповідь, подана вище, працює лише флюком, оскільки Excel вважає, що 1/1/1900 була неділою *, а за замовчуванням Excel використовує неділю як перший день тижня для функції Weekday.

Те, що ви насправді обчислюєте в цьому методі, - це день тижня як число, а потім форматувати його як день на основі цього числа, що інтерпретується як дата. Наприклад, якщо ваша дата 1/2/2003, і ​​ви використовуєте функцію WEEKDAY, це призводить до 7 (= субота). Коли ви форматуєте це як "dddd", ви фактично отримуєте назву дня 7-го дня в Excel з моменту його "епохи", тобто 7/1/1900, що трапляється в суботу *. Ця формула порушиться, якщо хтось відкриє її, у кого вибрано можливість використовувати систему дат 1904, оскільки 1/1/1904 була не неділею, а п’ятницею. (так, я знаю, що навряд чи хтось використовує це, але ви не хочете будувати рішення, яке залежить від цього?)

Ви можете зробити формулу коротшою, швидшою та міцнішою, просто використовуючи

=TEXT(A1,"dddd")

Звичайно, ви можете просто відформатувати самі клітинки дати у власному форматі, як уже було запропоновано, залежно від того, вам це справді потрібно в окремому стовпчику чи ні. Я часто використовую такі формати дат, як

ddd dd mmm yyyy

дати, наприклад, Сб 01 лютого 2003 року, тому дата явна, але також відображається назва буднього дня.

Використання другого стовпця та функції TEXT є важливим, якщо ви хочете використовувати будній день явно десь у об'єднанні пошти (наприклад), аналогічно для таких речей, як валюти тощо. Excel> Об'єднання Word передає фактичне базове збережене значення, а не на -форматована версія, тому незалежно від формату комірки Word бачить якесь жахливе число. Справжнє текстове поле передається "як є" і відображається належним чином у Word.

* насправді це понеділок, але Excel був написаний, щоб відповідати невірним датам у Lotus 1-2-3, який трактував 1900 рік як високосний рік, коли його немає.


Я вже схвалив це перед вашою редагуванням. Тепер це ще краще.
Jeroen Wiert Pluimers

7

Іншою можливістю, залежно від того, що ви хочете зробити з датою згодом, є встановити формат комірки на Custom: dddd


Чудово! Це робить трюк, і чудово підходить для ситуації, коли ви не хочете використовувати інший стовпець. Спасибі
Дон Вінс

Навіть якщо ви хочете використовувати інший стовпець, ви можете це зробити і просто ввести формулу, як =A1у прикладі, з першої відповіді.
Ар’ян

5

Я виявив, що 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

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

Я думаю, що ви можете експериментувати з форматом Числа, змінити мовне поле, а потім змінити його на звичайний формат.


1
Ласкаво просимо до SuperUser. Відповіді завжди мають бути самостійними, тому, будь ласка, розкладіть свою відповідь на робочому прикладі. Крім того, ми не знаємо, звідки ви родом, тому мій місцевий дещо невизначений.
Тім

1

Комірка A1: клітина B1 1/8/2009: = A1, потім натисніть ctrl + 1 (формат клітинки) виберіть вкладку номера, натисніть спеціальну, а потім введіть "DDDD" на тип txtbox


0

Показує поточну дату

=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")

Це просто дублювання декількох попередніх відповідей.
fixer1234

0

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


0

Функція WEEKDAY може використовуватися у кодах Vba. Наприклад :

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

Ім'я дня отримано з TextBox1 у наведеному вище прикладі. Результат є "понеділок" .

Я використав цю функцію, коли створив форму користувача про введення дати в активну клітинку за допомогою клацання правою кнопкою миші.

Шаблон можна переглянути тут


Пропозиція: що є унікальним у вашій відповіді, частина, яка безпосередньо відповідає на питання, - це назва дня, а не будень. Саме цей термін слід зосередити в першому реченні.
fixer1234
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.