Answers:
简单的例子:
A1单元格:1/8/2009
B1单元格:= TEXT(WEEKDAY (A1),“ dddd”)
对于给定的日期,这将打印相应的日期。
这是您想要的吗?
上面给出的答案仅适用于fluke,因为Excel认为1/1/1900是Sunday *,默认情况下,Excel使用Sunday作为Weekday函数的一周的第一天。
在该方法中,您实际计算的是将星期几作为数字,然后根据解释为日期的数字将其格式化为一天。例如,如果您的日期是2003年1月2日,并且您使用WEEKDAY函数,则结果为7(=星期六)。然后,将其格式设置为“ dddd”时,实际上是在Excel中获取自其“ epoch”以来的第7天的日期名称,即7/1/1900,恰好是星期六*。如果有人打开它并选择使用基于1904年日期系统的选项,则此公式将中断,因为1/1/1904不是星期日,而是星期五。(是的,我几乎不知道有人会使用它,但是您不想建立一个依赖于此的解决方案吗?)
您只需使用以下命令,即可使公式更短,更快,更强大
=TEXT(A1,"dddd")
当然,您可以按照建议的方式使用自定义格式对日期单元格本身进行格式化,具体取决于您是否真的需要在单独的列中进行格式化。我经常使用日期格式,例如
ddd dd mmm yyyy
例如,2003年2月1日星期六,因此日期是明确的,但也显示了星期几的名称。
如果要在邮件合并中的某个位置显式使用工作日(例如),则必须使用第二列和TEXT函数,类似于货币等,例如Excel> Word合并传递实际的基础存储值,而不是使用屏幕格式化的版本,因此无论单元格格式如何,Word都会看到一些可怕的数字。真实的文本字段按“原样”传递,并在Word中正确显示。
*实际上,这是星期一,但是Excel的编写是为了匹配Lotus 1-2-3中的错误日期,而Lotus 1-2-3中的日期不正确,因此将其视为as年。
我发现嵌套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")
无论今天是什么,都会打印三个字母的缩写。
显示当前日期
=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")
WEEKDAY函数可以在Vba代码中使用。例如 :
Label1.Caption = WeekdayName(Weekday(TextBox1, 0), False, 0)
在上面的示例中,日期名称是从TextBox1获取的。结果为“ Monday”。
当我使用右键单击菜单创建关于向活动单元格输入日期的用户窗体时,就使用了此功能。