操作方法
-
01
以前很多人喜欢在办公桌上放一本台历,方便查询日期,现在电脑已经普及了,大家都喜欢从电脑上查看日历,又方便又不占地方。 用编程的方法可以制做电子日历,但会编程的人不多。如今EXCEL电子表格的普及率很高,由于它强大的数据处理能力,被很多人当做必不可少的办公工具。 在EXCEL中有很多时间函数,通过这些函数可以制做一款简单实用的日历牌。 先看一下做好的样式: 在这个日历牌的上面左右两个微调按钮,可以通过它们调整想要显示的年月。 下面就介绍制做过程 1、选画边框 其中C2与D2单元格是合并单元格,用于显示年份。由于年份是四位数字,所以要占用两个单元格。 其中的E10:G10也是合并单元格,这是为了显示“今天”的日期,包含了年月日三个内容,所以要占三个单元格。 2、填入内容 这些内容不需要公式,直接手工输入,根据自己的喜好设置字体、字号、颜色。 注意年份输入在C2单元格,月份输入在F2单元格,这两个位置会被下面的公式所引用。 3、日历公式 这是关键一步,要输入公式了,公式的区域在B4:H9,由于第一个单元格是B4单元格,所以公式中要对它进行“绝对引用”。 可能很多人都不相信,这个区域中的公式都是一样的,虽然B4:H9区域共有42个单元格,但都使用了完全相同的公式,只要在B4单元格输入一个公式,然后通过拖动复制的方式就可以完成所有公式的输入。 公式 =IF(OR(((ROW()-ROW($B$4))*7+(COLUMN()-COLUMN($B$4)-WEEKDAY(DATE($C$2,$F$2,1))+2))>DAY(DATE($C$2,$F$2+1,1)-1),((ROW()-ROW($B$4))*7+(COLUMN()-COLUMN($B$4)-WEEKDAY(DATE($C$2,$F$2,1))+2))<1),””,((ROW()-ROW($B$4))*7+(COLUMN()-COLUMN($B$4)-WEEKDAY(DATE($C$2,$F$2,1))+2))) 公式有点长,分析起来感觉有些费力,我们试着对它进行“简化”。 可以看到公式中有一部份内容重复出现了三次,即“((ROW()-ROW($B$4))*7+(COLUMN()-COLUMN($B$4)-WEEKDAY(DATE($C$2,$F$2,1))+2))”,为了方便叙述,给它起个名字叫“号”,也就是几月几号的意思。 还有一小段“DAY(DATE($C$2,$F$2+1,1)-1)”,我们给它起名为“最后一天”,因为它是计算日历牌中,当月最后一天的号数,也可以理解为这个月有几天。 然后把“号”与“最后一天”代入公式看一下: 公式就变成=IF(OR((号>最后一天),(号<1)),””,号) 这样是不是简单很多了,也容易理解了。 这就是一个常见的IF判断公式,在条件部份使用了OR函数进行逻辑“或”运算,只要“(号>最后一天),(号<1)”两部份中,任一部份为“真”,就使条件成立。 提示:这只是为了分析方便而做的“简化”,实际使用时还要使用原公式的。 提示:对所有长公式都可以用这种方法“简化”,然后对每一部份逐一分析理解。 首先这是一个由IF函数构成的判断公式,大家都知道IF函数有三个参数,第一个参数是“条件”,第二个参数是“条件”为“真”是执行的部份,第三个参数是“条件”为“假”时执行的部份,一般的使用格式为 if(条件,真,假) 公式的含义是:如果当前单元格中显示的“号”大于当前月的“最后一天”或者小于“1”,那就说明这个“号”不应显示在当前月份牌中,于是就通过IF函数的第二个参数显示为一个空格;反之,通过IF函数的第三个参数,把这个“号”就显示在当前单元格中。 接下来对每一部份进行分析: “号”:“((ROW()-ROW($B$4))*7+(COLUMN()-COLUMN($B$4)-WEEKDAY(DATE($C$2,$F$2,1))+2))” 它通过公式所在单元格的行号(ROW())、列号(COLUMN())与B4单元格的位置间隔,来计算“当前”格中显示的数字,再把这个数字与“星期”对应起来。 其中的“WEEKDAY(DATE($C$2,$F$2,1))”是将C2的年、F2的月及数字1,通过DATE函数组成一个EXCEL可以识别的日期(比如2011年8月1日),再用WEEKDAY函数得到这个日期的星期。 由于我们在日历牌中的第2行(工作表的第3行)已经将“星期”标志固定了,所以公式中必须将显示的“号”与星期来对应,否则号与星期不对应,日历牌也就失去意义了。 提示:WEEKDAY函数返回表示星期的代码,它有两个参数,第一个参数是要计算的日期,第二个参数如果省略,那么返回的代码1–7将对应“星期日、星期一、…、星期六”。 “最后一天”:“DAY(DATE($C$2,$F$2+1,1)-1)” 它与上面类似,通过DATE函数把C2的年、F2的月加1(表示次月)、数字1组成一个EXCEL可以识别的日期,这个日期是当前要显示月份的下一个月1日,由于EXCEL不能直接得到某月的最后一天,所以要把这个“次月1日”减1才能得到本月最后一天的日数。(大月31,小月30,2月为28或29) 通过上面分析,相信大多数朋友能理解公式的含义了,其他暂时不理解的朋友也不用着急,只要会用它就行了。 下面继续我们的日历牌制作 在B4格输入公式后可以用鼠标拖动复制了,按住B4单元格右下角的“填充柄”把公式复制到B4:H9区域中的每一个单元格中。 最后在E10单元格输入一个公式,用来表示“今天”的日期,公式 =NOW() 这个公式只用一个日期函数NOW,它会返回电脑系统今天的日期 提示:如果E10单元格中显示的内容与图片中不相同,请选中E10单元格,按鼠标右键,选“单元格格式”,在其中的“数字”选项卡中设置一下日期格式就行了。 4、添加控件 最麻烦的公式部份完成了,接下来做两个微调按钮,用于调整年和月。 在“视图-工具栏”中找到“窗体”工具栏,让它显示出来。 提示:这是EXCEL2003的“窗体”工具栏,如果你用的是EXCEL2007,需要在“开发工具-插入-表单控件”中找到“数值调节钮”控件。 用鼠标选中上面的“微调项”,在B2单元格与H2单元格位置各“画”出一个大小适中的按钮,然后分别用鼠标右键点击它们,从弹出的快捷菜单中选“设置控件格式”。 一定要注意里面的“单元格链接”不要填错了。 做到这里就基本完成了,最后再对日历牌“美化”一下,每个人的喜好不同,自己随意。 通过两个“微调按钮”就能查询到任意日期。 提示:在本例B2:H10区域中,公式引用了C2、F2、B4这三个单元格,如果你制做的日历牌不在这个区域,需要把公式中的单元格引用改成你的实际单元格地址。单元格地址修改后,还要把两个微调框的“单元格链接”也相应修改。