如何在Excel中实现农历⽇期转化
历与阳历(公历)是两套不同的历法,在Excel中正常显⽰的阳历⽇期,但对于我们中国⼈⽽⾔不是很⽅便,不能马上看出农历⽇期,因为我们除了过洋节之外还要过中国⼈的节⽇嘛。
这⾥⽼墨整理⼀个⽐较完整的函数公式来转化农历⽇期。
简单版(数字呈现)
下表中B2单元格就是第⼀种情况,“2016-9-17”表⽰农历是九⽉⼗七⽇。该公式
是:=TEXT(A2,'[$-130000]YYYY-M-D')。
TEXT()⽤来转化⽂本格式,这个公式的关键是:[$-130000],它是Excel中阳历转化农历的参数,不过它存在⼀个问题就是没法计算闰⽉,估计⽼外⽆法理解中国⼈闰⽉的概念,凡是闰年,它直接表⽰⼀年13个⽉,道理是⼀样的。
进阶版(中⽂呈现)
上表C2单元格,相⽐较B2单元格呈现就有了进阶,以中⽂呈现,并且以天⼲地⽀表现年份。公式相对之前肯定复杂:=MID(' 甲⼄丙丁戊⼰庚⾟壬癸',MOD(TEXT(A2,'[$-130000]e')-4,10) 1,1)&MID('⼦丑寅卯⾠巳午未申⾣戌亥',MOD(TEXT(A2,'[$-130000]e')-4,12)
1,1)&'年'&TEXT(A2,' [$-130000][DBNum1]m⽉d⽇')
我们可以分解为两⼤部分:
1)计算年份:MID(' 甲⼄丙丁戊⼰庚⾟壬癸',MOD(TEXT(A2,'[$-130000]e')-4,10)
1,1)&MID('⼦丑寅卯⾠巳午未申⾣戌亥',MOD(TEXT(A2,'[$-130000]e')-4,12) 1,1)&'年',这⾥加了MID()⽂本提取函数来获取天⼲地⽀。
2)计算⽉⽇:TEXT(A2,' [$-130000][DBNum1]m⽉d⽇'),这⾥增加了参数[DBNum1],表⽰数值以“⼀、⽽⼆、三......”中⽂格式显⽰。
两者组合⼀起的就是C列结果。
完美版
作为中国⼈,我们知道“⼀⽉”不叫“⼀⽉”,叫“正⽉”;“⼗⼆⽉”不叫“⼗⼆⽉”,叫“腊⽉”;同样每⽉前10天,是初⼀、初⼆......20⽇开始是廿、廿⼀......30⽇是卅等等。
如何更完美地呈现,在这⾥⽼墨将进阶版公式再度分解,加上判断,然后再组合就实现了效果,公式:
=MID(' 甲⼄丙丁戊⼰庚⾟壬癸',MOD(TEXT(A2,'[$-130000]e')-4,10) 1,1)&MID('⼦丑寅卯⾠巳午未申⾣戌亥',MOD(TEXT(A2,'[$-130000]e')-4,12) 1,1)&'年'&IF(TEXT(A2,' [$-
130000]m')*1=12,' 腊',IF(TEXT(A2,' [$-130000]m')*1=1,' 正',TEXT(A2,' [$-130000] [DBNum1]m')))&'⽉'&IF(TEXT(A2,' [$-130000]d')-9<=1,'初',IF(TEXT(A2,' [$-130000]d')-29>=1,'卅',IF(TEXT(A2,' [$-130000]d')-19>=1,'廿','⼗')))&IF(RIGHT(TEXT(A2,' [$-130000]d'),1)*1=0,'',TEXT(RIGHT(TEXT(A2,' [$-130000]d'),1)*1,'[DBNum1]d'))&'⽇'
1)年份公式:
MID(' 甲⼄丙丁戊⼰庚⾟壬癸',MOD(TEXT(A2,'[$-130000]e')-4,10) 1,1)&MID('⼦丑寅卯⾠巳午未申⾣戌亥',MOD(TEXT(A2,'[$-130000]e')-4,12) 1,1)&'年'mid函数提取年月日
2)⽉份公式:
IF(TEXT(A2,' [$-130000]m')*1=12,' 腊',IF(TEXT(A2,' [$-130000]m')*1=1,' 正',TEXT(A2,' [$-130000][DBNum1]m')))&'⽉'
3)⽇期公式:
IF(TEXT(A2,' [$-130000]d')-9<=1,'初',IF(TEXT(A2,' [$-130000]d')-29>=1,'卅',IF(TEXT(A2,' [$-130000]d')-19>=1,'廿','⼗')))&IF(RIGHT(TEXT(A2,' [$-
130000]d'),1)*1=0,'',TEXT(RIGHT(TEXT(A2,' [$-130000]d'),1)*1,'[DBNum1]d'))&'⽇'
这样的结果是符合我们中国⼈的习惯的,有兴趣的朋友可以试试。
(END)
点击上图链接了解
学好Excel,做个好表哥表~
你在⼯作遇到有趣的Excel案例及问题,欢迎@我,相互交流并分享给e友~~~
e友
⽼墨,我有个Excel问题......
交给我,
@moguho_e,
或者2838002@qq,
第⼀时间处理,
并在中分享给⼤家!
也可以加,

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。