日历制作

自己动手用EXCEL制作日历

网上有现成的日历模板,一般是整年的,带农历、节气、节日

我们今天做一个简易的日历,填写年份、月份,就生成带有农历和星期的单月日历

excel制作日历公式(使用Excel数组公式自制日历)(1)

这个日历可以查看从1900年1月1日开始的每个月的日历。

做这个日历的第一步是要先做一个公历日历来做辅助表

excel制作日历公式(使用Excel数组公式自制日历)(2)

这是一个7*6的矩阵,只需要一个数组公式填充即可

{=IF(MONTH(DATE(YEAR(B2),MONTH(B2),1))MONTH(DATE(YEAR(B2),MONTH(B2),1)-(WEEKDAY(DATE(YEAR(B2),MONTH(B2),1))-1) {0;1;2;3;4;5}*7 {1,2,3,4,5,6,7}-1),,DATE(YEAR(B2),MONTH(B2),1)-(WEEKDAY(DATE(YEAR(B2),MONTH(B2),1))-1) {0;1;2;3;4;5}*7 {1,2,3,4,5,6,7}-1)}

选中7*6这42个单元格,填入公式,按下Ctrl Shift Enter三个键,生成日历。

这个公式引用的是单元格B2的内容,只要改变B2中的年月日,就会自动生成这个月的日历。

带有农历的日历,需要84个单元格:

1、3、5、7、9、11行用来显示公历,直接引用辅助表里的公历日历;

2、4、6、8、10、12行用来显示农历,用公历值计算农历,公式:=IFERROR(TEXT(E5,IF(--TEXT(E5,[$-130000]d)=10,初十,IF(--TEXT(E5,[$-130000]d)10,[$-130000][DBNum1]d,初[$-130000][DBNum1]d))),)。

其实这个函数就是设置显示格式的函数,从excel2007开始,就已经支持农历转换,就是用[$-130000]d来转换,其他的IF语句都是为了修饰“初一”到“初十”,和“十一”到“三十”的。

农历年是用这个公式:=MID(甲乙丙丁戊己庚辛壬癸,MOD(TEXT(B3,[$-130000]e)-4,10) 1,1)MID(子丑寅卯辰巳午未申酉戌亥,MOD(TEXT(B3,[$-130000]e)-4,12) 1,1)年

农历月用这个公式:=TEXT(B3,[$-130000][DBNum1]m月)

这里引用的B3单元格的内容不显示:=B2-C2

单元格B2是要显示的年份

单元格C2是要显示的月份

只要修改这两个单元格的内容,就会自动生成含有农历的日历了。

,