返回首页
当前位置: 主页 > Excel教程 > Excel2007教程 >

Excel使用数组公式显示的日历 实例讲解

时间:2012-12-26 15:25来源:Office教程学习网 www.office68.com编辑:麦田守望者

在本例中,将使用数组公式实现一个动态的日历,根据本机的时间显示当前一个月的日历。
  下面先说明这个日历的实现步骤:

  1.在A1单元格内输入公式“=TODAY()”,在A2单元格内输入“=A3”,将A2单元格复制到B2:G3单元格区域。

  2.设置A2:G2单元格的格式,使其分类为日期的星期,选中A3:G8单元格区域。输入以下公式:
  DATE(YEAR(A1),MONTH(A1),1)-WEEKDAY(DATE(YEAR(A1),MONTH(A1),1),2)+{1,2,3,4,5,6,7}+{0;1;2;3;4;5}*7)

  3.按Ctrl+Shift+Enter组合键确认输入。
  现逐步分析输入的这个数组公式:
  ①因为一个月最多会跨越6个星期,所以需要一个6行7列(一星期7天)的单元格区域来显示这个日历。
  ②这个公式的后部,即“{1,2,3,4,5,6,7}+{0;1;2;3;4;5}*7”,构成了这个日历的框架。如果在一个6 行7列的单元格区域内输入这个输入公式,可以得到6行7列的二维数组
{1,2,3,4,5,6,7;8,9,10,11,12,13,14;15,16,17,18,19,20,21;

22,23,24,25,26,27,28;29,30,31,32,33,34,35;36,37,38,39,40,41,42}
  这个数姐的元素按照从第一行由左到右,再由下一行由左到右顺序,逐个加一递增。这个数组公式以此来实现每日的递增。
  ③这个公式的前部,即“DATE(YEAR(A1),MONTH(A1),1)”,通过调用A1单元格,来得到本月一日的日期。
  ④本月一日的日期和6行7列的二维数组相加,又可得到一个6行7列的二维数组。这个二维数组实现了日期的逐一显示。但是这个按照曰期逐一显示的二维数组是从2号开始的,而且2号显示在了星期一的位置。
  ⑤“WEEKDAY(DATE(YEAR(A1),MONTH(A1),1),2)”部分用来对日期的位置进行调整。以2007年1月为例(2007年1月1日为星期一),可以得到值“-1”。这样就对按日期逐一显示的6行7列二维数组做出了调整,2007年1月1日出现在二维数组第一行的第一个位置,而之后的日期逐一显示。
  通过IF函数,可以使日历中的非当月日期不显示。

  4.选中A3:G8单元格区域,把公式修改为:
  =IF(MONTH(DATE(YEAR(A1),MONTH(A1),1))<>

MONTH(DATE(YEAR(A1),MONTH(A1),1)-WEEKDAY

(DATE(YEAR(A1),MONTH(A1),1),2)+{1,2,3,4,5,6,7}+{0;1;2;3;4;5}*7),""

,DATE(YEAR(A1),MONTH(A1),1)-WEEKDAY(DATE(C4YEAR(A1),MONTH(A1),1),2)+{1,2,3,4,5,6,7}+{0;1;2;3;4;5}*7)
  最后按Ctrl+Shift+Enter组合键确认输入。

 

  这样就以数组公式的方式显示出日历。通过修改各单元格的格式,可以使显示更加美观。

Excel使用数组公式显示的日历 实例讲解
Excel使用数组公式显示的日历 实例讲解
------分隔线----------------------------
标签(Tag):excel excel2007 excel2010 excel2003 excel技巧 excel教程 excel实例教程 excel2010技巧
------分隔线----------------------------
推荐内容
猜你感兴趣