我们中国有传统的农历,做销售分析有时候就需要对比农历的销售数据,这种情况在春节期间最为明显,因此很有必要将每个公历日期转换成农历日期再进行对比。
主要用到=TEXT(A1,"[$-130000]e-mm-dd")这个公式,TEXT的隐藏用法,这个需要2007以上版本的EXCEL才支持,这个公式的关键是:[$-130000],它是Excel中阳历转化农历的参数,不过它存在一个问题就是没法计算闰月,凡是有闰月的年份,它直接表示一年13个月。
excel公历转农历方法一:使用text函数
假设A列是公历日期,A1是公历日期,我们在B1单元格输入公式:=TEXT(A1,"[$-130000]yyyy年m月"&IF(LEN(--TEXT(A1,"[$-130000]dd"))=1,"初","")&"d"),下拉完成公历转农历。
excel公历转农历方法二:使用text+MID函数实现更完整的转换
A列仍然是公历,B1输入公式:
=MID("甲乙丙丁戊己庚辛壬癸",MOD(TEXT(A1,"[$-130000]e")-4,10)+1,1)&MID("子丑寅卯辰巳午未申酉戌亥",MOD(TEXT(A1,"[$-130000]e")-4,12)+1,1)&"年"&TEXT(A1,"[$-130000][DBNum1]m月d日")
即可。
这里增加了参数[DBNum1],表示数值以“一、二、三......”中文格式显示。
excel公历转农历方法三:使用text+MID+CHOOSE+YEAR函数
A1为公历,B1输入:
=CHOOSE(MOD(YEAR(A1)-1900,10)+1,"庚","辛","壬","癸","甲","乙","丙","丁","戊","己")&CHOOSE(MOD(YEAR(A1)-1900,12)+1,"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥")&TEXT(A1,"[dbnum1][$-130000]年m月"&IF(--TEXT(A1,"[$-130000]d")<11,"初","")&TEXT(A1,"[dbnum1][$-130000]d"))
这里可以对初几进行显示
excel公历转农历方法四:使用自定义函数
上面介绍的excel公历转农历都是使用excel内置函数完成的,有一个弊端就是公式太长,如果使用自定义函数,在公式栏就可以简化输入。
如下图所示,我们在B2输入公式:=nongli(A1),即可。C列农历简称中C1公式是:=RIGHT(B1,LEN(B1)-8)。