WPS表格利用简单公式制作强大日历

来源:岁月联盟 编辑:zhu 时间:2009-12-19
WPS表格利用简单公式制作强大日历内容简介:ET 2009是一个表格设计软件,其内置的函数具有强大的运算功能,利用函数设计万年历非常方便、快捷。本篇教导大家利用在最短的时间内设计一个强大的万年历。Let’s Go! 设计万年历前,先罗列出万年历的具体要求: A ET 2009是一个表格设计软件,其内置的函数具有强大的运算功能,利用函数设计万年历非常方便、快捷。本篇教导大家利用在最短的时间内设计一个强大的万年历。Let’s Go!
设计万年历前,先罗列出万年历的具体要求:
A:可以计算1900到9999年之间的所有日历;
B:可以方便地切换时间,即以任意查找任意年、月的日历;
C:仅仅使用ET的内部函数完成,不用VBA及引用外部数据
操作步骤如下:
  • 在A1单元格(也可以是其它单元格)随意输入一个日期,例如2009-11-9;
  • 选择A1:G1区域,然后单击工具栏中的“合并单元格” ,使该区域合并居中显示;
  • 选择A2:G2,输入以下数组公式:
={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"}
也可以改用汉字:
={"周日","周一","周二","周三","周四","周五","周六"}
4. 选择A3:G8,并输入以下数组公式:
=IF(MONTH(A1)<>MONTH(DATE(YEAR(A1),MONTH(A1),1)-(WEEKDAY(DATE(YEAR(A1),MONTH(A1),1))-1)+{0;1;2;3;4;5}*7+{0,1,2,3,4,5,6}),"",DAY(DATE(YEAR(A1),MONTH(A1),1)-(WEEKDAY(DATE(YEAR(A1),MONTH(A1),1))-1)+{0;1;2;3;4;5}*7+{0,1,2,3,4,5,6}))
5. 为了让标题与日历加以区分,对A1:G1、A3:G2和A3:G9三个区域设置不同背景色及字体。其中字体、背景色可以根据个人喜欢设置。大致效果如下:
WPS表格利用简单公式制作强大日历【图】_

图1 日历

6. 修改A1的值为1998年6月1日,可以发现日历将相应地更新,见下图:

WPS表格利用简单公式制作强大日历【图】_

图2 更新日历

7. 前面通过公式产生万年历,公式显得相当烦琐。如果配合条件格式,公式可以简单很多。原公式修改如下:
=VALUE(TEXT(A1-DAY(A1)-MOD(A1-DAY(A1),7)+{0;1;2;3;4;5}*7+{1,2,3,4,5,6,7},"d"))
当修改为此公式后,其结果如下:
WPS表格利用简单公式制作强大日历【图】_
图3 精简公式后的日历

8. 在上图中,显示了与当月无关的一些日期。为了消除它,可以利用条件格式来完成。选择A3:G3区域,然后打开条件格式对话框,设置为小于10的值就字体颜色显示为背景色,设置界面如下:
WPS表格利用简单公式制作强大日历【图】_
图4 让大于10者显示为背景色与字体色相同

9. 再选择A7:G8区域,同样方式设置条件格式为小于15者显示为背景色与字体色相同。最后产生的日历效果将与图2一致。
10. 如果感觉修改A1不太方便,可以利用窗体来滚动式编辑年与月。即在工作表中插入一个微调项,再按图5方式设置其“控制“属性。以同样方式再添加一个微调项窗体控件,并将其最小值设为1,最大值设为12,单元格链接为“$G$1”。
WPS表格利用简单公式制作强大日历【图】_
图5 设置微调项的属性

10. 修改A1的值为以下公式:
=H1&"年"&I1&"月1日"
通过以上设置后,鼠标单击微调项就可以控制日历的显示年月了。
如果还需要更简单、更方便,通常只能改用VBA来实现了。在我的VBA教材连载中有提到,各位可以去阅读,了解VBA的思路。

-----------罗刚君