EXCEL 公历转农历的探讨
右岸概文
2021年01月18日 22:24

好多用户都知道在EXCEL里面公历转农历一直有个梗,就是 闰月。

本人搜罗网上三种 农历转公历的函数写法,进行修正,改进,得到当前比较不错的一个写法。

源于大家,回馈大家:

首先,准备闰月表,知道哪一年闰、哪一月,这个百度可得。把闰月表放在E:F区域。

其次,对A1的日期,在B1里写公式:=MID("甲乙丙丁戊己庚辛壬癸&#​34;,MOD(TEXT(A2,"[$-130000]e&#​34;)-4,10)+1,1)&MID("子丑寅卯辰巳午未申酉戌亥&#​34;,MOD(TEXT(A2,"[$-130000]e&#​34;)-4,12)+1,1)&"年&#​34;&NUMBERSTRING(IF(VALUE(TEXT(A2,"[$-130000]m&#​34;))>IFNA(VLOOKUP(VALUE(TEXT(A2,"[$-130000]yyyy&#​34;)),E:F,2,0),13),TEXT(A2,"[$-130000]m&#​34;)-1,TEXT(A2,"[$-130000]m&#​34;)),1)&"月&#​34;&TEXT(A2,IF(--TEXT(A2,"[$-130000]d&#​34;)=10,"初十&#​34;,IF(--TEXT(A2,"[$-130000]d&#​34;)>10,"[$-130000][DBNum1]d&#​34;,"初[$-130000][DBNum1]d&#​34;)))

其中,=IF(VALUE(TEXT(A3,"[$-130000]m&#​34;))>IFNA(VLOOKUP(VALUE(TEXT(A3,"[$-130000]yyyy&#​34;)),E:F,2,0),12),TEXT(A3,"[$-130000]m&#​34;)-1,TEXT(A3,"[$-130000]m&#​34;))

这段是判断闰月,是当前闰月则月份减一。部分TEXT转换后需要VALUE再转换,否则无法判断数值和运算。

欢迎大家补充,改进!